Decentralized collaborative development platform Radicle 1.6 has been released.

Radicle, a P2P platform, has released version 1.6. It aims to create a decentralized service for collaborative code development and storage, similar to GitHub and GitLab, but not tied to specific servers, uncensored, and powered by the resources of P2P network participants. The platform supports typical elements of social interaction among developers, such as issues, patches, and code reviews. The project's developments are written in Rust and distributed under the Apache 2.0 and MIT licenses. Builds are available for Linux and macOS. The desktop client, web interface, and console interface are also being developed.

Radicle allows you to be independent of centralized platforms and corporations when developing and distributing code, since being tied to them introduces additional risks (a single point of failure, the company may close or change its operating conditions). Radicle uses the familiar Git to manage code, expanded by means of defining repositories in a P2P network. All data is primarily saved locally (the local-first concept) and is always available on the developer's computer, regardless of the state of the network connection.

Contributors provide access to their code and related artifacts, such as patches and issues, which are stored locally and replicated to other interested developers' nodes connected to a common decentralized P2P network. The end result is a global decentralized Git repository, with data replicated and duplicated across contributors' systems.

The Gossip protocol is used to identify neighboring nodes in the P2P network, and the Heartwood protocol, based on Git, is used to replicate data between nodes. Because the protocol is based on Git, the platform easily integrates with existing Git development tools. Public-key cryptography, without the use of credentials, is used to identify nodes and verify repositories. Authentication and authorization are performed using public keys, without the need for centralized authorization servers.

Each repository in the P2P network has its own unique identifier and is self-certified, i.e. all actions in the repository, such as adding commits and leaving comments to an issue, are certified by the owner with a digital signature, which allows you to verify the correctness of the data on other nodes without using centralized certification authorities. To gain access to the repository, it is enough for at least one node to be online, which has a replicated copy of it.

Nodes in a P2P network can subscribe to specific repositories and receive updates. It is possible to create private repositories that are only accessible to specific nodes. The concept of "delegates" is used to manage and own a repository. A delegate can be either a single user or a bot or group, linked to a special identifier. Delegates can accept patches into the repository, close issues, and set access rights to the repository. Each repository can have multiple delegates linked to it.

Radicle repositories are stored on user systems as regular Git repositories, with additional namespaces for storing data for the peers and forks being worked on. Discussions, proposed patches, and review components are also stored in the Git repository as Collaborative Objects (COBs) and replicated between peers.

In the new release:

  • The Radicle node implementation (radicle-node) has been migrated to use the Mio I/O library. The netservices, io-reactor, and popol packages, which prevented the required level of cross-platform support, have been removed from dependencies. A new reactor module has been added, which rewrites io-reactor using Mio.
  • The transition to Mio made it possible to implement support for the Windows platform, which is still experimental.
  • The code for parsing command-line arguments has been migrated to the clap library, which unifies the behavior when parsing arguments and adds features to the rad utility such as automatic command hint generation, error-resolving recommendations, output highlighting, and command autocompletion.
  • radicle-node now supports the systemd Credentials mechanism for securely transmitting access keys (xyz.radicle.node.secret) and passwords to decrypt them (xyz.radicle.node.passphrase), in addition to using the RAD_PASSPHRASE environment variable, the "--secret" command-line option, and configuration file parameters.
  • The minimum supported Rust compiler version requirement has been raised to 1.85.

Source: opennet.ru

author avatar
ProHoster Consultant, Technical Specialist
A technical specialist at ProHoster with over six years of experience in server administration, VPN solutions, and network security. I manage infrastructure setup and support, monitor service stability, and implement solutions to protect client data. I also contribute to performance optimization and compliance with modern security and privacy requirements.

Add a comment