Dendrite, un server di comunicazione con l'implementazione del protocollo Matrix

Dendrite è un server di comunicazione quello è essere sviluppato dal team Matrix ed è posizionato come un'implementazione della seconda generazione di componenti server Matrix.

A differenza del server di riferimento Synapse scritto in Python, il codice Dendrite è sviluppato in Go. Entrambe le implementazioni ufficiali sono distribuite sotto la licenza Apache 2.0.

Come parte del progetto Ruma, è in fase di sviluppo una versione separata del server Matrix in linguaggio Rust, distribuita sotto la licenza MIT.

Il nuovo server mira a raggiungere alta efficienza, affidabilità e scalabilità.

A proposito di Dendrite

dendrite è davanti a Synapse in termini di prestazioni, richiede molta meno memoria per funzionare e può essere scalabile tramite il bilanciamento del carico su più nodi.

Architettura dendrite supporta il ridimensionamento orizzontale e si basa sulla separazione dei controller sotto forma di microservizi, dove ogni istanza di un microservizio ha le proprie tabelle nel database.

Il servizio di bilanciamento del carico è responsabile dell'invio di chiamate ai microservizi. I thread (routine di go) vengono utilizzati per parallelizzare le operazioni nel codice, che consentono di utilizzare le risorse di tutti i core della CPU senza dividerle in processi separati.

dendrite supporta il lavoro in due modalità: monolitico e multicomponente (polilite).

  • In modalità monolitica, Tutti i microservizi sono collegati in un file eseguibile, eseguiti in un processo e interagiscono direttamente tra loro.
  • In modalità multicomponente (cluster), i microservizi possono essere lanciati separatamente, anche con diversità su nodi diversi. L'interazione dei componenti in modalità multicomponente viene eseguita utilizzando l'API HTTP interna e la piattaforma Apache Kafka.

Lo sviluppo viene effettuato sulla base delle specifiche del protocollo Matrix e utilizzando due serie di test: i test sytest comuni con Synapse e la nuova suite Complement.

Nell'attuale fase di sviluppo, Dendrite supera con successo il 56% dei test delle API client-server e il 77% dei test API federativi, mentre la copertura effettiva delle funzionalità è stimata al 70% per l'API client-server e al 95% per l'API federativa.

La fase beta indica che Dendrite è pronto per la distribuzione iniziale e il passaggio allo sviluppo con nuove versioni regolari. Tra le versioni, lo schema di archiviazione del database verrà ora aggiornato (a differenza dell'installazione di blocchi dal repository, dopo l'aggiornamento, il contenuto del database non andrà perso).

Le modifiche che interrompono la compatibilità con le versioni precedenti, modificano la struttura del database o richiedono modifiche alla configurazione verranno offerte solo nelle versioni principali.

Per il momento, si consiglia di utilizzare Dendrite in modalità monolitica insieme a PostgreSQL DBMS per creare piccoli server domestici e nodi P2P. L'uso di SQLite non è ancora consigliato a causa di problemi irrisolti con la gestione delle operazioni simultanee.

Funzionalità non ancora implementate in Dendrite essi comprendono: riconoscimenti di messaggi, segnalibri, notifiche push, OpenID, collegamento e-mail, ricerca lato server, directory utenti, elenchi di utenti ignorati, creazione di gruppi e comunità, valutazione della presenza online di un utente, input degli ospiti, interazione con reti di terze parti.

Funzionalità di base per il funzionamento delle chat room (creazione, inviti, regole di autenticazione), mezzi di federazione dei partecipanti nelle stanze, sincronizzazione degli eventi dopo il ritorno da offline, account, profili, indicazione di composizione, download e caricamento di file di modifica (Media API) sono disponibili per l'utilizzo di messaggi, ACL, etichettatura e dispositivo di crittografia end-to-end ed elenchi di chiavi.

Ricordiamo che la piattaforma per l'organizzazione di comunicazioni decentralizzate Matrix utilizza HTTPS + JSON come mezzo di trasporto con la possibilità di utilizzare WebSocket o un protocollo basato su CoAP + Noise. Il sistema è formato come una comunità di server che possono interagire tra loro e sono combinati in una rete decentralizzata comune.

I messaggi vengono replicati su tutti i server a cui sono connessi i partecipanti alla messaggistica. I messaggi vengono propagati tra i server in un modo simile al modo in cui i commit vengono propagati tra i repository Git.

fonte: https://matrix.org


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.