È disponibile la piattaforma decentralizzata di co-sviluppo Radicle 1.5

È stata presentata la versione 1.5 della piattaforma P2P Radicle, mirata alla creazione di un servizio decentralizzato per la collaborazione e la memorizzazione del codice, simile a GitHub e GitLab, ma non vincolato a server specifici, non soggetto a censura e operante utilizzando le risorse dei partecipanti alla rete P2P. La piattaforma supporta elementi tipici di interazione sociale tra sviluppatori, come issue, patch e recensioni di codice. I componenti del progetto sono scritti in Rust e distribuiti sotto le licenze Apache 2.0 e MIT. Le build sono preparate per Linux e macOS. Sono in fase di sviluppo anche un client desktop, un'interfaccia web e un'interfaccia da console.

Radicle consente di sviluppare e distribuire codice senza dipendere da piattaforme e corporation centralizzate, la cui dipendenza comporta ulteriori rischi (singolo punto di fallimento, la società potrebbe chiudere o modificare le condizioni di utilizzo). Per gestire il codice in Radicle si utilizza Git, arricchito da strumenti che definiscono i repository in una rete P2P. Tutti i dati sono principalmente salvati localmente (concetto di local-first) e sono sempre accessibili sul computer dello sviluppatore, indipendentemente dallo stato della connessione di rete.

I partecipanti forniscono accesso al proprio codice e agli artefatti correlati, come patch e discussioni sulla correzione di bug (issues), che sono salvati localmente e replicati sui nodi di altri sviluppatori interessati, connessi a una rete P2P decentralizzata comune. Di conseguenza, si forma un repository Git decentralizzato globale, i cui dati sono replicati e duplicati su diversi sistemi dei partecipanti.

Per determinare i nodi vicini in una rete P2P viene utilizzato il protocollo Gossip, mentre per la replica dei dati tra i nodi si utilizza il protocollo Heartwood, basato su Git. Poiché il protocollo è basato su Git, la piattaforma si integra facilmente con gli strumenti di sviluppo esistenti su Git. L'identificazione dei nodi e la verifica dei repository avviene mediante crittografia basata su chiavi pubbliche, senza l'uso di account. L'autenticazione e l'autorizzazione sono basate su chiavi pubbliche senza enti di certificazione centralizzati. server.

Ogni repository nella rete P2P ha un identificatore unico ed è auto-certificato, cioè tutte le azioni nel repository, come l'aggiunta di commit e la pubblicazione di commenti sulle issue, sono firmate digitalmente dal proprietario, consentendo di verificare l'integrità dei dati su altri nodi senza utilizzare enti di certificazione centralizzati. Per accedere al repository è sufficiente che sia online almeno un nodo contenente una copia replicata di esso.

I nodi nella rete P2P possono iscriversi a determinati repository e ricevere aggiornamenti. È possibile creare repository privati, accessibili solo a nodi specifici. Per gestire e possedere un repository si utilizza il concetto di "delegati" (delegates). Un delegato può essere un singolo utente, un bot o un gruppo, associati a un identificatore speciale. I delegati possono accettare patch nel repository, chiudere issue e assegnare diritti di accesso al repository. Possono essere associati più delegati a ciascun repository.

I repository Radicle vengono memorizzati nei sistemi degli utenti come normali repository git, nei quali sono presenti spazi dei nomi aggiuntivi per memorizzare i dati dei peer e dei fork con cui viene svolto il lavoro corrente. Le discussioni, le patch proposte e i componenti per l'organizzazione delle revisioni sono anch'essi salvati nei repository git come oggetti collaborativi (COB — Collaborative Objects) e replicati tra i peer.

Nel nuovo rilascio:

  • Migliorato il supporto per i repository bare, che non contengono una directory di lavoro con una copia dei file del progetto, ma memorizzano solo la cronologia delle modifiche e i metadati, come rami e tag. È stata aggiunta all comando "rad clone" l'opzione "--bare", che consente di clonare il repository in una rappresentazione senza albero di lavoro. Nella utility "git-remote-rad" è stata migliorata la gestione dei repository bare utilizzando i comandi "git push" e "git fetch" per l'accesso a un server rad esterno.
  • È stata aggiunta l'impostazione «patch.branch» che può essere utilizzata nello strumento git-remote-rad («git-remote-rad -o patch.branch[=<name>]») per aggiungere una patch per la creazione automatica di un ramo nel repository upstream, senza la necessità di utilizzare il comando «rad patch checkout».
  • È stato migliorato l'output del comando «rad patch show», che ora mostra la versione originale della patch, precedentemente visibile solo con l'opzione «—verbose». Tutte le revisioni vengono ora visualizzate in un'unica cronologia senza separazione tra le modifiche dell'autore originale e degli altri partecipanti.
  • È stata aggiunta la possibilità di visualizzare i log in una forma strutturata, attivabile tramite le opzioni «—log-logger structured» e «—log-format json».

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster