Die Veröffentlichung der P2P-Plattform Radicle 1.6 ist da. Diese Plattform zielt darauf ab, einen dezentralisierten Service fĂŒr die gemeinsame Entwicklung und Speicherung von Code zu schaffen, der mit GitHub und GitLab vergleichbar ist, jedoch nicht an spezifische Server gebunden ist, zensurfrei funktioniert und die Ressourcen der Teilnehmer des P2P-Netzwerks nutzt. Die Plattform unterstĂŒtzt gĂ€ngige Elemente der sozialen Interaktion unter Entwicklern, wie Issues, Patches und Code-Reviews. Die Entwicklung des Projekts erfolgt in Rust und wird unter den Lizenzen Apache 2.0 und MIT veröffentlicht. Bereitstellungen sind fĂŒr Linux und macOS vorbereitet. ZusĂ€tzlich werden ein Desktop-Client, ein Webinterface und ein Konsoleninterface entwickelt.
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 Implementierung des Radicle-Knotens (radicle-node) wurde auf die Mio-Ein- und Ausgabebibliothek umgestellt. Die AbhĂ€ngigkeiten von netservices, io-reactor und popol wurden entfernt, da sie die Erreichung eines angemessenen Niveaus an PlattformunabhĂ€ngigkeit beeintrĂ€chtigten. Ein neues Reactor-Modul wurde hinzugefĂŒgt, in dem der io-reactor auf Basis von Mio neu geschrieben wurde.
- Der Wechsel zu Mio ermöglicht die UnterstĂŒtzung der Windows-Plattform, die derzeit als experimentell gilt.
- Der Code zur Analyse von Kommandozeilenargumenten wurde auf die Clap-Bibliothek umgestellt, was das Verhalten bei der Analyse der Argumente vereinheitlicht hat und der rad-Utility Funktionen wie die automatische Generierung von Hilfestellungen zu Befehlen, Empfehlungen zur Fehlerbehebung, die Hervorhebung von Ausgaben und die automatische VervollstĂ€ndigung von Befehlen hinzugefĂŒgt hat.
- In radicle-node wurde die UnterstĂŒtzung fĂŒr das Systemd-Credentials-System hinzugefĂŒgt, um ZugangsschlĂŒssel (xyz.radicle.node.secret) und Passwörter zu deren EntschlĂŒsselung (xyz.radicle.node.passphrase) sicher zu ĂŒbertragen, zusĂ€tzlich zur Verwendung der Umgebungsvariable RAD_PASSPHRASE, der Kommandozeilenoption "â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
