De release van het P2P-platform Radicle 1.6 is gepubliceerd, gericht op het creƫren van een gedecentraliseerde service voor samenwerkingsontwikkeling en opslag van code, vergelijkbaar met GitHub en GitLab, maar niet gebonden aan specifieke servers, niet onderhevig aan censuur en werkend met de middelen van de deelnemers van het P2P-netwerk. Het platform ondersteunt standaard elementen van sociale interactie tussen ontwikkelaars, zoals issues, patches en codebeoordelingen. De projectontwikkeling is geschreven in de programmeertaal Rust en wordt verspreid onder de Apache 2.0- en MIT-licenties. Builds zijn voorbereid voor Linux en macOS. Daarnaast worden er een desktopclient, webinterface en command-line interface ontwikkeld.
Radicle maakt het mogelijk om bij de ontwikkeling en distributie van code niet afhankelijk te zijn van gecentraliseerde platforms en bedrijven, waarvan de binding extra risico's met zich meebrengt (enkele foutpunten, het bedrijf kan sluiten of de voorwaarden wijzigen). Voor codebeheer in Radicle wordt de bekende Git gebruikt, uitgebreid met middelen voor het definiƫren van repositories in het P2P-netwerk. Alle gegevens worden eerst lokaal opgeslagen (concept van local-first) en zijn altijd toegankelijk op de computer van de ontwikkelaar, ongeacht de toestand van de netwerkverbinding.
Deelnemers geven toegang tot hun code en gerelateerde artefacten, zoals patches en discussies over bugfixes (issues), die lokaal worden opgeslagen en gerepliceerd naar de knooppunten van andere geĆÆnteresseerde ontwikkelaars die zijn aangesloten op het gezamenlijke gedecentraliseerde P2P-netwerk. Dit resulteert in een wereldwijde gedecentraliseerde Git-repository waarvan de gegevens gerepliceerd en gedupliceerd zijn op verschillende systemen van de deelnemers.
Voor het identificeren van naburige knooppunten in het P2P-netwerk wordt het Gossip-protocol gebruikt, en voor het repliceren van gegevens tussen knooppunten het Heartwood-protocol, gebaseerd op Git. Aangezien het protocol gebaseerd is op Git, kan het platform eenvoudig worden geĆÆntegreerd met bestaande ontwikkelingsgereedschappen voor Git. Voor de identificatie van knooppunten en de verificatie van repositories wordt cryptografie op basis van openbare sleutels gebruikt, zonder gebruik van accounts. Authenticatie en autorisatie vindt plaats op basis van openbare sleutels zonder gecentraliseerde autoriteit. servers.
Elke repository in een P2P-netwerk heeft een unieke identificatie en is zelfcertificerend, wat betekent dat alle acties in de repository, zoals het toevoegen van commits en het achterlaten van opmerkingen bij issues, worden ondertekend door de eigenaar met een digitale handtekening. Dit maakt het mogelijk om de nauwkeurigheid van gegevens op andere knooppunten te verifiƫren zonder het gebruik van gecentraliseerde certificeringsinstellingen. Toegang tot de repository vereist slechts dat er online ten minste ƩƩn knooppunt is met een gerepliceerde kopie.
Knooppunten in het P2P-netwerk kunnen zich abonneren op specifieke repositories en updates ontvangen. Het is mogelijk om privĆ©repositories te creĆ«ren die alleen toegankelijk zijn voor bepaalde knooppunten. Voor het beheren en bezitten van een repository wordt het concept van ādelegatesā gebruikt. Een delegate kan een individuele gebruiker zijn of een bot of groep die is gekoppeld aan een specifieke identificatie. Delegates kunnen patches in de repository ontvangen, issues sluiten en rechten toekennen voor toegang tot de repository. Meerdere delegates kunnen aan elke repository worden gekoppeld.
Radicle repositories worden opgeslagen op de systemen van gebruikers als reguliere git-repositories, waarin extra namespaces aanwezig zijn voor het opslaan van gegevens van peers en forks waarmee momenteel wordt gewerkt. Discussies, voorgestelde patches en componenten voor het organiseren van beoordelingen worden ook opgeslagen in de git-repository als collaboratieve objecten (COB - Collaborative Objects) en worden gerepliceerd tussen peers.
In de nieuwe release:
- De implementatie van de Radicle-node (radicle-node) is overgeschakeld naar het gebruik van de I/O-bibliotheek Mio. De afhankelijkheden netservices, io-reactor en popol zijn verwijderd, omdat ze het behalen van het vereiste niveau van multiplatform-ondersteuning in de weg stonden. Een nieuwe module reactor is toegevoegd, waarin de io-reactor opnieuw is geschreven op basis van Mio.
- De overstap naar Mio heeft de ondersteuning voor het Windows-platform mogelijk gemaakt, dat voorlopig de status van experimenteel heeft.
- De code voor het parseren van de commandoregelargumenten is overgezet naar de clap-bibliotheek, wat het gedrag bij het parseren van argumenten heeft gestandaardiseerd en de utility rad heeft verrijkt met mogelijkheden zoals automatische generatie van commandoprompts, het geven van aanbevelingen voor foutoplossing, opmaak van uitvoer en autocomplete voor commando's.
- In radicle-node is ondersteuning toegevoegd voor het systemd Credentials-mechanisme voor veilige overdracht van toegangssleutels (xyz.radicle.node.secret) en wachtwoorden voor hun decryptie (xyz.radicle.node.passphrase), naast het gebruik van de omgevingsvariabele RAD_PASSPHRASE, de commandoregeloptie āāsecretā en parameters in het configuratiebestand.
- De vereisten voor de minimaal ondersteunde Rust-compiler versie zijn verhoogd naar 1.85.
Bron: opennet.ru
