Dendrite, en kommunikationsserver med implementeringen av Matrix-protokollet

Dendrite är en kommunikationsserver det är utvecklat av Matrix-teamet och den är positionerad som en implementering av andra generationen av Matrix-serverkomponenter.

Till skillnad från Synapse-referensservern skriven i Python utvecklas Dendrite-koden i Go. Båda officiella implementeringarna distribueras under Apache 2.0-licensen.

Som en del av Ruma-projektet utvecklas en separat version av Matrix-servern på Rust-språket, som distribueras under MIT-licensen.

Den nya servern syftar till att uppnå hög effektivitet, tillförlitlighet och skalbarhet.

Om Dendrite

dendrit ligger före Synapse när det gäller prestanda, det kräver mycket mindre minne för att fungera och kan skalas genom belastningsbalansering över flera noder.

Dendrit arkitektur stöder horisontell skalning och är beroende av förarseparation i form av mikrotjänster, där varje förekomst av en mikrotjänst har sina egna tabeller i databasen.

Lastbalansen är ansvarig för att skicka samtal till mikrotjänster. Trådar (go-rutiner) används för att parallellisera operationer i koden, vilket gör att resurser för alla CPU-kärnor kan användas utan att dela upp dem i separata processer.

dendrit stöder arbete i två lägen: monolitisk och flerkomponent (polylit).

  • I monolitiskt läge, Alla mikrotjänster är länkade i en körbar fil, körs i en process och interagerar direkt med varandra.
  • I flerkomponentläge (kluster) kan mikrotjänster lanseras separat, även med mångfald på olika noder. Komponentinteraktion i multikomponentläge utförs med hjälp av det interna HTTP API och Apache Kafka-plattformen.

Utvecklingen utförs baserat på specifikationerna för Matrix-protokollet och med hjälp av två uppsättningar tester: de vanligaste sytesttesterna med Synapse och den nya komplementsviten.

I det nuvarande utvecklingsstadiet klarar Dendrite framgångsrikt 56% av testerna av klient-server-API: er och 77% av federationens API-test, medan den faktiska funktionstäckningen uppskattas till 70% för klient-server-API: et och 95% för federation-API: et.

Betastadiet indikerar att Dendrite är redo för första distribution och övergången till utveckling med regelbundna nya utgåvor. Mellan utgåvor kommer databaslagringsschemat nu att uppdateras (till skillnad från att installera bitar från förvaret kommer databasens innehåll efter uppdateringen inte att gå förlorat).

Ändringar som bryter bakåtkompatibilitet, ändrar databasens struktur eller kräver konfigurationsändringar kommer endast att erbjudas i större versioner.

För tillfället det rekommenderas att använda Dendrite i monolitiskt läge tillsammans med PostgreSQL DBMS för att skapa små hemservrar och P2P-noder. Användning av SQLite rekommenderas ännu inte på grund av olösta problem med hantering av samtidiga operationer.

Funktioner som ännu inte har implementerats i Dendrite de omfattar: meddelandebekräftelser, bokmärken, push-meddelanden, OpenID, e-postlänk, sökning på serversidan, användarkatalog, användare ignorerar listor, skapande av grupper och grupper, utvärdering av en användares online-närvaro , gästinmatningar, interaktion med tredjepartsnätverk.

Grundläggande funktionalitet för drift av chattrum (skapande, inbjudningar, autentiseringsregler), medel för sammanslutning av deltagare i rum, synkronisering av händelser efter återkomst från offline, konton, profiler, uppringningsindikering, nedladdning och uppladdning av Redigeringsfiler (Media API) är tillgängliga för användningsmeddelanden, ACL, märkning och end-to-end-krypteringsenhet och nyckellistor.

Minns att plattformen för att organisera decentraliserad kommunikation Matrix använder HTTPS + JSON som en transport med förmågan att använda WebSockets eller ett protokoll baserat på CoAP + Noise. Systemet bildas som en grupp servrar som kan interagera med varandra och kombineras i ett gemensamt decentraliserat nätverk.

Meddelanden replikeras på alla servrar som meddelandedeltagarna är anslutna till. Meddelanden sprids mellan servrar på samma sätt som hur förpliktelser sprids mellan Git-arkiv.

Fuente: https://matrix.org


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.