Die Version 1.6 der P2P-Plattform Radicle wurde veröffentlicht, die darauf abzielt, einen dezentralen Service fĂŒr die gemeinsame Entwicklung und Speicherung von Code zu schaffen, der Ă€hnlich wie GitHub und GitLab funktioniert, jedoch nicht an bestimmte Server gebunden, zensurresistent und auf Ressourcen von Teilnehmern des P2P-Netzwerks angewiesen ist. Die Plattform unterstĂŒtzt gĂ€ngige Elemente der sozialen Interaktion von Entwicklern, wie Issues, Patches und Code-Reviews. Die Entwicklungen des Projekts sind in der Programmiersprache Rust geschrieben und werden unter den Lizenzen Apache 2.0 und MIT verbreitet. Die Builds sind fĂŒr Linux und macOS vorbereitet. ZusĂ€tzlich werden ein Desktop-Client, eine Web-OberflĂ€che und eine Konsole entwickelt.
Radicle ermöglicht es, bei der Entwicklung und Verbreitung von Code unabhĂ€ngig von zentralisierten Plattformen und Unternehmen zu bleiben, deren Bindung zusĂ€tzliche Risiken mit sich bringt (Single Point of Failure, das Unternehmen kann schlieĂen oder die Nutzungsbedingungen Ă€ndern). Zur Verwaltung des Codes in Radicle wird das vertraute Git verwendet, ergĂ€nzt durch Tools zur Bestimmung von Repositories im P2P-Netzwerk. Alle Daten werden zunĂ€chst lokal gespeichert (Local-First-Konzept) und sind immer auf dem Computer des Entwicklers verfĂŒgbar, unabhĂ€ngig vom Status der Netzwerkverbindung.
Teilnehmer gewÀhren Zugang zu ihrem Code und zu den damit verbundenen Artefakten wie Patches und Diskussionen von Fehlerberichten (Issues), die lokal gespeichert und auf die Knoten anderer interessierter Entwickler, die mit dem gemeinsamen dezentralen P2P-Netzwerk verbunden sind, repliziert werden. Dadurch entsteht ein globales, dezentrales Git-Repository, dessen Daten auf verschiedenen Systemen der Teilnehmer repliziert und dupliziert sind.
Zur Bestimmung benachbarter Knoten im P2P-Netzwerk wird das Gossip-Protokoll verwendet, und zur Replikation von Daten zwischen den Knoten das Heartwood-Protokoll, das auf Git basiert. Da das Protokoll auf Git basiert, lĂ€sst sich die Plattform leicht mit bestehenden Werkzeugen fĂŒr die Git-Entwicklung integrieren. Zur Identifizierung der Knoten und zur Verifizierung der Repositories wird eine auf öffentlicher SchlĂŒssel-Kryptographie basierende Methode verwendet, ohne dass Benutzerkonten erforderlich sind. Die Authentifizierung und Autorisierung erfolgt auf Basis öffentlicher SchlĂŒssel ohne zentrale Zertifizierungsstellen. Server.
Jedes Repository im P2P-Netzwerk hat eine einzigartige Kennung und ist selbstzertifizierend, d.h. alle Aktionen im Repository, wie das HinzufĂŒgen von Commits und das Hinterlassen von Kommentaren zu Issues, werden vom EigentĂŒmer mit einer digitalen Signatur bestĂ€tigt, die es ermöglicht, die Richtigkeit der Daten auf anderen Knoten ohne die Nutzung zentraler Zertifizierungsstellen zu ĂŒberprĂŒfen. Um auf das Repository zuzugreifen, genĂŒgt es, dass sich mindestens ein Knoten online befindet, auf dem eine replizierte Kopie vorhanden ist.
Knoten im P2P-Netzwerk können sich auf bestimmte Repositories abonnieren und Updates erhalten. Es ist möglich, private Repositories zu erstellen, die nur bestimmten Knoten zugĂ€nglich sind. Zur Verwaltung und zum Eigentum am Repository wird das Konzept der âDelegiertenâ verwendet. Ein Delegierter kann sowohl ein einzelner Benutzer als auch ein Bot oder eine Gruppe sein, die an eine spezielle Kennung gebunden sind. Delegierte können Patches im Repository annehmen, Issues schlieĂen und Zugriffsrechte fĂŒr das Repository festlegen. An jedes Repository können mehrere Delegierte gebunden sein.
Radicle-Repositories werden auf den Systemen der Benutzer als gewöhnliche Git-Repositories gespeichert, die zusĂ€tzliche NamensrĂ€ume zur Speicherung von Peer- und Fork-Daten enthalten, mit denen derzeit gearbeitet wird. Diskussionen, vorgeschlagene Patches und Komponenten zur Organisation von ĂberprĂŒfungen werden ebenfalls im Git-Repository als kollaborative Objekte (COB â Collaborative Objects) gespeichert und zwischen den Peers repliziert.
In der neuen Version:
- Die Implementierung des Radicle-Knotens (radicle-node) wurde auf die Verwendung der IO-Bibliothek Mio umgestellt. Aus den AbhĂ€ngigkeiten wurden die Pakete netservices, io-reactor und popol entfernt, da sie Schwierigkeiten bei der Erreichung des erforderlichen PlattformĂŒbergreifenden Niveaus verursacht haben. Ein neues Modul reactor wurde hinzugefĂŒgt, innerhalb dessen io-reactor auf Grundlage von Mio neu geschrieben wurde.
- Der Ăbergang zu Mio ermöglichte die UnterstĂŒtzung der Windows-Plattform, die bisher den Status experimentell hat.
- Der Code fĂŒr das Parsen von Befehlszeilenargumenten wurde auf die Bibliothek clap umgestellt, was das Verhalten beim Parsen von Argumenten vereinheitlicht hat und der Utility rad solche Funktionen wie automatische Generierung von Befehlsaufforderungen, Ausgabe von Fehlerbehebungshinweisen, Ausgabe-Highlighting und AutovervollstĂ€ndigung von Befehlen hinzugefĂŒgt hat.
- Im radicle-node wurde die UnterstĂŒtzung des systemd Credentials-Mechanismus fĂŒr die sichere Ăbertragung von ZugangsschlĂŒsseln (xyz.radicle.node.secret) und Passwörtern zu deren EntschlĂŒsselung (xyz.radicle.node.passphrase) hinzugefĂŒgt, zusĂ€tzlich zur Verwendung der Umgebungsvariable RAD_PASSPHRASE, der Befehlszeilenoption ââsecretâ und der Parameter in der Konfigurationsdatei.
- Die Anforderungen an die minimal unterstĂŒtzte Version des Rust-Compilers wurden auf 1.85 erhöht.
Quelle: opennet.ru
