Predstavljen je izdanak P2P platforme Radicle 1.0, usmjeren na stvaranje decentralizirane usluge zajedničkog razvoja i pohrane koda, slične GitHubu i GitLabu, ali neovisne o određenim poslužiteljima, neosjetljive na cenzuru i koja koristi resurse sudionika P2P mreže. Izlaz 1.0 označava stabilizaciju protokola i spremnost platforme za široku upotrebu. Od ovog izdanja protokol će se mijenjati uz održavanje unazadne kompatibilnosti, a alati će uključivati mogućnosti za besprijekorno ažuriranje postojećih sustava na novu verziju. Razvoj projekta napisan je na jeziku Rust i distribuira se pod licencama Apache 2.0 i MIT. Izgradnje su pripremljene za Linux i macOS. Dodatno se razvijaju desktop klijent, web sučelje i konzolno sučelje.
Radicle omogućava neovisnost u razvoju i distribuciji koda od centraliziranih platformi i korporacija, čije vezivanje donosi dodatne rizike (jedina tačka neuspjeha, kompanija može zatvoriti ili promijeniti uvjete rada). Za upravljanje kodom u Radicleu koristi se poznati Git, proširen sredstvima za određivanje repozitorija u P2P mreži. Svi podaci se prvenstveno pohranjuju lokalno (koncept local-first) i uvijek su dostupni na računalu programera, bez obzira na stanje mrežne veze.
Sudionici osiguravaju pristup svom kodu i povezanim artefaktima, kao što su zakrpe i rasprave o ispravcima grešaka (issues), koji se pohranjuju lokalno i repliciraju na čvorove drugih zainteresiranih programera povezanih u zajedničku decentraliziranu P2P mrežu. Na taj način nastaje globalni decentralizirani Git repozitorij, čiji su podaci replicirani i duplicirani na različitim sustavima sudionika.
Za određivanje susjednih čvorova u P2P mreži koristi se Gossip protokol, a za replikaciju podataka između čvorova protokol Heartwood, baziran na Gitu. Budući da je protokol baziran na Gitu, platformu je lako integrirati s postojećim alatima za razvoj na Gitu. Za identifikaciju čvorova i verifikaciju repozitorija koristi se kriptografija temeljena na javnim ključevima, bez primjene korisničkih računa.
Svaki repozitorij u P2P mreži ima svoj jedinstveni identifikator i samosertificiran je, tj. sve radnje u repozitoriju, poput dodavanja commit-a i ostavljanja komentara na issue, ovjeravaju vlasnikom digitalnog potpisa koji omogućava provjeru ispravnosti podataka na drugim čvorovima bez korištenja centraliziranih certifikacijskih tijela. Za pristup repozitoriju dovoljno je da je online bar jedan čvor na kojem se nalazi njegova replika.
Čvorovi u P2P mreži mogu se pretplatiti na određene repozitorije i primati ažuriranja. Moguće je kreirati privatne repozitorije dostupne samo određenim čvorovima. Za upravljanje i vlasništvo nad repozitorijem koristi se koncept "delegata". Delegat može biti pojedinačni korisnik, bot ili grupa povezani s posebnim identifikatorom. Delegati mogu primati zakrpe u repozitorij, zatvarati issue i postavljati prava pristupa za repozitorij. Svakom repozitoriju može biti dodijeljeno nekoliko delegata.
Na sustavima korisnika Radicle repozitoriji se pohranjuju kao obični git repozitoriji, u kojima postoje dodatni prostori imena za pohranu podataka o peerovima i forkovima s kojima se trenutno radi. Diskusije, predloženi patchevi i komponenti za organizaciju recenzija također se pohranjuju u git repozitorij kao zajednički objekti (COB — Collaborative Objects) i repliciraju između peerova.
Radicle 1.0 uključuje:
- Implementaciju proširivog protokola za organizaciju rada P2P mreže i sinhronizaciju podataka.
- Elemente socijalne interakcije, kao što su issue, patchevi i recenzije koda.
- Protokol autentikacije i autorizacije temeljen na javnim ključevima, koji radi bez centraliziranih posrednika. poslužitelja.
- CLI sučelje, uobičajeno korisnicima koji su upoznati s Gitom.
- Web sučelje za navigaciju kroz repozitorije i čvorove.
- Sredstva za osiguranje privatnosti, koja uključuju podršku za privatne repozitorije i mogućnost rada kroz anonimnu mrežu Tor.
- Podrška za ponavljajuće gradnje za provjeru da su distribuirane izvršnedatoteke Radicle sastavljene iz navedenih izvornih kodova.
Još uvijek nespremne mogućnosti, koje su u razvoju:
- Ugrađeni alati za kontinuiranu integraciju (CI) i kontinuiranu isporuku (CD).
- Radicle TUI (Terminal User Interface) konzolni sučelje.
- Proširene mogućnosti recenziranja promjena.
- Sustav za obavijesti o promjenama u repozitoriju.
- Podrška za korisničke profile i mogućnost povezivanja više uređaja.
- Podrška za oznake.
- Alati za moderiranje i upravljanje čvorovima.
- Desktop aplikacija.
Izvor: opennet.ru
