Dendrite, un server de comunicații cu implementarea protocolului Matrix

Dendrite este un server de comunicații asta este a fi dezvoltat de echipa Matrix și este poziționat ca o implementare a celei de-a doua generații de componente de server Matrix.

Spre deosebire de serverul de referință Synapse scris în Python, codul Dendrite este dezvoltat în Go. Ambele implementări oficiale sunt distribuite sub licența Apache 2.0.

Ca parte a proiectului Ruma, o versiune a serverului Matrix este dezvoltată separat în limbajul Rust, care este distribuit sub licența MIT.

Noul server își propune să atingă o eficiență ridicată, fiabilitate și scalabilitate.

Despre Dendrit

dendrite este înaintea Synapse în ceea ce privește performanța, necesită mult mai puțină memorie pentru a funcționa și se poate scala prin echilibrarea sarcinii pe mai multe noduri.

Arhitectura dendrita acceptă scalarea orizontală și se bazează pe separarea controlerelor sub formă de microservicii, unde fiecare instanță a unui microserviciu are propriile tabele în baza de date.

Echilibratorul de încărcare este responsabil pentru trimiterea apelurilor către microservicii. Pentru a paraleliza operațiunile din cod, se folosesc fire de execuție (rutine go), care permit utilizarea resurselor tuturor nucleelor ​​CPU fără a le împărți în procese separate.

dendrite suportă lucrul în două moduri: monolitic și multicomponent (polilit).

  • În modul monolitic, toate microserviciile sunt legate într-un fișier executabil, rulează într-un proces și interacționează direct între ele.
  • În modul cu mai multe componente (cluster), microservicii pot fi lansate separat, chiar și cu diversitate pe diferite noduri. Interacțiunea componentelor în modul multi-component se realizează folosind API-ul HTTP intern și platforma Apache Kafka.

Dezvoltarea se realizează pe baza specificațiilor protocolului Matrix și folosind două suite de testare: testele comune sytest cu Synapse și noua suită Complement.

În stadiul actual de dezvoltare, Dendrita trece cu succes 56% din teste de API-ul client-server și 77% din testarea API-ului de federație, în timp ce acoperirea reală a funcționalității este estimată la 70% pentru API-ul client-server și 95% pentru API-ul de federație.

Etapa beta indică faptul că Dendrita este gata pentru implementarea inițială și trecerea la dezvoltare cu versiuni noi periodice. Între versiuni, schema de stocare a bazei de date va fi acum actualizată (spre deosebire de instalarea bucăților de depozit, după actualizare conținutul bazei de date nu se va pierde).

Modificările care încalcă compatibilitatea anterioară, modifică structura bazei de date sau necesită modificări de configurare vor fi oferite numai în versiunile majore.

Pentru moment, Este recomandat să utilizați Dendrite în modul monolitic împreună cu PostgreSQL DBMS pentru a crea mici servere de acasă și noduri P2P. Utilizarea SQLite nu este încă recomandată din cauza problemelor nerezolvate cu gestionarea operațiunilor concurente.

Caracteristici încă neimplementate în Dendrită acestea includ- Confirmări de mesaje, semne de citire, notificări push, OpenID, link de e-mail, căutare pe server, director de utilizatori, liste de ignorare a utilizatorilor, crearea de grupuri și comunități, evaluarea prezenței online a unui utilizator, intrarea invitaților, interacțiunea cu rețele terțe.

Funcționalități de bază pentru funcționarea camerelor de chat (creare, invitații, reguli de autentificare), mijloace de federare a participanților în săli, sincronizare evenimente după revenirea din offline, conturi, profiluri, indicație de apelare, descărcare și încărcare fișiere (Media API), editare mesajele, ACL-urile, etichetarea și listele de chei și dispozitivele de criptare end-to-end sunt disponibile pentru utilizare.

Amintiți-vă că platforma de organizare a comunicațiilor descentralizate Matrix folosește HTTPS + JSON ca un transport cu capacitatea de a utiliza WebSockets sau un protocol bazat pe CoAP + Noise. Sistemul este format ca o comunitate de servere care pot interacționa între ele și sunt combinate într-o rețea comună descentralizată.

Mesajele sunt reproduse pe toate serverele la care sunt conectați participanții la mesagerie. Mesajele sunt propagate între servere într-un mod similar cu modul în care sunt propagate commit-urile între depozitele Git.

Fuente: https://matrix.org


Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.