Radicle : une forge de code autonome
(radicle.xyz)- Radicle est un réseau décentralisé open source de collaboration autour du code construit sur Git, qui permet de répliquer et de gérer directement les dépôts entre pairs, sans serveur central
- Toutes les données et tous les artefacts sociaux sont signés par cryptographie à clé publique, ce qui permet de vérifier l’authenticité et l’auteur
- Les utilisateurs peuvent exploiter leur propre nœud afin de maintenir un environnement de collaboration résistant à la censure, et travailler selon une approche local-first même sans connexion Internet
- Grâce aux Collaborative Objects (COBs), les fonctionnalités de collaboration comme les issues, les discussions et la revue de code sont implémentées sous forme d’objets Git, que les développeurs peuvent étendre librement
- L’ensemble repose sur une architecture modulaire avec CLI, web et TUI, ce qui en fait une plateforme de forge logicielle hautement extensible permettant de développer et de remplacer différents clients
Vue d’ensemble (Synopsis)
- Radicle est une pile de collaboration de code pair à pair basée sur Git, qui ne dépend d’aucune autorité de contrôle unique, contrairement aux plateformes centralisées d’hébergement de code
- Les dépôts sont répliqués de manière distribuée entre pairs, et les utilisateurs gardent un contrôle total sur leurs données et leurs workflows
- Le projet est open source et peut être utilisé librement sous licences MIT et Apache 2.0
- Le dépôt principal possède l’identifiant
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Installation et démarrage
- L’installation peut se faire depuis un shell avec la commande suivante :
curl -sSLf https://radicle.xyz/install | sh - Il est aussi possible de le compiler directement depuis le code source
- Fonctionne actuellement uniquement sur Linux, macOS et les systèmes BSD
- Un environnement de collaboration graphique est également proposé via le client Radicle Desktop
Fonctionnement (How it works)
- Utilise un système d’identité cryptographique pour garantir l’intégrité du code et des données sociales, ainsi que l’authentification des auteurs
- S’appuie sur Git pour assurer un transfert de données efficace entre pairs
- Échange les métadonnées des dépôts via un protocole de gossip personnalisé
Sécurité et persistance des données
- Tous les artefacts sociaux sont stockés dans Git et signés par cryptographie à clé publique
- Radicle vérifie automatiquement l’authenticité des données et l’identité de l’auteur
Autonomie et résistance à la censure
- Les utilisateurs peuvent exploiter directement leur propre nœud, ce qui permet de maintenir un environnement de collaboration sans dépendance à un tiers
- Le réseau est conçu selon une architecture résiliente et résistante à la censure
Local-first
- Offre des fonctionnalités toujours accessibles même sans connexion Internet
- Les utilisateurs conservent la propriété de leurs données, qui sont faciles à déplacer, sauvegarder et consulter
Extensibilité et capacité d’évolution
- Grâce aux Collaborative Objects (COBs), les fonctionnalités de collaboration comme les issues, les discussions et la revue de code sont implémentées sous forme d’objets Git
- Les développeurs peuvent étendre les COBs afin de créer de nouveaux flux de collaboration
Conception modulaire (Modular by Design)
- La pile Radicle se compose d’une CLI, d’une interface web et d’une TUI
- Ces composants s’appuient sur Radicle Node et HTTP Daemon
- Chaque composant peut être remplacé, et il est également possible de développer d’autres clients
Communauté et participation
- Radicle est un logiciel libre et open source auquel tout le monde peut contribuer
- La communauté est active sur Zulip, Mastodon, Bluesky et Twitter
- Les retours peuvent être envoyés à feedback@radicle.xyz, et sont automatiquement publiés dans le canal Zulip
#feedback
1 commentaires
Avis sur Hacker News
J’ai trouvé que le paragraphe d’introduction de Radicle n’expliquait pas clairement en quoi c’est différent de Git auto-hébergé
Si c’est une alternative comme Gitea ou Forgejo, ce serait bien d’expliquer brièvement ce que ça ajoute au-dessus de Git
Je l’ai compris comme un outil permettant de collaborer sans le chaos du partage de patchs par e-mail
Comme je ne connais ni Gitea ni Forgejo, la comparaison ne m’aide pas vraiment
Le fait de mentionner Git dès la première phrase rend la chose claire
À l’inverse, la landing page de Forgejo évite de parler de Git ou de contrôle de source, ce qui la rend au contraire plus confuse
Il propose des fonctions d’hébergement local comme Forgejo/Gitea/GitLab, mais fonctionne sur un réseau P2P, ce qui le rend plus résilient aux pannes et permet un hébergement public de projets décentralisé
Ce serait bien de proposer directement une meilleure formulation
Je suis content de voir une nouvelle tentative de créer un forge social
Rien que le fait que ce genre de projet pousse GitHub et GitLab à s’améliorer a déjà de la valeur
D’après la FAQ, Radicle essaie de résoudre le problème de confiance dans Git avec un système d’identité fondé sur une PKI
Mais j’ai quand même l’impression qu’au final la question de « quelle identité faut-il juger digne de confiance ? » reste entière
Pour l’instant, ils sont associés en 1:1 à des clés SSH, mais nous travaillons à une extension vers des identités de groupe
Ce n’est pas une solution parfaite, mais l’identité cryptographique fournit une structure où l’on peut « partir d’un peu de confiance pour l’étendre davantage »
Au final, la confiance se distribue à travers des liens sociaux, comme dans les relations humaines
Une fois cette confiance établie, on peut rechercher d’autres dépôts associés au même DID
S’il existe plusieurs versions, il suffit de choisir un dépôt provenant d’une source de confiance ou ayant une activité soutenue
En fréquentant de petits groupes de sysadmins qui font tourner de vieux services internet (IRC, Gopher, etc.), je me suis mis à réfléchir au caractère impossible à supprimer des systèmes P2P
Je me demande quoi faire si quelqu’un publie par erreur des données personnelles, ou du contenu qui devient problématique après un changement de loi
Il y a aussi des situations dangereuses, comme le cas d’arrestation de radioamateurs en Biélorussie
Ça ne veut pas dire que le P2P est mauvais, mais la question de la suppression reste difficile à résoudre
Même sur GitHub, quand du code contenant une clé secrète est publié, il est souvent déjà trop tard
Le P2P ne crée pas vraiment un nouveau problème, il met surtout à nu un problème déjà existant
Ce serait bien d’avoir une fonction de publication différée permettant d’annuler la publication pendant un certain délai, un peu comme pour un e-mail
Une fonction d’élimination du contenu au niveau réseau est également en discussion
Un opérateur peut manipuler les suppressions ou signaler le contenu au gouvernement
Au fond, les questions juridiques dépendent surtout de l’équité du régime politique
Question sur la différence avec Tangled
Toutes les opérations (issues, revue de patchs, etc.) se font dans un magasin de données local, sans aller-retour vers un serveur
Le réseau n’intervient qu’au moment de la synchronisation
Tangled, à l’inverse, est une structure fédérée fondée sur l’AT Protocol et dépend en pratique de serveurs centralisés (AppView)
Son architecture est fondamentalement de type client-serveur
Radicle n’a pas de notion de serveur et tous les nœuds sont sur un pied d’égalité
Certains nœuds peuvent simplement agir comme serveurs HTTP pour faciliter l’accès via navigateur
D’après la FAQ, Radicle permet à chaque nœud de bloquer selon sa propre politique les abus et contenus illégaux
Il prend aussi en charge des dépôts privés entre pairs de confiance
Les données ne sont pas chiffrées, mais la réplication sélective évite qu’elles soient exposées à l’ensemble du réseau
Lien vers la FAQ
J’ai l’impression qu’il faudrait sur la page d’accueil une passerelle permettant d’accéder à un index des dépôts publics
Cela permettrait d’explorer l’ensemble du réseau
Avec un tel index, le projet pourrait avoir le potentiel de remplacer GitHub
Je ne sais simplement pas si c’est explicitement relié depuis la page d’accueil
Radicle est vraiment un projet formidable
Je fais tourner un nœud depuis quelques mois, mais je ne l’utilise pas encore comme outil principal
Je crois que les forges P2P représentent l’avenir du web
Le simple fait de participer est déjà un vote
Chaque fois qu’un projet se fait bloquer sur GitHub, je me dis : « il aurait fallu utiliser Radicle »
Exploiter un nœud derrière Tor permettrait aussi d’éviter les pressions juridiques
Certains projets avaient rencontré des problèmes avec ce type de configuration par le passé
Je me demande comment un seeder permissif se protège contre l’envoi de gros binaires
Si toutes les issues et discussions sont stockées, la taille du dépôt pourrait devenir énorme
Il semble qu’une fonction de réplication partielle, comme le shallow clone de Git, soit nécessaire
Question sur la différence avec Forgejo (protocole ForgeFed)
Chaque nœud exécute le même processus, et les comptes utilisateur reposent sur une authentification auto-certifiée
Forgejo, à l’inverse, est une structure fédérée où les serveurs communiquent via ActivityPub
On peut faire l’analogie GitHub : Forgejo = Twitter : Mastodon, et partage de fichiers : BitTorrent = développement logiciel : Radicle
Radicle gère les références via des espaces de noms cryptographiques au niveau du projet plutôt que via un serveur central
Le contrôle d’accès repose lui aussi sur l’identité de l’utilisateur plutôt que sur un serveur