Bol vydaný variant P2P platformy Radicle 1.7, zameranej na vytvorenie decentralizovanej služby pre spoluprácu a ukladanie kódu, podobnej ako GitHub a GitLab, ale nezávislej od konkrétnych serverov, necenzurovanej a fungujúcej s využitím zdrojov účastníkov P2P siete. Platforma podporuje typické prvky sociálnej interakcie vývojárov, ako sú issue, patchy a recenzie kódu. Produkty projektu sú napísané v jazyku Rust a sú distribuované pod licenciami Apache 2.0 a MIT. Zostavenia sú pripravené pre Linux a macOS. Dodatočne sa vyvíja desktopový klient, webové rozhranie a konzolové rozhranie.
Radicle umožňuje nielen vyvíjať a zdieľať kód bez závislosti na centralizovaných platformách a korporáciách, ktorých viazanie prináša ďalšie riziká (jediný bod zlyhania, spoločnosť sa môže zatvoriť alebo zmeniť podmienky práce). Na riadenie kódu v Radicle sa používa známy Git, rozšírený prostriedkami na určovanie repozitárov v P2P sieti. Všetky dáta sú najprv uložené lokálne (koncept local-first) a vždy k dispozícii na počítači vývojára, bez ohľadu na stav sieťového pripojenia.
Účastníci poskytujú prístup k svojmu kódu a súvisiacim artefaktom, ako sú patchy a diskusie o opravách chýb (issues), ktoré sa ukladajú lokálne a replikujú na uzly iných zaujímavých vývojárov pripojených k spoločnej decentralizovanej P2P sieti. Týmto spôsobom sa formuje globálny decentralizovaný Git repozitár, ktorého dáta sú replikované a duplikované na rôznych systémoch účastníkov.
Na určenie susedných uzlov v P2P sieti sa používa protokol Gossip, a na replikáciu dát medzi uzlami protokol Heartwood, založený na Gite. Keďže je protokol založený na Gite, platformu je ľahké integrovať so existujúcimi nástrojmi pre vývoj na Gite. Na identifikáciu uzlov a verifikáciu repozitárov sa používa kryptografia na báze verejných kľúčov, bez použitia účtov. Autentifikácia a autorizácia sa vykonáva na báze verejných kľúčov bez centralizovaných certifikačných autorít. serverov.
Každý repozitár v P2P sieti má svoj jedinečný identifikátor a je samoverifikovaný (self-certifying), t.j. všetky činnosti v repozitári, ako pridávanie commitov a zanechávanie komentárov k issue, sú overované vlastníkom digitálnym podpisom, ktorý umožňuje overiť správnosť údajov na iných uzloch bez použitia centralizovaných certifikačných autorít. Na získanie prístupu k repozitáru stačí, aby bol online aspoň jeden uzol, na ktorom je jeho replikovaná kópia.
Uzly v P2P sieti sa môžu prihlasovať k určitým repozitárom a získavať aktualizácie. Je možné vytvárať súkromné repozitáre, prístupné len určitým uzlom. Na správu a vlastníctvo repozitára sa používa koncept „delegátov“ (delegates). Delegátom môže byť jednotlivý používateľ, ale aj bot alebo skupina, viazaná na špeciálny identifikátor. Delegáti môžu prijímať do repozitára patche, zatvárať issue a nastavovať práva prístupu k repozitáru. K každému repozitáru môže byť priradených niekoľko delegátov.
Radicle repozitáre sú uložené na systémoch používateľov ako obyčajné git repozitáre, v ktorých existujú dodatočné menné priestory na uchovávanie údajov peerov a forkov, s ktorými sa vykonáva aktuálna práca. Diskusie, navrhované patche a komponenty na organizovanie recenzovania sú tiež uchovávané v git repozitári vo forme spoločných objektov (COB — Collaborative Objects) a replikuje sa medzi peerami.
V novom vydaní:
- Prepracovaná realizácia podpísaných odkazov (sigrefs — Signed References), v ktorej bola pridaná ochrana proti opakovanému použitiu podpisov. Staršia štruktúra repozitára umožňovala nahradiť kód jeho starou verziou, pričom sa opakovane využívala stará správna podpis. Pre blokovanie problému bola v novej realizácii pridaný ukazovateľ na predchádzajúci záznam, pokrytý aktuálnym podpisom, čo vytvára nepretržitý reťazec zmien, ktorého integritu je možné sledovať vzhľadom na koreň.
- Rozšírili sa možnosti blokovania uzlov, ktoré sa teraz blokujú na úrovni správy pripojení. Ak predtým bola blokovaná iba prijímanie údajov, pripojenie uzla nebolo obmedzené, teraz sa blokovanie uplatňuje už pri pokuse o nadviazanie spojenia s blokovaným uzlom a pri prijímaní spojenia od blokovaného uzla.
- Povolené je používať akékoľvek odkazy na externé objekty Git, okrem dočasných vetiev. Predtým boli povolené len odkazy na externé vetvy, značky, metadáta Radicle, poznámky a objekty na spoluprácu.
- Zvýšila sa informatívnosť chybových hlásení, ktoré sa objavujú pri pokuse o vykonanie operácií, na ktoré má používateľ nedostatočné oprávnenia.
- Zvýšila sa efektivita vstupu/výstupu. Vývojári zistili, že na dlho bežiacich uzloch kombinácia nastavení „journal_mode = WAL“ a „synchronous = FULL“ v databáze SQLite, ktorá sa používa na ukladanie lokálneho stavu, vedie k veľkému objemu operácií vstupu/výstupu. Na zníženie zaťaženia je parameter „synchronous“ teraz nastavený na hodnotu „NORMAL“ a do konfiguračného súboru Radicle boli pridané nastavenia na úpravu týchto parametrov používateľom.
- Bola odstránená zraniteľnosť, o ktorej budú informácie zverejnené 23. marca. V súčasnosti sa len hlási, že tím vývojárov vykonal skenovanie všetkých verejne dostupných repozitárov Radicle a nezistil žiadne stopy po zneužití tohto problému.
Zdroj: opennet.ru
