Objavljena decentralizirana platforma za zajednički razvoj Radicle 1.7

Objavljen je izdanak P2P platforme Radicle 1.7, usmjeren na izradu decentralizirane usluge zajedničkog razvoja i pohrane koda, slične GitHub-u i GitLab-u, ali neovisne o određenim poslužiteljima, otporne na cenzuru i koje koriste resurse sudionika P2P mreže. Platforma podržava tipične elemente socijalne interakcije programera, poput issue-a, patch-eva i recenzija koda. Radovi na projektu napisani su na jeziku Rust i distribuiraju se pod licencama Apache 2.0 i MIT. Izdanja su pripremljena 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, dok se za replikaciju podataka između čvorova koristi Heartwood protokol, zasnovan na Gitu. Budući da je protokol zasnovan 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 korištenja korisničkih računa. Autentikacija i autorizacija provode se na osnovi javnih ključeva bez centraliziranih certifikata. poslužitelja.

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.

Radicle repozitoriji pohranjuju se na sistemima korisnika kao obični git repozitoriji, u kojima postoje dodatni prostori imena za pohranu podataka pirata i forkova s kojima se trenutno radi. Rasprave, predložene zakrpe i komponente za organizaciju recenziranja također se pohranjuju u git repozitoriju kao suradnički objekti (COB — Collaborative Objects) i repliciraju se između pirata.

U novom izdanju:

  • Obnovljena je implementacija potpisanih referenci (sigrefs — Signed References), u kojoj je uvedena zaštita od ponovne upotrebe potpisa. Stara struktura repozitorija omogućavala je zamjenu koda njegovom starom verzijom ponovnom upotrebom starog ispravnog potpisa. Da bi se zaustavio ovaj problem, u novoj implementaciji dodan je pokazivač na prethodni unos, obuhvaćen trenutnim potpisom, što formira neprekidni lanac promjena čiju cjelovitost je moguće pratiti prema korijenu.
  • Povećane su mogućnosti blokiranja čvorova, koji se sada blokiraju na razini upravljanja vezama. Ako je ranije bilo blokirano samo primanje podataka, ne ograničavajući vezu čvora, sada se blokada primjenjuje u fazi uspostavljanja veze s blokiranim čvorom i pri primanju veze od blokiranog čvora.
  • Dozvoljeno je korištenje bilo kakvih referenci na vanjske Git objekte, osim privremenih grana. Ranije su bile dopuštene samo reference na vanjske grane, oznake, metadata Radicle-a, bilješke i objekte za zajednički rad.
  • Povećana je informativnost poruka o greškama koje se pojavljuju prilikom pokušaja izvršenja operacija za koje korisniku nedostaju prava.
  • Povećana učinkovitost unosa/izlaza. Programeri su otkrili da na dugo pokrenutim čvorovima kombinacija postavki „journal_mode = WAL” i „synchronous = FULL” u SQLite bazi podataka, koja se koristi za pohranu lokalnog stanja, dovodi do velikog volumena operacija unosa/izlaza. Kako bi se smanjilo opterećenje, zadana vrijednost parametra „synchronous” sada je postavljena na „NORMAL”, a u konfiguracijski datoteku Radicle dodane su postavke za promjenu vrijednosti ovih parametara od strane korisnika.
  • Ispravljena ranjivost, čije će informacije biti otkrivene 23. ožujka. Trenutno se izvještava samo to da je tim programera izvršio skeniranje svih javno dostupnih repozitorija Radicle i nije pronašao tragove iskorištavanja ovog problema.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster