Byla představena verze P2P platformy Radicle 1.5, která se zaměřuje na vytvoření decentralizované služby pro spolupráci a ukládání kódu, podobné GitHubu a GitLabu, ale není vázána na konkrétní servery, je odolná vůči cenzuře a využívá zdroje účastníků P2P sítě. Platforma podporuje typické prvky sociální interakce vývojářů, jako jsou issues, patche a recenze kódu. Vývoj projektu je napsán v jazyce Rust a je distribuován pod licencemi Apache 2.0 a MIT. Sestavení jsou připravena pro Linux a macOS. Dále se rozvíjí desktopový klient, webové rozhraní a konzolové rozhraní.
Radicle umožňuje nezávislost při vývoji a distribuci kódu na centralizovaných platformách a korporacích, jejichž vazba přináší dodatečná rizika (jediná bod selhání, společnost může ukončit své fungování nebo změnit podmínky práce). Pro správu kódu se v Radicle používá běžný Git, rozšířený prostředky pro určování repozitářů v P2P síti. Všechna data jsou nejprve ukládána lokálně (koncept local-first) a vždy dostupná na počítači vývojáře, nezávisle na stavu síťového připojení.
Účastníci poskytují přístup ke svému kódu a souvisejícím artefaktům, jako jsou patche a diskuse o opravách chyb (issues), které jsou ukládány lokálně a replikovány na uzly dalších zainteresovaných vývojářů připojených k společné decentralizované P2P síti. Vzniká tak globální decentralizovaný Git repozitář, jehož data jsou replikována a duplikována na různých systémech účastníků.
Pro určení sousedních uzlů v P2P síti se používá protokol Gossip a pro replikaci dat mezi uzly protokol Heartwood založený na Git. Protože je protokol založen na Git, je platforma snadno integrována s existujícími nástroji pro vývoj na Git. Pro identifikaci uzlů a ověřování repozitářů se využívá kryptografie založená na veřejných klíčích, bez použití účtů. Autentizace a autorizace jsou prováděny na základě veřejných klíčů bez centralizovaných certifikačních autorit. servery.
Každý repozitář v P2P síti má svůj jedinečný identifikátor a je sebeověřující (self-certifying), což znamená, že všechny akce v repozitáři, jako je přidávání commitů a zanechávání komentářů k issue, jsou potvrzeny vlastníkem digitálním podpisem, který umožňuje ověřit správnost dat na jiných uzlech bez použití centralizovaných certifikačních autorit. K získání přístupu k repozitáři stačí, aby byl online alespoň jeden uzel, na kterém je jeho replikovaná kopie.
Uzly v P2P síti se mohou přihlašovat k určitým repozitářům a přijímat aktualizace. Existuje možnost vytváření soukromých repozitářů, které jsou přístupné pouze určitým uzlům. Pro správu a vlastnictví repozitáře se používá koncept „delegátů“ (delegates). Delegátem může být jak jednotlivý uživatel, tak bot nebo skupina, spojená se speciálním identifikátorem. Delegáti mohou přijímat do repozitáře patche, uzavírat issue a nastavovat práva přístupu k repozitáři. K každému repozitáři může být přidruženo několik delegátů.
Radicle repozitáře jsou uchovávány na systémech uživatelů jako běžné git repozitáře, ve kterých jsou přítomná další jmenná prostory pro uchovávání dat pirátů a forků, se kterými se aktuálně pracuje. Diskuze, navrhované patche a komponenty pro organizaci recenzování jsou také uchovány v git repozitáři jako sdílené objekty (COB — Collaborative Objects) a replikovány mezi piráty.
V novém vydání:
- Byla vylepšena podpora bare repository, která neobsahují pracovní adresář s kopií souborů projektu, ale pouze uchovávají historii změn a metadata, jako jsou větve a tagy. Do příkazu „rad clone“ byla přidána volba „—bare“, která umožňuje klonovat repozitář v zobrazení bez pracovního stromu. V utilitě „git-remote-rad“ bylo vylepšeno fungování s bare repozitáři při použití příkazů „git push“ a „git fetch“ při přístupu k externímu rad serveru.
- Byla přidána konfigurace „patch.branch“, kterou lze použít v utilitě git-remote-rad („git-remote-rad -o patch.branch[=<name>]“) při přidávání patchu pro automatické vytvoření větve v upstream repozitáři, aniž by bylo třeba používat příkaz „rad patch checkout“.
- Byl vylepšen výstup příkazu „rad patch show“, který nyní zobrazuje původní verzi patchu, která byla dříve zobrazena pouze při zadání příznaku „—verbose“. Všechny revize jsou nyní zobrazeny v jednotné chronologii bez rozdělení na změny od původního autora a dalších účastníků.
- Byla přidána možnost výstupu logů ve strukturovaném zobrazení, které se aktivuje pomocí voleb „—log-logger structured“ a „—log-format json“.
Zdroj: opennet.ru
