Rilascio di Dendrite 0.1.0, un server di comunicazione con implementazione del protocollo Matrix

Pubblicato rilascio del server Matrix Dendrite 0.1.0, che segna il passaggio dello sviluppo alla fase di beta testing. Dendrite è sviluppato dal team principale di sviluppatori della piattaforma di comunicazione decentralizzata Matrix e si propone come un'implementazione di seconda generazione dei componenti server di Matrix. A differenza del server di riferimento Synapse, scritto in Python, il codice di Dendrite si sviluppa è scritto in Go. Entrambe le implementazioni ufficiali sono distribuite sotto la licenza Apache 2.0. All'interno del progetto Ruma si sviluppa separatamente una versione del server Matrix in Rust, che distribuito sotto licenza MIT.

Il nuovo server è progettato per garantire elevata efficienza, affidabilità e scalabilità. Dendrite supera Synapse in termini di prestazioni, richiedendo significativamente meno memoria e può scalare tramite il bilanciamento del carico su più nodi. L'architettura di Dendrite supporta la scalabilità orizzontale e si basa sulla divisione dei gestori in microservizi, dove ogni istanza di microservizio ha le proprie tabelle nel database. La gestione delle richieste ai microservizi è gestita da un bilanciatore di carico. Per parallelizzare le operazioni nel codice vengono utilizzati i goroutines, che consentono di sfruttare le risorse di tutti i core della CPU senza dover creare processi separati.

Rilascio di Dendrite 0.1.0, un server di comunicazione con implementazione del protocollo Matrix

Dendrite supporta il funzionamento in due modalità: monolitica e multi-componente (polylith). In modalità monolitica, tutti i microservizi sono composti in un unico file eseguibile, vengono eseguiti in un solo processo e interagiscono direttamente tra loro. In modalità multi-componente (cluster), i microservizi possono essere avviati separatamente, anche distribuiti su nodi diversi. L'interazione tra i componenti in
la modalità multi-componente è attuata tramite un API HTTP interno e una piattaforma Apache Kafka.

Lo sviluppo si basa sulle specifiche del protocollo Matrix e utilizza due suite di test - quelle condivise con i test di Synapse sytest e un nuovo set Complement. Attualmente, Dendrite supera con successo il 56% dei test Client-Server API e il 77% dei test Federation API, con una copertura funzionale effettiva stimata del 70% per Client-Server API e del 95% per Federation API.

La fase di beta testing indica che Dendrite è pronto per un'implementazione iniziale e per passare allo sviluppo con rilasci periodici. Tra i rilasci sarà ora garantito l'aggiornamento dello schema di memorizzazione dei dati nel database (a differenza dell'installazione di snapshot dal repository, dopo l'aggiornamento il contenuto del database non verrà perso). Le modifiche che violano la retrocompatibilità, che modificano la struttura del database o che richiedono modifiche alla configurazione, verranno proposte solo in versioni significative. Attualmente, Dendrite è consigliato per l'uso in modalità monolitica insieme al database PostgreSQL per creare piccoli server di origine (homeserver) e nodi P2P. L'uso di SQLite non è ancora raccomandato a causa di problemi irrisolti nella gestione delle operazioni simultanee.

Tra le funzionalità ancora non implementate in Dendrite si segnalano conferme di ricezione dei messaggi, segnalazioni di lettura, notifiche push, OpenID, collegamento a email, ricerca lato server, catalogo utenti, liste di utenti ignorati, creazione di gruppi e comunità, valutazione della presenza dell'utente online, accessi ospiti, interazione con reti esterne.

Sono disponibili le funzionalità di base per il funzionamento delle chat room (creazione, inviti, regole di autenticazione), strumenti di federazione dei partecipanti nelle stanze, sincronizzazione degli eventi dopo il ritorno da offline, account, profili, indicazione di digitazione, caricamento e condivisione di file (Media API), modifica dei messaggi, ACL, collegamento di tag e gestione delle liste di dispositivi e chiavi per la crittografia end-to-end.

Ricordiamo che la piattaforma per l'organizzazione di comunicazioni decentralizzate Matrix utilizza come trasporto HTTPS+JSON con la possibilità di utilizzare WebSockets o un protocollo basato su CoAP+Noise. Il sistema è creato come un consorzio di server che possono interagire tra loro, formando una rete decentralizzata. I messaggi vengono replicati su tutti i server a cui si connettono i partecipanti alla messaggistica. I messaggi si distribuiscono tra i server in modo simile a come i commit si propagano tra i repository Git. In caso di disconnessione temporanea di un server, i messaggi non andranno persi, ma saranno recapitati agli utenti una volta che il server tornerà online. Sono supportate varie opzioni per gli identificatori utente, inclusi email, numeri di telefono, account Facebook, ecc.

Nella rete non esiste un singolo punto di fallimento o di controllo sui messaggi. Tutti i server coinvolti nella discussione sono considerati uguali.
Qualsiasi utente può avviare il proprio server e collegarlo alla rete comune. È possibile creare gateway per interagire con Matrix e sistemi basati su altri protocolli, ad esempio, preparati servizi per la messaggistica bidirezionale su IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp e Slack. Oltre allo scambio istantaneo di messaggi di testo e all'organizzazione di chat, il sistema può essere utilizzato per la trasmissione di file, l'invio di notifiche,
l'organizzazione di teleconferenze e la realizzazione di chiamate vocali e video. Sono supportate anche funzionalità avanzate come le notifiche di digitazione, la valutazione della presenza online dell'utente, la conferma di lettura, le notifiche push, la ricerca lato server, la sincronizzazione della cronologia e lo stato dei client.

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