Bol spustený vydanie P2P platformy Radicle 1.6, zameranej na vytvorenie decentralizovanej služby spolupráce a uchovávania kódu, podobnej GitHub a GitLab, ale nie viazanej na konkrétne servery, necenzurovanej a fungujúcej s využitím prostriedkov účastníkov P2P siete. Platforma podporuje štandardné prvky sociálnej interakcie vývojárov, ako sú issue, patche a recenzie kódu. Vývoj projektu je napísaný v programovacom jazyku Rust a distribuuje sa pod licenciami Apache 2.0 a MIT. Sestavy sú pripravené pre Linux a macOS. Ďalej 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í:
- Implementácie uzla Radicle (radicle-node) boli prevedené na používanie knižnice vstupu/výstupu Mio. Závislosti boli odstránené balíky netservices, io-reactor a popol, ktoré bránili dosiahnuť potrebnú úroveň multiplatformnosti. Pridaný nový modul reactor, v rámci ktorého bol io-reactor prepísaný na základe Mio.
- Prechod na Mio umožnil implementovať podporu platformy Windows, ktorá má zatiaľ status experimentálnej.
- Kód na analýzu argumentov príkazového riadku bol prevedený na knižnicu clap, čo zjednotilo správanie pri analýze argumentov a prinieslo do utilitky rad také možnosti ako automatická generácia nápovedy k príkazom, výstup odporúčaní na odstránenie chýb, zvýraznenie výstupu a autocompletion príkazov.
- V radicle-node bola pridaná podpora mechanizmu systemd Credentials na bezpečné prenášanie prístupových kľúčov (xyz.radicle.node.secret) a hesiel na ich dešifrovanie (xyz.radicle.node.passphrase), navyše k použitiu premennej prostredia RAD_PASSPHRASE, možnosti príkazového riadku "--secret" a parametrov v konfiguračnom súbore.
- Požiadavky na minimálnu podporovanú verziu kompilátora Rust boli zvýšené na 1.85.
Zdroj: opennet.ru
