Është publikuar versioni 1.7 i platformës P2P Radicle, e cila synon krijimin e një shërbimi të decentralizuar për zhvillimin dhe ruajtjen e kodit, të ngjashëm me GitHub dhe GitLab, por pa u lidhur me serverë të caktuar, pa censurë dhe duke punuar me burimet e pjesëmarrësve të rrjetit P2P. Platforma mbështet elementet standarde të bashkëpunimit të zhvilluesve, të tilla si issue, patches dhe rishikime të kodit. Arsyetimi i projektit është shkruar në gjuhën Rust dhe shpërndahet nën licencat Apache 2.0 dhe MIT. Ndërtimet janë përgatitur për Linux dhe macOS. Gjithashtu, zhvillohen një klient desktop, një ndërfaqe web dhe një ndërfaqe konsolë.
Radicle lejon që zhvillimi dhe shpërndarja e kodit të mos varen nga platforma dhe korporatat e centralizuara, lidhja me të cilat sjell shtrenjtime të tjera (pikë e vetme dështimi, kompania mund të mbyllet ose të ndryshojë kushtet e funksionimit). Për menaxhimin e kodit në Radicle përdoret Git-i i njohur, i zgjeruar me mjete për përkufizimin e repozitorëve në rrjetin P2P. Të gjitha të dhënat ruhet fillimisht në mënyrë lokale (koncepti local-first) dhe gjithmonë janë të disponueshme në kompjuterin e zhvilluesit, pa marrë parasysh gjendjen e lidhjes në rrjet.
Pjesëmarrësit ofrojnë qasje në kodin e tyre dhe artikujt e lidhur me kodin, të tilla si patches dhe diskutime për rregullimin e gabimeve (issues), të cilat ruhet lokalish dhe replikohen në nyjet e zhvilluesve të tjerë të interesuar, të lidhur me rrjetin e përgjithshëm decentralizuar P2P. Si rezultat, formohet një repozitor global i decentralizuar Git, të dhënat e të cilit janë replikuar dhe kopjuar në sisteme të ndryshme të pjesëmarrësve.
Për të përcaktuar nyjet fqinj në rrjetin P2P, aplikohet protokolli Gossip, dhe për replikimin e të dhënave midis nyjeve, protokolli Heartwood, i bazuar në Git. Duke qenë se protokolli është i bazuar në Git, platforma lehtë integruar me mjetet ekzistuese për zhvillim në Git. Për identifikimin e nyjeve dhe verifikimin e repozitorëve përdoret kriptografia e bazuar në çelësa publikë, pa përdorimin e llogarive. Autentifikimi dhe autorizimi bëhet mbi bazën e çelësave publikë, pa unifikim qendror. serverësh.
Çdo depo në rrjetin P2P ka një identifikues unik dhe është vetë-certifikues, pra të gjitha veprimet në depo, si shtimi i komiteteve dhe lënia e komenteve në çështje, janë të vulosura nga pronari me një nënshkrim digjital, duke lejuar verifikimin e saktësisë së të dhënave në nyje të tjera pa përdorur qendrat e akreditimit centralizuese. Për të pasur qasje në depo mjafton që të jetë në internet të paktën një nyje, në të cilën ndodhet kopja e saj e riprodhuar.
Nyjet në rrjetin P2P mund të regjistrohen në depo të caktuara dhe të marrin përmirësime. Është e mundur krijimi i depozita private, të cilat janë të qasshme vetëm për nyje të caktuara. Për menaxhimin dhe pronësinë e depozitës përdoret koncepti i "delegatëve". Një delegat mund të jetë ose një përdorues i vetëm, ose një bot ose grup, i lidhur me një identifikues të veçantë. Delegatët mund të pranojnë patch-e në depo, të mbyllin çështje dhe të caktuar të drejtat e aksesit në depo. Çdo depo mund të lidhet me disa delegatë.
Depozitat Radicle ruajnë në sistemet e përdoruesve si depo git të zakonshme, në të cilat janë të pranishme hapësira shtesë emrash për ruajtjen e të dhënave të peers dhe fork-ëve, me të cilët po punohet aktualisht. Diskutimet, patch-et e propozuara dhe komponentet për organizimin e rishikimeve gjithashtu ruhen në depo git si objekte bashkëpunuese (COB - Collaborative Objects) dhe riprodhohen midis peers.
Në versionin e ri:
- Është rishikuar zbatimi i lidhjeve të nënshkruara (sigrefs - Signed References), i cili përfshin mbrojtjen nga ripërdorimi i nënshkrimeve. Struktura e vjetër e depozitës lejonte zëvendësimin e kodit me versionin e tij të vjetër, duke ripërdorur një nënshkrim të vjetër të saktë. Për të bllokuar këtë problem, në zbatimin e ri është shtuar një tregues për shënimin e regjistrimit të mëparshëm, i mbuluar nga nënshkrimi aktual, duke formuar një zinxhir të pandërprerë të ndryshimeve, integriteti i të cilit mund të ndjeket në lidhje me rrënjën.
- Janë zgjeruar mundësitë për bllokimin e nyjeve, të cilat tani bllokohen në nivelin e menaxhimit të lidhjeve. Nëse më parë bllokohej vetëm pranimi i të dhënave, pa kufizuar lidhjen e nyjes, tani bllokimi aplikohet në fazën e krijimit të lidhjes me nyjen e bllokuar dhe gjatë pranimit të lidhjes nga nyja e bllokuar.
- Lejohet përdorimi i çdo lidhjeje në objekte të jashtme Git, përveç degëve të përkohshme. Më parë, lejohej vetëm lidhja në degë të jashtme, etiketat, metadatat Radicle, shënimet dhe objektet për bashkëpunim.
- Janë rritur informacione të mesazheve të gabimeve që ndodhin kur përpiqeni të kryeni operacione për të cilat përdoruesi nuk ka të drejta të mjaftueshme.
- Janë rritur efikasiteti i hyrjes/daljes. Zhvilluesit zbuluan se në nyjet e drejtuara për një kohë të gjatë kombinimi i parametrave "journal_mode = WAL" dhe "synchronous = FULL" në DB SQLite, e cila përdoret për ruajtjen e gjendjes lokale, çon në një volum të madh operacionesh hyrje/dalje. Për të zvogëluar ngarkesën, tani parametri "synchronous" është vendosur në "NORMAL" si parazgjedhje, dhe janë shtuar në skedarin e konfigurimit Radicle cilësime për ndryshimin e këtyre parametrave nga përdoruesi.
- Është eliminuar një vulnerabilitet, informacioni për të cilin do të publikohet më 23 mars. Aktualisht raportohet vetëm se ekipi i zhvilluesve ka skenuar të gjitha depozitë publike Radicle dhe nuk ka zbuluar shenja të shfrytëzimit të këtij problemi.
Burimi: opennet.ru
