Die Veröffentlichung der P2P-Plattform Radicle 1.0 wurde vorgestellt. Diese Plattform zielt darauf ab, einen dezentralen Service für die gemeinsame Entwicklung und Speicherung von Code anzubieten, ähnlich wie GitHub und GitLab, jedoch ohne Bindung an spezifische Server, zensurfrei und basierend auf den Ressourcen der Teilnehmer des P2P-Netzwerks. Mit dem Release 1.0 wurde der Protokoll stabilisiert und die Plattform ist bereit für den flächendeckenden Einsatz. Ab diesem Release wird das Protokoll so geändert, dass die Rückwärtskompatibilität gewährleistet bleibt, und die Tools bieten Funktionen für ein nahtloses Upgrade bestehender Systeme auf die neue Version. Die Entwicklungen des Projekts sind in Rust geschrieben und stehen unter den Lizenzen Apache 2.0 und MIT zur Verfügung. Builds sind für Linux und macOS vorbereitet. Zusätzlich werden ein Desktop-Client, eine Web-Oberfläche und eine Konsolenoberfläche weiterentwickelt.
Radicle ermöglicht es, bei der Entwicklung und Verteilung von Code unabhängig von zentralisierten Plattformen und Unternehmen zu sein, deren Bindung zusätzliche Risiken mit sich bringt (wie z.B. einen einzelnen Ausfallpunkt, das Unternehmen könnte schließen oder die Nutzungsbedingungen ändern). Zur Verwaltung des Codes in Radicle wird das gewohnte Git verwendet, ergänzt durch Mittel zur Definition von Repositories in einem P2P-Netzwerk. Alle Daten werden in erster Linie lokal gespeichert (Konzept "local-first") und sind stets auf dem Computer des Entwicklers verfügbar, unabhängig vom Zustand der Netzwerkverbindung.
Die Teilnehmer gewähren Zugang zu ihrem Code und verwandten Artefakten, wie z.B. Patches und Diskussionen über Fehlerbehebungen (Issues), die lokal gespeichert und auf 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.
Um benachbarte Knoten in einem P2P-Netzwerk zu bestimmen, wird das Gossip-Protokoll verwendet, während das Heartwood-Protokoll zur Datenreplikation zwischen Knoten dient, das auf Git basiert. Da das Protokoll auf Git basiert, kann die Plattform problemlos in bestehende Git-Entwicklungswerkzeuge integriert werden. Zur Identifizierung von Knoten und zur Verifizierung von Repositories kommt die kryptografische Methode auf Basis von öffentlichen Schlüsseln zum Einsatz, ohne dass Konten erforderlich sind.
Jedes Repository in einem P2P-Netzwerk besitzt eine eindeutige Identifikation 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 versehen. Diese ermöglicht es, die Integrität der Daten auf anderen Knoten zu überprüfen, ohne zentrale Zertifizierungsstellen einzusetzen. Um auf das Repository zuzugreifen, reicht es aus, wenn sich mindestens ein Knoten online befindet, der eine replizierte Kopie davon hat.
Knoten im P2P-Netzwerk können sich für bestimmte Repositories anmelden und Updates erhalten. Es ist möglich, private Repositories zu erstellen, die nur bestimmten Knoten zugänglich sind. Zur Verwaltung und Eigentümerschaft eines Repositories 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 Identifikationsnummer gebunden sind. Delegierte können Patches im Repository akzeptieren, Issues schließen und Zugriffsrechte für das Repository festlegen. An jedes Repository können mehrere Delegierte gebunden werden.
In den Systemen der Benutzer werden Radicle-Repositories als normale Git-Repositories gespeichert, die zusätzliche Namensräume zur Speicherung von Peer-Daten und Forks enthalten, mit denen aktuell gearbeitet wird. Diskussionen, vorgeschlagene Patches und Komponenten zur Organisation der Überprüfung werden ebenfalls in Git-Repositories als Collaborative Objects (COB) gespeichert und zwischen den Peers repliziert.
Radicle 1.0 umfasst:
- Die Implementierung eines erweiterbaren Protokolls zur Organisation des Betriebs des P2P-Netzwerks und zur Daten-Synchronisation.
- Elemente sozialer Interaktion, wie Issues, Patches und Code-Reviews.
- Authentifizierungs- und Autorisierungsprotokoll basierend auf öffentlichen Schlüsseln, das ohne zentrale Zertifizierungsstelle funktioniert. Server.
- CLI-Schnittstelle, die Benutzern vertraut ist, die mit Git vertraut sind.
- Weboberfläche zur Navigation durch Repositories und Knoten.
- Datenschutztools, einschließlich Unterstützung für private Repositories und die Möglichkeit, über das anonyme Tor-Netzwerk zu arbeiten.
- Unterstützung wiederholbarer Builds zur Überprüfung, dass die verteilten ausführbaren Dateien von Radicle aus den angegebenen Quelldateien erstellt wurden.
Noch nicht fertiggestellte Funktionen, die sich in der Entwicklung befinden:
- Integrierte Werkzeuge für Continuous Integration (CI) und Continuous Delivery (CD).
- Radicle TUI (Terminalbenutzeroberfläche).
- Erweiterte Möglichkeiten zur Überprüfung von Änderungen.
- Benachrichtigungssystem für Änderungen im Repository.
- Unterstützung für Benutzerprofile und die Möglichkeit zur Bindung mehrerer Geräte.
- Unterstützung für Tags.
- Tools zur Moderation und Verwaltung von Knoten.
- Desktopanwendung.
Quelle: opennet.ru
