Tutvustame Radicle 1.5 P2P platvormi väljaannet, mille eesmärk on luua detsentraliseeritud teenus koostegevuseks ja koodi säilitamiseks, mis sarnaneb GitHubile ja GitLabile, kuid ei sõltu konkreetsetest serveritest, on tsensuuri suhtes immuunne ning kasutab P2P-võrgu osaliste ressursse. Platvorm toetab arendajate sotsiaalset suhtlust, nagu probleemid (issues), plaastrid (patches) ja koodi ülevaated. Projekti arendused on kirjutatud Rust programmid keeles ja levitatakse Apache 2.0 ja MIT litsentside alusel. Kompileerimistööd on ettevalmistatud Linuxi ja macOSi jaoks. Täiendavalt arendatakse laua- ja veebikliente ning konsooli liidest.
Radicle võimaldab arendamisel ja koodi levitamisel mitte sõltuda tsentraliseeritud platvormidest ja ettevõtetest, millele tuginedes kaasnevad täiendavad riskid (üksik tõrke koht, ettevõte võib lõpetada tegevuse või muuta töötingimusi). Koodi haldamiseks kasutab Radicle tuttavat Gitit, täiustatud P2P-võrgu hoidlate määratlemise vahenditega. Kõik andmed salvestatakse esmasele tasandile kohapeal (local-first kontseptsioon) ja on alati arendaja arvutis kergesti kättesaadavad, olenemata võrguühenduse seisundist.
Osalised annavad ligipääsu oma koodile ja sellega seotud artefaktidele, nagu plaastrid ja veaparanduste arutelud (issues), mis salvestatakse kohapeal ja replikatakse teiste huvitatud arendajate sõlmedesse, mis on ühendatud ühistesse detsentraliseeritud P2P-võrkudesse. Lõppkokkuvõttes moodustatakse globaalne detsentraliseeritud Git-repositoorium, mille andmed on replikatud ja dupleeritud osalejate erinevates süsteemides.
P2P-võrgus naabrsõlmede määramiseks kasutatakse Gossip-protokolli ja sõlmede vaheliseks andmete replikatsiooniks Heartwood-protokolli, mis põhineb Git'il. Kuna protokoll põhineb Git'il, on platvormi lihtne integreerida olemasolevate Git arendusvahenditega. Sõlmede identifitseerimiseks ja registrite valideerimiseks kasutatakse avaliku võtme krüptograafiat, ilma kontode kasutamiseta. Autentimine ja autoriseerimine toimub avalike võtmete alusel ilma kesksete sertifitseerimiskeskusteta. serverite.
Igal P2P-võrgu registril on oma unikaalne identifikaator ja see on ise-sertifitseeritud, st kõik toimingud registris, nagu committide lisamine ja kommentaaride jätmine issue'le, kinnitatakse digitaalse allkirjaga, mis võimaldab veenduda andmete õigsuses teistes sõlmedes ilma kesksete sertifitseerimiskeskusteta. Registrile juurdepääsuks piisab, kui online oleks vähemalt üks sõlm, millel on selle replitseeritud koopia.
P2P-võrgus võivad sõlmed tellida teatud hoidlate muudatused ja saada värskendusi. Privaatsete hoidlate loomine, mis on saadaval ainult teatud sõlmedele, on võimalik. Hoidla haldamiseks ja omamiseks kasutatakse mõisted „delegaadid” (delegates). Delegaadiks võib olla nii üksik kasutaja, bot kui ka rühm, mis on seotud spetsiaalse identifikaatoriga. Delegaadid võivad hoidlas teha muudatusi, sulgeda ülesandeid ja määrata õiguseid hoidlasse. Iga hoidla juurde võib olla seotud mitu delegeeritud isikut.
Radicle-hoidlad salvestatakse kasutajate süsteemides tavaliste git-hoidlatena, kus on täiendavad nimestikud piraatide ja forkkide andmete hoidmiseks, millega praegu töötatakse. Arutelud, pakutud muudatused ja arvustamise korraldamiseks mõeldud koostisosad salvestatakse samuti git-hoidlas koostööliste objektidena (COB — Collaborative Objects) ja replitseeritakse piraatide vahel.
Uues väljaandes:
- Parandatud on bare-repositooriumite toetust, mis ei sisalda töökausta projekti failide koopia jaoks, vaid salvestavad ainult muudatusajalugu ja metaandmeid, näiteks harud ja sildid. Käsku „rad clone“ on lisatud valik „—bare“, mis võimaldab repositooriumi kloonida töökataloogita vaatesse. Tööriistas „git-remote-rad“ on parandatud bare-repositooriumide käsitlemist, kui kasutatakse käske „git push“ ja „git fetch“, pöördudes välise rad-serveri poole.
- Lisatud seadistus «patch.branch», mida saab kasutada git-remote-rad utiliidis («git-remote-rad -o patch.branch[=<name>]») patroneerimise lisamisel, et automaatselt luua haru upstream-repositooriumis, vältides käsu «rad patch checkout» kasutamist.
- Parandatud käsu «rad patch show» väljundit, mis nüüd näitab patši algversiooni, mille varem väljastati ainult «—verbose» lipuga. Kõik revideeritud versioonid kuvatakse nüüd ühtses kronoloogias, ilma jagamata originaali autori ja teiste osaliste muudatuste vahel.
- Lisatud võimalus logide väljastamiseks struktureeritud vaates, mis aktiveeritakse valikutega «—log-logger structured» ja «—log-format json».
Allikas: opennet.ru
