Byl vydán nový release P2P platformy Radicle 1.6, cílený na vytvoření decentralizované služby pro společný vývoj a ukládání kódu, podobné GitHubu a GitLabu, ale nezávislé na konkrétních serverech, necenzurovatelné a fungující na základě prostředků účastníků P2P sítě. Platforma podporuje typické prvky sociální interakce vývojářů, jako jsou issues, patche a code review. 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 vyvíjejí 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í:
- Realizace uzlu Radicle (radicle-node) byla převedena na použití knihovny pro vstup/výstup Mio. Byly vyloučeny závislosti na balíčcích netservices, io-reactor a popol, které bránily dosažení požadované úrovně multiplatformnosti. Byl přidán nový modul reactor, v rámci kterého byl io-reactor přepsán na základě Mio.
- Přechod na Mio umožnil realizaci podpory platformy Windows, která zatím má status experimentální.
- Kód pro zpracování argumentů příkazové řádky byl převeden na knihovnu clap, což sjednotilo chování při zpracování argumentů a přineslo do utility rad takové možnosti jako automatická generace nápovědy k příkazům, výstup doporučení k odstranění chyb, zvýraznění výstupu a automatické doplňování příkazů.
- Do radicle-node byla přidána podpora mechanismu systemd Credentials pro bezpečný přenos přístupových klíčů (xyz.radicle.node.secret) a hesel pro jejich dešifrování (xyz.radicle.node.passphrase) navíc k použití proměnné prostředí RAD_PASSPHRASE, volby příkazového řádku "--secret" a parametrů v konfiguračním souboru.
- Požadavky na minimálně podporovanou verzi kompilátoru Rust byly zvýšeny na 1.85.
Zdroj: opennet.ru
