UtgÄvan av P2P-plattformen Radicle 1.7 har publicerats, vilket syftar till att skapa en decentraliserad tjÀnst för samarbetsutveckling och lagring av kod, liknande GitHub och GitLab, men inte kopplad till specifika servrar, censurfri och fungerar med resurser frÄn medlemmarna i P2P-nÀtverket. Plattformen stöder typiska element för social interaktion mellan utvecklare, som issue, patchar och kodgranskningar. Projektets kod Àr skriven i Rust och distribueras under licenserna Apache 2.0 och MIT. Byggnationerna Àr förberedda för Linux och macOS. Dessutom utvecklas en skrivbordsclient, webgrÀnssnitt och 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:
- Implementeringen av signerade referenser (sigrefs - Signed References) har omarbetats, dÀr skydd mot ÄteranvÀndning av signaturer har lagts till. Den tidigare repository-strukturen tillÀt att koden byttes ut mot en tidigare version genom att ÄteranvÀnda en gammal korrekt signatur. För att lösa detta problem har en pekare till den tidigare posten, som omfattas av den aktuella signaturen, lagts till i den nya implementationen, vilket skapar en sammanhÀngande kedja av Àndringar vars integritet kan spÄras tillbaka till roten.
- Möjligheterna att blockera noder har utvidgats, som nu blockeras pÄ nivÄ för anslutningshantering. Tidigare blockerades endast mottagandet av data, utan att nodanslutningen begrÀnsades, men nu tillÀmpas blockering redan vid etableringen av anslutningen till den blockerade noden och vid mottagandet av anslutningen frÄn den blockerade noden.
- Det Àr nu tillÄtet att anvÀnda alla lÀnkar till externa Git-objekt, förutom temporÀra grenar. Tidigare var endast lÀnkar till externa grenar, taggar, Radicle-metadata, anteckningar och samarbetsobjekt tillÄtna.
- InformationsinnehÄllet i felmeddelandena har ökats, som uppkommer vid försök att utföra operationer för vilka anvÀndaren har otillrÀckliga rÀttigheter.
- Effektiviteten av in- och utdata har ökat. Utvecklarna har upptÀckt att pÄ lÄngvarigt körande noder, kombinationen av instÀllningarna "journal_mode = WAL" och "synchronous = FULL" i SQLite-databasen som anvÀnds för att lagra lokalt tillstÄnd, leder till en stor mÀngd in- och utdataoperationer. För att minska belastningen har instÀllningen "synchronous" nu som standard satts till "NORMAL", och i konfigurationsfilen för Radicle har instÀllningar lagts till för att lÄta anvÀndaren Àndra dessa vÀrden.
- SÄrbarheten har ÄtgÀrdats, information om den kommer att offentliggöras den 23 mars. För nÀrvarande rapporteras endast att utvecklarteamet har skannat alla offentligt tillgÀngliga Radicle-repositorier och inte har funnit nÄgra tecken pÄ utnyttjande av problemet.
KĂ€lla: opennet.ru
