Dendrite, komunikačný server s implementáciou protokolu Matrix

Dendrite je komunikačný server to je bytie vyvinutý tímom Matrix a je umiestnený ako implementácia druhej generácie serverových komponentov Matrix.

Na rozdiel od referenčného servera Synapse napísaného v Pythone, je Dendrite kód vyvinutý v Go. Obe oficiálne implementácie sú distribuované pod licenciou Apache 2.0.

V rámci projektu Ruma sa vyvíja samostatná verzia servera Matrix v jazyku Rust, ktorý je distribuovaný pod licenciou MIT.

Nový server si kladie za cieľ dosiahnuť vysokú účinnosť, spoľahlivosť a škálovateľnosť.

O Dendriteovi

Dendrite je pred Synapse z hľadiska výkonu, na svoju činnosť vyžaduje oveľa menej pamäte a je možné ju škálovať pomocou vyrovnávania zaťaženia medzi viacerými uzlami.

Dendritová architektúra podporuje horizontálne škálovanie a je založené na oddelení radičov vo forme mikroslužieb, kde každá inštancia mikroslužby má svoje vlastné tabuľky v databáze.

Vyrovnávač zaťaženia je zodpovedný za odosielanie hovorov do mikroslužieb. Vlákna (rutiny go) sa používajú na paralelizáciu operácií v kóde, čo umožňuje použitie prostriedkov všetkých jadier CPU bez ich rozdelenia na samostatné procesy.

Dendrite podporuje prácu v dvoch režimoch: monolitický a viaczložkový (polylit).

  • V monolitickom režime Všetky mikroslužby sú prepojené vo spustiteľnom súbore, prebiehajú v procese a navzájom priamo komunikujú.
  • V multikomponentnom režime (klaster), mikroslužby je možné spustiť samostatne, a to aj s rozmanitosťou v rôznych uzloch. Interakcia komponentov vo viaczložkovom režime sa vykonáva pomocou interného HTTP API a platformy Apache Kafka.

Vývoj sa realizuje na základe špecifikácií protokolu Matrix a pomocou dvoch sád testov: bežných testov so sytestom so Synapse a novej sady doplnkov.

V súčasnej fáze vývoja Dendrite úspešne absolvuje 56% testov rozhraní API typu klient-server a 77% testov federačného rozhrania API, zatiaľ čo skutočné funkčné pokrytie sa odhaduje na 70% pre rozhranie API typu klient-server a 95% pre rozhranie API federácie.

Fáza beta naznačuje, že Dendrite je pripravený na počiatočné nasadenie a prechod na vývoj s pravidelnými novými vydaniami. Medzi vydaniami sa teraz aktualizuje schéma úložiska databázy (na rozdiel od inštalácie blokov z úložiska, po aktualizácii sa obsah databázy nestratí).

Zmeny, ktoré narúšajú spätnú kompatibilitu, menia štruktúru databázy alebo vyžadujú zmeny v konfigurácii, budú ponúkané iba v hlavných vydaniach.

Pre túto chvíľu, odporúča sa používať Dendrite v monolitickom režime spolu s PostgreSQL DBMS vytvárať malé domáce servery a P2P uzly. Používanie SQLite sa zatiaľ neodporúča z dôvodu nevyriešených problémov so spracovaním súbežných operácií.

Funkcie ešte nie sú implementované v Dendrite patrí medzi ne: potvrdenia správ, záložky, upozornenia push, OpenID, e-mailový odkaz, vyhľadávanie na strane servera, adresár používateľov, zoznamy ignorovaných používateľov, vytváranie skupín a komunít, hodnotenie online prítomnosti používateľa , vstupy hostí, interakcia so sieťami tretích strán.

Základné funkcie fungovania chatovacích miestností (tvorba, pozvánky, pravidlá autentifikácie), prostriedky federácie účastníkov v miestnostiach, synchronizácia udalostí po návrate z režimu offline, účty, profily, indikácia vytáčania, sťahovanie a nahrávanie K dispozícii sú súbory na úpravu (Media API) na použitie správ, zoznamov ACL, označovania a end-to-end šifrovacieho zariadenia a zoznamov kľúčov.

Pamätajte na to platforma na organizáciu decentralizovanej komunikácie Matrix používa HTTPS + JSON ako transport so schopnosťou používať WebSockets alebo protokol založený na CoAP + Noise. Systém je tvorený ako komunita serverov, ktoré môžu navzájom interagovať a sú kombinované v spoločnej decentralizovanej sieti.

Správy sa replikujú na všetkých serveroch ku ktorým sú účastníci správy pripojení. Správy sa medzi servermi šíria podobným spôsobom, ako sa šíria potvrdenia medzi úložiskami Git.

Fuente: https://matrix.org


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.