Primo episodio del client Peer-to-Peer per la rete federativa Matrix

È stato rilasciato un client sperimentale Riot P2P.


Riot — inizialmente un client per una rete federativa Matrix. La modifica P2P aggiunge al client l'implementazione del server e la federazione senza l'uso di DNS centralizzato attraverso l'integrazione libp2p, che viene utilizzata anche in IPFS. Questa è la prima versione del client che mantiene la sessione dopo il ripristino della pagina, ma nelle prossime versioni principali (ad esempio, 0.2.0), i dati verranno comunque eliminati. Pertanto, non è consigliabile utilizzare il client per scopi importanti.

Il client implementa la federazione, la creazione di stanze e la visualizzazione di un catalogo globale (senza server!) di stanze.

Tuttavia, la rete principale di Matrix, che utilizza DNS, e la rete Matrix su libp2p attualmente non possono federarsi e interagire tra loro.

Per utilizzare il client è sufficiente premere il pulsante di accesso, dopo di che riceverai un ID generato nella rete. L'esportazione dei dati non è ancora supportata.

Poiché si tratta di una presentazione instabile di un possibile concetto, potresti incontrare delle difficoltà:

  • Non potrai accedere al tuo account o interagire con altri clienti se il server, eseguito come Service Worker, verrà terminato dal browser al termine del timeout. Questo problema è stato segnalato su Firefox, che lo fa dopo 30 secondi di inattività].
  • A livello di rete, libp2p ha delle limitazioni sul numero di azioni eseguibili nel tempo, il che può causare problemi di federazione.

L'inizio dei lavori sulla versione P2P di Matrix è motivato dal desiderio degli sviluppatori di dare maggiore libertà ai propri utenti. L'assenza di un server centrale facilita la comunicazione all'interno di reti locali e mesh, e in generale, in situazioni in cui l'accesso alla rete esterna è limitato o assente. Ciò influisce positivamente sulla privacy, grazie alla minimizzazione dei metadati trasmessi, che in questo scenario sono conservati solo dai partecipanti alla conversazione. In definitiva, questo porta a riflettere sulla rifattorizzazione delle attuali concezioni di Matrix per ottenere maggiore portabilità e sicurezza.

L'implementazione dell'API server avviene tramite la compilazione del server Dendrite nel codice WebAssembly, che viene eseguito contemporaneamente al client sotto forma di Service Worker, che utilizza IndexedDB e SQLite per memorizzare i dati localmente, nel caso della versione web e dell'app Electron.
Dendrite è un "server di seconda generazione" in fase di sviluppo per Matrix, realizzato in Go, progettato per una completa modularità, ma utilizzabile anche in forma monolitica. In forma modulare, per l'interazione tra microservizi, viene utilizzato Apache Kafka, mentre in forma monolitica — Naffka. Puoi trovare la documentazione per la costruzione della versione P2P di Dendrite su GitHub.

Dendrite è stato originariamente concepito come server generico, destinato a essere un sostituto diretto Synapse, scritto in Python, che presenta problemi di prestazioni e scalabilità. Tuttavia, a causa della necessità di supporto e di un importante rifattorizzazione di Synapse, lo sviluppo di Dendrite è stato messo in secondo piano. Alla fine, lo sviluppo è ripreso, ma si è deciso di non far evolvere la già esistente base di codice in un contesto generico, bensì di concentrarsi sull'adattamento per l'integrazione in dispositivi client portatili e a bassa potenza, come browser e telefoni.

L'attuale implementazione di Dendrite è ancora nelle fasi iniziali di sviluppo, ma è già sufficiente per una semplice federazione:

API Client-Server: 34% (227/672 test) — in aumento rispetto al 33%
API di Federazione: 34% (35/103 test) — in aumento rispetto al 27%

Questa non è la prima tentativo di implementazione P2P. In passato c'era stata un'iniziativa per creare un proxy CoAP nella rete Yggdrasil per Synapse.


Gli sviluppatori del protocollo Matrix non si concentrano solo sulla federazione e stanno sperimentando strumenti per una ulteriore decentralizzazione. Ad esempio, è stato condotto un esperimento per ridurre i costi a livello di trasporto. Si sta sviluppando un demone Pantalaimon — un proxy a cui può connettersi qualsiasi client senza supporto per la crittografia e interagire con messaggi crittografati. Tutte le iniziative intraprese mirano a liberare il login dal server, abolendo l'MXID e interagendo con la rete tramite una chiave pubblica, che è già parzialmente implementata in Riot P2P.


Maggiore informazioni sui concetti delle implementazioni pianificate possono essere trovate nella presentazione FOSDEM 2020 su YouTube e in un recente post sul blog.

Esiste anche una variante di Riot P2P per Android, basata sul codice del vecchio applicativo. In futuro, è previsto un aggiornamento per riportarlo all'attuale RiotX.

Inoltre,

Fonte: linux.org.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