Decentralized Code Collaboration Using Radicle

Computer software is arguably one of the most impactful technologies of our time. Over the past few decades, major changes in individual behavior, work habits, social organization, and wealth distribution have been triggered by software innovations, and everything suggests there’s more to come.

One way to categorize software-based services is how decentralized and censorship-resistant they are. Systems operating on a peer-to-peer instead of client-server architecture are more decentralized and, by minimizing reliance on powerful intermediaries, provide individual users with more agency and control over their information and interactions. [1]

An example of such a technology is Radicle, a decentralized application for code collaboration that combines Git with a peer-to-peer (P2P) gossip protocol called Radicle Link. Radicle takes a local/offline first approach to data storage but also allows users to selectively connect and share information with their peers. This enables anyone to ’make their own GitHub,’ including collaborative features like issues, patches, and discussions. However, by opting for local storage and P2P sharing, Radicle minimizes the platform and censorship risk that inevitably comes with relying on centralized service providers.

Radicle Link distinguishes between two types of identities: Personal (individual users storing their data or interacting on Radicle) and Project (software projects on which one or more actors collaborate). These identities are not ’accounts’ on some website but unique to each user and their device. Radicle identities are self-sovereign, portable, and can be used with any client built on the network. A well-known downside of a P2P model is that data is more scattered and less discoverable than on centralized platforms. To provide a global registry of identities without sacrificing decentralization, Radicle integrates with Ethereum (and potentially other blockchain and smart contract networks in the future). Not only does Ethereum help with canonicity (i.e. establishing a shared view of the latest ’official’ state of some info), it also enables the creation of crypto wallets (for individuals, teams, projects) and accessing the various decentralized financial and governance applications deployed on Ethereum.

In the future, one could imagine software development communities organized as decentralized autonomous organizations (DAOs) whose critical recordkeeping and transactions are handled entirely by Radicle, Ethereum, and other decentralized service networks. [2] Code repositories can be controlled by evolving DAOs through multi-signature arrangements instead of a single administrator while the trust-minimized execution guarantees of smart contracts can be used to experiment with novel and more automated funding mechanisms and administrative procedures. In short, this is a much more Internet-native way for online communities to not just collaborate on code but develop other organizational capabilities that, until now, have required depending on centralized meatspace institutions.

To learn more about Radicle, visit the Docs and Community Forum.

Footnotes

[1] As I’ve argued before (see here, here, and here), decentralized networks and ’autonomous’ software are analogous to social and institutional structures that can outlive their initial creators and administrators, thereby acquiring an existence independent of any particular set of individuals. As a result, such systems can exhibit considerable resilience and inertia, not only enabling but also limiting human action. The important thing to realize is that digital infrastructure and software systems are not neutral means to universally shared ends but complex emergent structures that can help organize and steer societal development in a variety of directions depending on how they’re designed, used, and governed. On the one hand, similar to the institutions of free speech, contract, or enterprise, decentralized networks such as Radicle and Ethereum increase individual freedom to (inter)act. On the flip side, these systems also highlight personal responsibility for one’s actions and the importance of shared norms in regulating behavior that may be perceived as socially problematic or destructive but difficult to prevent by design. As with other social institutions, governance of decentralized networks and applications is therefore not merely a matter of private interest.

[2] Disclosure: The author’s work is funded by Placeholder, an investor in RAD and ETH.