Die Version 1.5 der P2P-Plattform Radicle wurde veröffentlicht, die darauf abzielt, einen dezentralen Dienst zur gemeinsamen Entwicklung und Speicherung von Code bereitzustellen, der GitHub und GitLab Ă€hnelt, jedoch nicht an spezifische Server gebunden ist, zensurfrei arbeitet und die Ressourcen der Teilnehmer des P2P-Netzwerks nutzt. Die Plattform unterstĂŒtzt gĂ€ngige Elemente des sozialen Austauschs unter Entwicklern, wie Issues, Patches und Code-Reviews. Die Entwicklungen des Projekts sind in Rust geschrieben und werden unter den Lizenzen Apache 2.0 und MIT veröffentlicht. Die Builds sind fĂŒr Linux und macOS vorbereitet. ZusĂ€tzlich werden ein Desktop-Client, eine Web-OberflĂ€che und eine Konsolenanwendung 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.
FĂŒr die Identifizierung benachbarter Knoten in einem P2P-Netzwerk wird das Gossip-Protokoll verwendet, wĂ€hrend das Heartwood-Protokoll, basierend auf Git, fĂŒr die Replikation von Daten zwischen den Knoten zustĂ€ndig ist. Da das Protokoll auf Git basiert, lĂ€sst sich die Plattform problemlos in bestehende Git-Entwicklungstools integrieren. Zur Identifikation der Knoten und zur Validierung der Repositories kommt eine kryptographische Methode auf Basis von Public-Key-Kryptographie zum Einsatz, ohne dass Benutzerkonten erforderlich sind. Die Authentifizierung und Autorisierung erfolgt ebenfalls auf Basis von Public Keys, ohne zentrale Zertifizierungsstellen. Server.
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.
Radicle-Repositories werden auf den Systemen der Benutzer als gewöhnliche Git-Repositories gespeichert, in denen zusĂ€tzliche NamensrĂ€ume fĂŒr die Speicherung von Peer-Daten und Forks vorhanden sind, mit denen aktuell gearbeitet wird. Diskussionen, vorgeschlagene Patches und Komponenten zur Organisation von Reviews werden ebenfalls im Git-Repository als kollaborative Objekte (COB â Collaborative Objects) gespeichert und zwischen den Peers repliziert.
In der neuen Version:
- Die UnterstĂŒtzung fĂŒr Bare-Repositories wurde verbessert, die keinen Arbeitsordner mit einer Kopie der Projektdateien enthalten, sondern nur die ĂnderungsverlĂ€ufe und Metadaten wie Branches und Tags speichern. Der Befehl ârad cloneâ hat die Option ââbareâ hinzugefĂŒgt, die es ermöglicht, das Repository in einer Ansicht ohne Arbeitsverzeichnis zu klonen. In dem Tool âgit-remote-radâ wurde die Handhabung von Bare-Repositories bei der Verwendung der Befehle âgit pushâ und âgit fetchâ fĂŒr externe rad-Server verbessert.
- Die Einstellung âpatch.branchâ wurde hinzugefĂŒgt, die in der git-remote-rad Utility verwendet werden kann (âgit-remote-rad -o patch.branch[=<name>]â), um beim HinzufĂŒgen eines Patches automatisch einen Branch im Upstream-Repository zu erstellen, ohne den Befehl ârad patch checkoutâ verwenden zu mĂŒssen.
- Die Ausgabe des Befehls ârad patch showâ wurde verbessert, der nun die ursprĂŒngliche Patch-Version anzeigt, die zuvor nur bei Angabe des ââverboseâ-Flags ausgegeben wurde. Alle Revisionen werden jetzt in einer einheitlichen Chronologie angezeigt, ohne zwischen Ănderungen des ursprĂŒnglichen Autors und anderer Beteiligter zu unterscheiden.
- Die Möglichkeit, Protokolle in einer strukturierten Ansicht auszugeben, wurde hinzugefĂŒgt, die ĂŒber die Optionen ââlog-logger structuredâ und ââlog-format jsonâ aktiviert werden kann.
Quelle: opennet.ru
