Radicle 1.5 er blevet lanceret, en P2P-platform, der sigter mod at skabe en decentraliseret tjeneste til fælles udvikling og opbevaring af kode, der ligner GitHub og GitLab, men som ikke er bundet til specifikke servere, er imod censur og fungerer ved brug af ressourcer fra deltagerne i P2P-netværket. Platformen understøtter typiske elementer til social interaktion mellem udviklere, såsom issue, patches og kodeanmeldelser. Projektets komponenter er skrevet i Rust og distribueres under licenserne Apache 2.0 og MIT. Bygninger er blevet forberedt til Linux og macOS. Derudover udvikles der en desktop-klient, webgrænseflade og kommandolinjegrænseflade.
Radicle gør det muligt at udvikle og distribuere kode uden afhængighed af centrale platforme og virksomheder, som kan medføre yderligere risici (enkelt fejlpunkter, virksomheden kan lukke eller ændre arbejdsbetingelserne). Til at styre koden i Radicle anvendes det velkendte Git, udvidet med værktøjer til at definere repositoryer i P2P-netværket. Alle data gemmes først og fremmest lokalt (local-first konceptet) og er altid tilgængelige på udviklerens computer, uanset netværksforbindelsens tilstand.
Deltagerne giver adgang til deres kode og tilknyttede artefakter, såsom patches og diskussioner om fejlrettelser (issues), som gemmes lokalt og replikeres til noderne af andre interesserede udviklere, der er tilsluttet det fælles decentrale P2P-netværk. Resultatet er et globalt decentralt Git-repository, hvis data er replikeret og duplikeret på forskellige systemer af deltagerne.
For at bestemme nærliggende noder i P2P-netværket anvendes Gossip-protokollen, og til at replikere data mellem noder anvendes Heartwood-protokollen, baseret på Git. Da protokollen er baseret på Git, er platformen let at integrere med eksisterende udviklingsværktøjer til Git. Kryptografi baseret på offentlige nøgler bruges til at identificere noder og verificere repositories, uden brug af brugerkonti. Autentifikation og autorisation foretages baseret på offentlige nøgler uden centraliserede certifikater. servere.
Hver repository i P2P-netværket har sin unikke identifikator og er selvcertificerende, dvs. alle handlinger i repository, såsom tilføjelse af commits og kommentarer til issue, bliver certificeret af ejeren med en digital signatur, som gør det muligt at sikre datanøjagtigheden på andre noder uden brug af centraliserede certifikatautoriteter. For at få adgang til repository er det tilstrækkeligt, at der online er mindst én node, hvor dens replikerede kopi findes.
Noder i P2P-netværket kan abonnere på bestemte repositories og modtage opdateringer. Det er muligt at oprette private repositories, der kun er tilgængelige for bestemte noder. Der anvendes et koncept af 'delegaer' til at styre og eje et repository. En deleger kan være en enkelt bruger, en bot eller en gruppe, knyttet til en særlig identifikator. Delegerer kan acceptere patches i repository, lukke issue og tildele adgangsrettigheder til repository. Flere deleger kan knyttes til hvert repository.
Radicle-repositories gemmes på brugernes systemer som almindelige git-repositories, hvor der er ekstra navnerum til opbevaring af peer-data og forks, som der arbejdes med aktuelt. Diskussioner, foreslåede patches og komponenter til organisering af anmeldelse gemmes også i git-repository som collaborative objects (COB) og replikeres mellem peers.
I den nye version:
- Understøttelsen af bare-repositories, der ikke indeholder et arbejdsbibliotek med en kopi af projektfilerne, men kun gemmer historik og metadata som grene og tags, er blevet forbedret. Kommandoen "rad clone" har fået tilføjet muligheden "—bare", hvilket gør det muligt at klone et repository til en repræsentation uden et arbejdsområde. I "git-remote-rad" er der også forbedret håndtering af bare-repositories, når man bruger kommandoerne "git push" og "git fetch" mod en ekstern rad-server.
- Indstillingen "patch.branch" er blevet tilføjet, som kan bruges i værktøjet git-remote-rad ("git-remote-rad -o patch.branch[=<name>]") ved tilføjelse af patches for automatisk at oprette en gren i upstream-repositoriet, uden at det er nødvendigt at bruge kommandoen "rad patch checkout.")
- Udsendelsen af kommandoen "rad patch show" er blevet forbedret, så den nu viser den oprindelige version af patchen, som tidligere kun blev vist, når flaget "—verbose" blev angivet. Alle revisioner vises nu i en samlet kronologi uden opdeling mellem ændringer fra den originale forfatter og andre deltagere.
- Muligheden for at vise logs i en struktureret fremstilling er blevet tilføjet, aktiveret gennem indstillingerne "—log-logger structured" og "—log-format json".
Kilde: opennet.ru
