Dendrite, un servidor de comunicacions amb la implementació de l'protocol Matrix

Dendrite és un servidor de comunicacions que està sent desenvolupat per l'equip de Matrix i es posiciona com una implementació de la segona generació de components de servidor Matrix.

A diferència de servidor de referència Synapse escrit en Python, el codi Dendrite es desenvolupa en Go. Les dues implementacions oficials es distribueixen sota la llicència Apache 2.0.

Com a part de el projecte Ruma, s'està desenvolupant una versió de servidor Matrix en el llenguatge Rust per separat, que es distribueix sota la llicència MIT.

El nou servidor té com a objectiu aconseguir una alta eficiència, fiabilitat i escalabilitat.

sobre Dendrite

Dendrita està per davant de Synapse en termes de rendiment, requereix molta menys memòria per al seu funcionament i pot escalar mitjançant l'equilibri de càrrega en diversos nodes.

L'arquitectura Dendrite admet l'escalat horitzontal i es basa en la separació de controladors en forma de microservicios, on cada instància d'un microservicio té les seves pròpies taules a la base de dades.

El equilibrador de càrrega és responsable d'enviar trucades a microservicios. Per paral·lelitzar les operacions en el codi s'utilitzen threads (rutines go), que permeten utilitzar els recursos de tots els nuclis de CPU sense dividir-los en processos separats.

Dendrita admet el treball en dues maneres: monolític i multicomponent (Polylith).

  • En la manera monolític, tots els microservicios estan vinculats en un arxiu executable, s'executen en un procés i interactuen directament entre si.
  • En la manera multicomponent (Clúster), els microservicios es poden llançar per separat, fins i tot amb diversitat en diferents nodes. La interacció de components en mode multicomponent es porta a terme utilitzant l'API HTTP interna i la plataforma Apache Kafka.

El desenvolupament es porta a terme sobre la base de les especificacions de l'protocol Matrix i utilitzant dos conjunts de proves: les proves sytest comuns amb Synapse i la nova suite Complement.

En l'etapa actual de desenvolupament, Dendrite supera amb èxit el 56% de les proves d'API client-servidor i el 77% de les proves d'API de federació, mentre que la cobertura de funcionalitat real s'estima en un 70% per l'API de client-servidor i un 95% per l'API de federació.

L'etapa beta indica que Dendrite està a punt per a la implementació inicial i la transició a el desenvolupament amb noves versions periòdiques. Entre llançaments, l'esquema d'emmagatzematge de la base de dades ara s'actualitzarà (a diferència de la instal·lació de fragments de l'repositori, després de l'actualització, el contingut de la base de dades no es perdrà).

Els canvis que trenquen la compatibilitat amb versions anteriors, canvien l'estructura de la base de dades o requereixen canvis de configuració només s'oferiran a les versions principals.

De moment, es recomana utilitzar Dendrite en mode monolític juntament amb PostgreSQL DBMS per crear petits servidors domèstics i nodes P2P. Encara no es recomana l'ús de SQLite causa de problemes no resolts amb el maneig d'operacions concurrents.

Les característiques encara no implementades a Dendrite inclouen: Reconeixements de missatges, marques de lectura, notificacions push, OpenID, enllaç de correu electrònic, recerca de la banda de servidor, directori d'usuaris, llistes de ignorats d'usuaris, creació de grups i comunitats, avaluació de la presència en línia d'un usuari , convidat entrades, interacció amb xarxes de tercers.

Funcionalitat bàsica per al funcionament de sales de xat (creació, invitacions, regles d'autenticació), mitjans de federació de participants en sales, sincronització d'esdeveniments després de tornar de fora de línia, comptes, perfils, indicació de marcatge, descàrrega i càrrega de arxius (Media API), edició estan disponibles per al seu ús missatges, ACL, etiquetatge i llistes de claus i dispositius de xifrat d'extrem a extrem.

Recordem que la plataforma per organitzar comunicacions descentralitzades Matrix utilitza HTTPS + JSON com transport amb la capacitat d'utilitzar WebSockets o un protocol basat en COAP + Noise. El sistema està format com una comunitat de servidors que poden interactuar entre si i es combinen en una xarxa descentralitzada comú.

Els missatges es repliquen en tots els servidors als quals estan connectats els participants de la missatgeria. Els missatges es propaguen entre servidors d'una manera similar a com es propaguen les confirmacions entre els repositoris de Git.

font: https://matrix.org


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.