Radicle, una piattaforma P2P, hà publicatu a versione 1.7. U so scopu hè di creà un serviziu decentralizatu per u sviluppu è l'archiviazione di codice collaborativu, simile à GitHub è GitLab, ma micca ligatu à servitori specifichi, senza censura, è alimentatu da i participanti à a rete P2P. A piattaforma supporta elementi tipici di l'interazione suciale trà i sviluppatori, cum'è prublemi, patch è revisioni di codice. I sviluppi di u prugettu sò scritti in Rust è distribuiti sottu e licenze Apache 2.0 è MIT. E compilazioni sò dispunibili per Linux и macOSU cliente desktop, l'interfaccia web è l'interfaccia di a cunsola sò ancu in sviluppu.
Radicle permette di ùn dipende micca quandu u sviluppu è a distribuzione di u codice nantu à e plataforme è e corporazioni centralizzate, ubligatoriu à quale introduce risichi supplementari (unicu puntu di fallimentu, a cumpagnia pò chjude o cambià e cundizioni di travagliu). Per gestisce u codice, Radicle usa u Git familiar, allargatu cù arnesi per definisce i repositori in una reta P2P. Tutti i dati sò prima salvati in u locu (cuncepimentu lucale-primu) è sò sempre dispunibili nantu à l'urdinatore di u sviluppatore, indipendentemente da u statu di a cunnessione di a reta.
I participanti furniscenu l'accessu à u so codice è à l'artifacti di codice, cum'è patches è prublemi, chì sò almacenati in u locu è riplicati à i nodi di altri sviluppatori interessati cunnessi à una reta P2P decentralizata cumuna. In u risultatu, un repository Git decentralizatu glubale hè furmatu, i dati di quale hè replicatu è duplicatu in diversi sistemi di participanti.
U protocolu Gossip hè utilizatu per identificà i nodi vicini in a rete P2P, è u protocolu Heartwood, basatu annantu à Git, hè utilizatu per replicà i dati trà i nodi. Siccomu u protocolu hè basatu annantu à Git, a piattaforma pò esse facilmente integrata cù l'arnesi di sviluppu Git esistenti. A crittografia à chjave publica hè utilizata per identificà i nodi è verificà i repositori, senza l'usu di credenziali. L'autenticazione è l'autorizazione sò realizate utilizendu chjave publiche senza autorità centralizate. servitori.
Ogni repository in a reta P2P hà u so propiu identificatore unicu è hè autocertificatu, i.e. tutte l'azzioni in u repository, cum'è l'aghjunzione di cummissioni è lascià cumenti per issuà, sò certificati da u pruprietariu cù una firma digitale, chì permette di verificà a correttezza di e dati in altri nodi senza l'usu di l'autorità di certificazione centralizata. Per accede à u repositoriu, hè abbastanza chì almenu un node hè in linea è hà una copia replicata di questu.
I nodi in una rete P2P ponu abbonate à certi repositori è riceve l'aghjurnamenti. Hè pussibule di creà repositori privati accessibili solu per certi nodi. U cuncettu di "delegati" hè utilizatu per gestisce è pussede un repository. Un delegatu pò esse un utilizatore individuale, un bot o un gruppu ligatu à un identificatore speciale. I delegati ponu accettà patches à u repository, chjude i prublemi è stabilisce i diritti d'accessu à u repository. Ogni repositoriu pò avè parechji delegati assuciati cun ellu.
I repositori Radicle sò almacenati nantu à i sistemi di l'utilizatori cum'è repositori Git regulari, cù spazii di nomi supplementari per almacenà dati per i pari è i fork nantu à i quali si travaglia. E discussioni, i patch pruposti è i cumpunenti di revisione sò ancu almacenati in u repositoriu Git cum'è Oggetti Collaborativi (COB) è replicati trà i pari.
In a nova versione:
- L'implementazione di e referenze firmate (sigrefs) hè stata riprogettata per prutege contr'à u riutilizazione di e firme. A vechja struttura di u repositoriu permetteva di rimpiazzà u codice cù una versione più vechja, riutilizendu una vechja firma valida. Per risolve stu prublema, a nova implementazione aghjusta un puntatore à u registru precedente cupertu da a firma attuale, creendu una catena ininterrotta di cambiamenti chì a so integrità pò esse tracciata finu à a radica.
- E capacità di bluccà i nodi sò state allargate, cù u bluccamentu chì si faci avà à u livellu di gestione di a cunnessione. Prima, solu a ricezione di dati era bluccata, senza restringe a cunnessione di u nodu. Avà, u bluccamentu hè applicatu sia quandu si stabilisce una cunnessione cù un nodu bluccatu sia quandu si accetta una cunnessione da un nodu bluccatu.
- Ogni riferimentu à oggetti Git esterni hè avà permessu, eccettu per e branche tempuranee. Prima, solu i riferimenti à branche esterne, tag, metadati Radicle, note è oggetti di cullaburazione eranu permessi.
- Cuntenutu d'infurmazione migliuratu in i missaghji d'errore chì si verificanu quandu si prova à fà operazioni per e quali l'utente ùn hà micca diritti sufficienti.
- L'efficienza I/O hè stata migliurata. I sviluppatori anu scupertu chì nantu à i nodi di longa durata, a cumbinazione di "journal_mode = WAL" è "synchronous = FULL" in a basa di dati SQLite aduprata per almacenà u statu lucale hà risultatu in un altu caricu I/O. Per riduce u caricu, u parametru "synchronous" hè statu impostu à "NORMAL" per difettu, è i paràmetri configurabili da l'utente per questi parametri sò stati aghjunti à u schedariu di cunfigurazione Radicle.
- Una vulnerabilità hè stata corretta, è l'infurmazioni nantu à questu seranu divulgate u 23 di marzu. Attualmente, a squadra di sviluppu hà scansionatu tutti i repositori Radicle accessibili publicamente è ùn hà trovu alcuna prova di sfruttamentu.
Source: opennet.ru
