Utgivningen av P2P-plattformen Radicle 1.5 har presenterats, som syftar till att skapa en decentraliserad tjÀnst för gemensam utveckling och lagring av kod, liknande GitHub och GitLab, men som inte Àr knuten till specifika servrar, inte Àr censurerad och fungerar med hjÀlp av resurser frÄn deltagarna i P2P-nÀtverket. Plattformen stödjer typiska element för social interaktion mellan utvecklare, sÄsom issue, patchar och kodgranskningar. Projektets kod Àr skriven i Rust och distribueras under licenserna Apache 2.0 och MIT. Byggnader har förberetts för Linux och macOS. Dessutom utvecklas en skrivbordsklient, webgrÀnssnitt och ett konsolgrÀnssnitt.
Radicle gör att man kan oberoende utveckla och distribuera kod utan att vara beroende av centraliserade plattformar och företag, vilka medför ytterligare risker (en enda punkt för fel, företaget kan stÀnga eller Àndra anvÀndningsvillkor). För hantering av kod i Radicle anvÀnds det vÀlkÀnda Git, utökat med verktyg för att bestÀmma databaser i P2P-nÀtverket. All data sparas frÀmst lokalt (local-first konceptet) och Àr alltid tillgÀnglig pÄ utvecklarens dator, oavsett nÀtverksanslutningens status.
Deltagare ger tillgÄng till sin kod och relaterade artefakter, som patchar och diskussioner om buggfixar (issues), vilka lagras lokalt och replikeras pÄ noder av andra intresserade utvecklare som Àr anslutna till det gemensamma decentraliserade P2P-nÀtverket. Slutresultatet blir ett globalt decentraliserat Git-repo, vars data Àr replikerade och kopierade pÄ olika deltagares system.
För att identifiera nÀrliggande noder i P2P-nÀtverket anvÀnds Gossip-protokollet, och för datareplication mellan noder anvÀnds Heartwood-protokollet, som Àr baserat pÄ Git. Eftersom protokollet baseras pÄ Git Àr det enkelt att integrera plattformen med befintliga verktyg för Git-utveckling. För identifiering av noder och verifiering av databaser anvÀnds kryptografi baserad pÄ offentliga nycklar, utan anvÀndning av konton. Autentisering och auktorisering sker baserat pÄ offentliga nycklar utan centraliserade certifieringsorgan. servrar.
Varje repository i P2P-nÀtverket har sin unika identifierare och Àr sjÀlvcertifierad, vilket innebÀr att alla ÄtgÀrder i repositoryn, sÄsom att lÀgga till commits och lÀmna kommentarer pÄ issue, bekrÀftas av Àgaren med en digital signatur. Detta gör att man kan försÀkra sig om datans korrekthet pÄ andra noder utan att anvÀnda centraliserade certifikatutfÀrdare. För att fÄ Ätkomst till repositoryn Àr det tillrÀckligt om det finns minst en nod online som har en replikerad kopia av den.
Noder i P2P-nÀtverket kan prenumerera pÄ specifika repositories och ta emot uppdateringar. Det Àr möjligt att skapa privata repositories som endast Àr tillgÀngliga för vissa noder. För att hantera och Àga ett repository anvÀnds konceptet 'delegater'. En delegat kan vara en enskild anvÀndare, en bot eller en grupp kopplade till ett speciellt identifierare. Delegater kan ta emot patchar i repositoryn, stÀnga issues och stÀlla in ÄtkomstrÀttigheter till repositoryn. Flera delegater kan knytas till varje repository.
Radicle-repositories lagras pÄ anvÀndarnas system som vanliga git-repositories, dÀr det finns ytterligare namnrymder för lagring av peer-data och forks som anvÀnds i det pÄgÄende arbetet. Diskussioner, föreslagna patchar och komponenter för att organisera granskningar lagras ocksÄ i git-repositoryt som samarbetsobjekt (COB - Collaborative Objects) och replikerar mellan peers.
I den nya utgÄvan:
- Stödet för bare-repositorier har förbĂ€ttrats, som inte innehĂ„ller en arbetskatalog med en kopia av projektfiler, utan endast lagrar historik och metadata, sĂ„som grenar och taggar. I kommandot "rad clone" har alternativet "âbare" lagts till för att möjliggöra kloning av ett repository i en visning utan arbetskatalog. I verktyget "git-remote-rad" har hanteringen av bare-repositorier förbĂ€ttrats vid anvĂ€ndning av kommandona "git push" och "git fetch" vid Ă„tkomst till en extern rad-server.
- InstÀllningen "patch.branch" har lagts till, som kan anvÀndas i verktyget git-remote-rad ("git-remote-rad -o patch.branch[=<name>]") nÀr du lÀgger till en patch för att automatiskt skapa en gren i upstream-repositoriet, utan att behöva anvÀnda kommandot "rad patch checkout".
- Utdata frĂ„n kommandot "rad patch show" har förbĂ€ttrats, vilket nu visar den ursprungliga versionen av patchen, vilket tidigare endast visades nĂ€r flaggan "âverbose" angavs. Alla revisioner visas nu i en enhetlig tidslinje utan uppdelning mellan Ă€ndringar frĂ„n den ursprungliga författaren och andra deltagare.
- Möjligheten att visa loggar i ett strukturerat format har lagts till, aktiverat via alternativen "âlog-logger structured" och "âlog-format json".
KĂ€lla: opennet.ru
