Udgivet version 1.7 af P2P-platformen Radicle, der er rettet mod at skabe en decentraliseret service til samarbejdende udvikling og opbevaring af kode, som ligner GitHub og GitLab, men som ikke er bundet til specifikke servere, ikke er udsat for censur, og fungerer ved hjælp af ressourcerne fra deltagerne i P2P-netværket. Platformen understøtter typiske elementer for social interaktion blandt udviklere, såsom issue, patches og kodeanmeldelser. Projektets komponenter er skrevet i Rust og distribueres under licenserne Apache 2.0 og MIT. Bygningerne er forberedt til Linux og macOS. Der udvikles desuden en desktop-klient, webgrænseflade og et konsolinterface.
Radicle gør det muligt at udvikle og distribuere kode uden afhængighed af centrale platforme og virksomheder, som kan medføre yderligere risici (enkelt fejlpunkter, virksomheden kan lukke eller ændre arbejdsbetingelserne). Til at styre koden i Radicle anvendes det velkendte Git, udvidet med værktøjer til at definere repositoryer i P2P-netværket. Alle data gemmes først og fremmest lokalt (local-first konceptet) og er altid tilgængelige på udviklerens computer, uanset netværksforbindelsens tilstand.
Deltagerne giver adgang til deres kode og tilknyttede artefakter, såsom patches og diskussioner om fejlrettelser (issues), som gemmes lokalt og replikeres til noderne af andre interesserede udviklere, der er tilsluttet det fælles decentrale P2P-netværk. Resultatet er et globalt decentralt Git-repository, hvis data er replikeret og duplikeret på forskellige systemer af deltagerne.
For at bestemme nærliggende noder i P2P-netværket anvendes Gossip-protokollen, og til at replikere data mellem noder anvendes Heartwood-protokollen, baseret på Git. Da protokollen er baseret på Git, er platformen let at integrere med eksisterende udviklingsværktøjer til Git. Kryptografi baseret på offentlige nøgler bruges til at identificere noder og verificere repositories, uden brug af brugerkonti. Autentifikation og autorisation foretages baseret på offentlige nøgler uden centraliserede certifikater. servere.
Hver repository i P2P-netværket har sin unikke identifikator og er selvcertificerende, dvs. alle handlinger i repository, såsom tilføjelse af commits og kommentarer til issue, bliver certificeret af ejeren med en digital signatur, som gør det muligt at sikre datanøjagtigheden på andre noder uden brug af centraliserede certifikatautoriteter. For at få adgang til repository er det tilstrækkeligt, at der online er mindst én node, hvor dens replikerede kopi findes.
Noder i P2P-netværket kan abonnere på bestemte repositories og modtage opdateringer. Det er muligt at oprette private repositories, der kun er tilgængelige for bestemte noder. Der anvendes et koncept af 'delegaer' til at styre og eje et repository. En deleger kan være en enkelt bruger, en bot eller en gruppe, knyttet til en særlig identifikator. Delegerer kan acceptere patches i repository, lukke issue og tildele adgangsrettigheder til repository. Flere deleger kan knyttes til hvert repository.
Radicle-repositories gemmes på brugernes systemer som almindelige git-repositories, hvor der er ekstra navnerum til opbevaring af peer-data og forks, som der arbejdes med aktuelt. Diskussioner, foreslåede patches og komponenter til organisering af anmeldelse gemmes også i git-repository som collaborative objects (COB) og replikeres mellem peers.
I den nye version:
- Implementeringen af signeret links (sigrefs - Signed References) er blevet omarbejdet, hvilket har tilføjet beskyttelse mod genbrug af signaturer. Den gamle struktur i lageret tillod at erstatte koden med en gammel version ved at genbruge en gammel gyldig signatur. For at blokere dette problem er der tilføjet en henvisning til den forrige post, som er dækket af den aktuelle signatur, hvilket danner en sammenhængende kæde af ændringer, hvis integritet kan spores tilbage til roden.
- Mulighederne for at blokere knuder er blevet udvidet, så de nu blokeres på forbindelsesstyringsniveau. Tidligere blev der kun blokeret for dataoverførsel uden at blokere forbindelsen til knuden, men nu anvendes blokeringen allerede ved etablering af forbindelse med en blokeret knude og ved modtagelse af forbindelse fra en blokeret knude.
- Det er blevet tilladt at bruge enhver henvisning til eksterne Git-objekter, undtagen midlertidige grene. Tidligere blev der kun tilladt henvisninger til eksterne grene, tags, Radicle metadata, noter og objekter til samarbejde.
- Informationsindholdet i fejlmeddelelser, der opstår ved forsøg på at udføre operationer, som brugeren ikke har tilstrækkelige rettigheder til, er blevet forbedret.
- Effektiviteten af input/output er forbedret. Udviklerne har opdaget, at for længe kørende noder, kombinationen af indstillingerne «journal_mode = WAL» og «synchronous = FULL» i SQLite-databasen, der anvendes til at gemme lokal tilstand, resulterer i et stort antal input/output-operationer. For at reducere belastningen er indstillingen «synchronous» nu som standard indstillet til «NORMAL», og konfigurationsfilen for Radicle har fået tilføjet indstillinger, så brugeren kan ændre disse parametre.
- En sårbarhed er blevet rettet, og information om den vil blive offentliggjort den 23. marts. Efter sigende har udviklingsteamet scannet alle offentligt tilgængelige Radicle-repositorier og ikke fundet spor af udnyttelse af dette problem.
Kilde: opennet.ru
