È stata pubblicata la piattaforma decentralizzata di sviluppo collaborativo Radicle 1.7

È stato rilasciato Radicle 1.7, una piattaforma P2P progettata per creare un servizio decentralizzato di sviluppo e archiviazione del codice, simile a GitHub e GitLab, ma non legata a server specifici, non soggetta a censura e funzionante grazie alle risorse dei partecipanti alla rete P2P. La piattaforma supporta elementi tipici di interazione sociale tra sviluppatori, come issue, patch e recensioni del codice. I progressi del progetto sono scritti in Rust e distribuiti sotto le licenze Apache 2.0 e MIT. Sono disponibili versioni per Linux e macOS. Inoltre, sono in sviluppo 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:

  • È stata rielaborata l'implementazione dei collegamenti firmati (sigrefs — Signed References), introducendo una protezione contro il riutilizzo delle firme. La vecchia struttura del repository permetteva di sostituire il codice con una vecchia versione, riutilizzando la vecchia firma valida. Per bloccare questo problema, la nuova implementazione ha aggiunto un puntatore alla registrazione precedente, coperta dalla firma attuale, creando una catena continua di modifiche la cui integrità può essere tracciata rispetto alla radice.
  • Ampliate le funzionalità di blocco dei nodi, che ora vengono bloccati a livello di gestione delle connessioni. Se prima si bloccava solo il ricevimento dei dati, senza limitare la connessione al nodo, ora il blocco viene applicato anche nella fase di stabilimento della connessione con il nodo bloccato e durante la ricezione della connessione da un nodo bloccato.
  • È consentito utilizzare collegamenti a qualsiasi oggetto esterno nel Git, ad eccezione dei rami temporanei. In precedenza, erano consentiti solo collegamenti a rami esterni, tag, metadati Radicle, note e oggetti per la collaborazione.
  • Migliorata l'informatività dei messaggi di errore che si verificano quando si tentano operazioni per cui l'utente non ha diritti sufficienti.
  • Aumentata l'efficienza delle operazioni di input/output. Gli sviluppatori hanno scoperto che nei nodi a lungo attivi, la combinazione delle impostazioni «journal_mode = WAL» e «synchronous = FULL» nel database SQLite, utilizzato per memorizzare lo stato locale, porta a un elevato volume di operazioni di input/output. Per ridurre il carico, per impostazione predefinita il parametro «synchronous» è ora impostato su «NORMAL», e nel file di configurazione di Radicle sono state aggiunte impostazioni per modificare il valore di questi parametri da parte dell'utente.
  • Risolta una vulnerabilità, le cui informazioni saranno divulgate il 23 marzo. Attualmente si riporta solo che il team di sviluppo ha scansionato tutti i repository pubblicamente accessibili di Radicle e non ha trovato tracce di sfruttamento di questo problema.

Fonte: opennet.ru

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