Brussels / 1 & 2 February 2020

schedule

Towards decentralized alternatives for code collaboration

Building Radicle, a peer-to-peer network for code collaboration


This talk will walk the audience through Radicle, a peer-to-peer network for code collaboration. It will touch on the design approach (outlined in the description) of the Radicle stack and outline the project's next steps and challenges for the coming year as we launch our network. It's narrative will also reflect the potential of distributed technology for free and open source sustainability and resilience. Radicle (http://radicle.xyz/) is a free and open source project supported by Monadic (https://monadic.xyz/).

Radicle is a peer-to-peer network for code collaboration. It's a decentralized collaboration environment that’s designed to be:

  • Offline first : all data, including issues, comments and other social artifacts is yours & lives on your machine.
  • Peer-to-peer : with no central server or intermediary in control.
  • Cryptographically secure : user data that is tamper-proof & unforgeable, using public key cryptography.
  • Programmable : developers can program the way in which they collaborate.
  • Interoperable & open : reflecting the values of the open source community.

Radicle integrates with distributed version control systems like git and includes a high-level language with reprogrammable semantics, P2P networking for sharing application state, and flexible command line tools. Inspired by P2P protocols like Secure Scuttlebutt, radicle connects distributed version control with peer-to-peer networking to make collaboration a primitive – starting with git and building up an entirely peer-to-peer developer experience that encourages experimentation around how we write software together. In other words, radicle lets developers program the process of writing code, shaping their workflow around a specific project or context.

Like many P2P systems, radicle uses an offline-first model. Issues, comments, and other social artifacts are stored locally as a log of events and synced automatically with your collaborators. While git repositories are already portable, social artifacts are not - radicle aims to change this. Radicle also allows you to define entirely new message types: projects, feature requests, releases, etc., each with their own event streams, metadata, and access control policies. All of this information is completely portable and self-amending in situ.

Making any kind of semantic modification to a decentralized data structure is typically difficult to coordinate and prone to forks, but radicle’s programmable evaluator makes this process straightforward, safe, and immediate. Additionally, built-in aggregate signatures allow for the definition of custom security models to read or modify each chain, even to revise an access control policy.

Finally, radicle comes with sensible defaults, ensuring you can be productive right away, while also giving programmers a flexible system for rolling their own software collaboration workflow. Inspired in many ways by Emacs, radicle is designed as an extensible system, where developers can share their programs with one another and extend their revision control environment however they like.

Speakers

Photo of Abbey Titcomb Abbey Titcomb

Links