Radicle, une plateforme P2P, a publié sa version 1.6. Elle vise à créer un service décentralisé de développement et de stockage collaboratif de code, similaire à GitHub et GitLab, mais sans serveur dédié, sans censure et alimenté par les participants du réseau P2P. La plateforme prend en charge les fonctionnalités classiques d'interaction sociale entre développeurs, telles que les tickets, les correctifs et les revues de code. Le développement est réalisé en Rust et distribué sous les licences Apache 2.0 et MIT. Des versions sont disponibles pour Linux и macOSLe client de bureau, l'interface web et l'interface console sont également en cours de développement.
Radicle vous permet de ne pas dépendre lors du développement et de la distribution de code de plateformes et d'entreprises centralisées, dont la liaison introduit des risques supplémentaires (point de défaillance unique, l'entreprise peut fermer ou modifier les conditions de travail). Pour gérer le code, Radicle utilise le familier Git, étendu avec des outils permettant de définir des référentiels sur un réseau P2P. Toutes les données sont d'abord enregistrées localement (concept local-first) et sont toujours disponibles sur l'ordinateur du développeur, quel que soit l'état de la connexion réseau.
Les participants donnent accès à leur code et aux artefacts liés au code, tels que les correctifs et les problèmes, qui sont stockés localement et répliqués sur les nœuds d'autres développeurs intéressés connectés à un réseau P2P décentralisé commun. En conséquence, un référentiel Git décentralisé mondial est formé, dont les données sont répliquées et dupliquées sur différents systèmes participants.
Le protocole Gossip sert à identifier les nœuds voisins du réseau P2P, tandis que le protocole Heartwood, basé sur Git, assure la réplication des données entre ces nœuds. Grâce à son intégration avec Git, la plateforme s'intègre facilement aux outils de développement Git existants. L'authentification et l'autorisation s'effectuent par cryptographie à clé publique, sans nécessiter d'identifiants. les serveurs.
Chaque référentiel du réseau P2P possède son propre identifiant unique et est auto-certifié, c'est-à-dire toutes les actions dans le référentiel, telles que l'ajout de commits et le fait de laisser des commentaires à émettre, sont certifiées par le propriétaire avec une signature numérique, ce qui vous permet de vérifier l'exactitude des données sur d'autres nœuds sans recourir à des autorités de certification centralisées. Pour accéder au référentiel, il suffit qu'au moins un nœud soit en ligne et en possède une copie répliquée.
Les nœuds d'un réseau P2P peuvent s'abonner à des référentiels spécifiques et recevoir des mises à jour. Il est possible de créer des référentiels privés accessibles uniquement à certains nœuds. La notion de « délégués » est utilisée pour gérer et posséder un référentiel. Un délégué peut être un utilisateur individuel, un robot ou un groupe lié à un identifiant spécial. Les délégués peuvent accepter les correctifs dans le référentiel, clôturer les problèmes et définir les droits d'accès au référentiel. Chaque référentiel peut être associé à plusieurs délégués.
Les dépôts Radicle sont stockés sur les systèmes utilisateurs comme des dépôts Git classiques, avec des espaces de noms supplémentaires pour stocker les données des pairs et des forks en cours de développement. Les discussions, les correctifs proposés et les composants de révision sont également stockés dans le dépôt Git sous forme d'objets collaboratifs (COB) et répliqués entre pairs.
Dans la nouvelle version :
- L'implémentation du nœud Radicle (radicle-node) utilise désormais la bibliothèque d'E/S Mio. Les dépendances netservices, io-reactor et popol, qui empêchaient d'atteindre le niveau de compatibilité multiplateforme requis, ont été supprimées. Un nouveau module reactor, qui réécrit io-reactor avec Mio, a été ajouté.
- La transition vers Mio nous a permis de mettre en œuvre le support de la plateforme Windows, qui a actuellement le statut d'expérimental.
- Le code d'analyse des arguments de la ligne de commande a été migré vers la bibliothèque clap, ce qui unifie le comportement lors de l'analyse des arguments et ajoute des fonctionnalités à l'utilitaire rad telles que la génération automatique d'indications de commande, des recommandations de résolution d'erreurs, la mise en évidence de la sortie et la saisie semi-automatique des commandes.
- radicle-node prend désormais en charge le mécanisme d'identification systemd pour transmettre en toute sécurité les clés d'accès (xyz.radicle.node.secret) et les mots de passe pour les déchiffrer (xyz.radicle.node.passphrase), en plus de l'utilisation de la variable d'environnement RAD_PASSPHRASE, de l'option de ligne de commande "--secret" et des paramètres du fichier de configuration.
- La version minimale requise du compilateur Rust a été relevée à 1.85.
Source: opennet.ru
