Dendrite, een communicatieserver met de implementatie van het Matrix-protocol

Dendrite is een communicatieserver dat is zijn ontwikkeld door het Matrix-team en het is gepositioneerd als een implementatie van de tweede generatie Matrix-servercomponenten.

In tegenstelling tot de Synapse-referentieserver die in Python is geschreven, wordt de Dendrite-code ontwikkeld in Go. Beide officiële implementaties worden gedistribueerd onder de Apache 2.0-licentie.

Als onderdeel van het Ruma-project wordt een aparte versie van de Matrix-server ontwikkeld in de Rust-taal, die wordt verspreid onder de MIT-licentie.

De nieuwe server streeft naar hoge efficiëntie, betrouwbaarheid en schaalbaarheid.

Over Dendrite

dendrite loopt voor op Synapse in termen van prestaties, het vereist veel minder geheugen om te werken en kan worden geschaald door taakverdeling over meerdere knooppunten.

Dendrite-architectuur ondersteunt horizontale schaalvergroting en is gebaseerd op de scheiding van controllers in de vorm van microservices, waarbij elk exemplaar van een microservice zijn eigen tabellen in de database heeft.

De load balancer is verantwoordelijk voor het verzenden van oproepen naar microservices. Threads (go-routines) worden gebruikt om bewerkingen in de code te parallelliseren, waardoor de bronnen van alle CPU-kernen kunnen worden gebruikt zonder ze in afzonderlijke processen te verdelen.

dendrite ondersteunt werk in twee modi: monolithisch en multi-component (polyliet).

  • In monolithische modus, Alle microservices zijn gekoppeld in een uitvoerbaar bestand, draaien in een proces en werken rechtstreeks met elkaar samen.
  • In meercomponentenmodus (cluster) kunnen microservices afzonderlijk worden gelanceerd, zelfs met diversiteit op verschillende knooppunten. Componentinteractie in multicomponent-modus wordt uitgevoerd met behulp van de interne HTTP-API en het Apache Kafka-platform.

De ontwikkeling wordt uitgevoerd op basis van de specificaties van het Matrix-protocol en met behulp van twee sets tests: de algemene sytest-tests met Synapse en de nieuwe Complement-suite.

In de huidige ontwikkelingsfase slaagt Dendrite met succes voor 56% van de tests van client-server-API's en 77% van de federatie-API-tests, terwijl de werkelijke functionaliteitsdekking wordt geschat op 70% voor de client-server-API en 95% voor de federatie-API.

Beta-fase geeft aan dat Dendrite klaar is voor de eerste implementatie en de overgang naar ontwikkeling met regelmatig nieuwe releases. Tussen releases wordt het databaseopslagschema nu bijgewerkt (in tegenstelling tot het installeren van chunks uit de repository, zal na de update de inhoud van de database niet verloren gaan).

Wijzigingen die de compatibiliteit met eerdere versies verbreken, de databasestructuur wijzigen of configuratiewijzigingen vereisen, worden alleen aangeboden in grote releases.

Voorlopig het wordt aanbevolen om Dendrite in monolithische modus te gebruiken samen met PostgreSQL DBMS om kleine thuisservers en P2P-knooppunten te maken. Het gebruik van SQLite wordt nog niet aanbevolen vanwege onopgeloste problemen met het afhandelen van gelijktijdige bewerkingen.

Functies die nog niet zijn geïmplementeerd in Dendrite zij omvatten: berichtbevestigingen, bladwijzers, pushmeldingen, OpenID, e-maillink, server-side zoeken, gebruikerslijst, negeerlijsten voor gebruikers, aanmaken van groepen en communities, evaluatie van de online aanwezigheid van een gebruiker, gastinvoer, interactie met netwerken van derden.

Basisfunctionaliteit voor de werking van chatrooms (creatie, uitnodigingen, authenticatieregels), middelen voor federatie van deelnemers in kamers, synchronisatie van evenementen na terugkeer van offline, accounts, profielen, kiesindicatie, downloaden en uploaden van bewerkingsbestanden (Media API) zijn beschikbaar voor gebruik berichten, ACL's, labeling en end-to-end versleutelingsapparaat en sleutellijsten.

Bedenk dat Het platform voor het organiseren van gedecentraliseerde communicatie Matrix gebruikt HTTPS + JSON als transport met de mogelijkheid om WebSockets te gebruiken of een protocol gebaseerd op CoAP + Noise. Het systeem wordt gevormd als een gemeenschap van servers die met elkaar kunnen communiceren en die zijn gecombineerd in een gemeenschappelijk gedecentraliseerd netwerk.

Berichten worden op alle servers gerepliceerd waarmee de berichtende deelnemers zijn verbonden. Berichten worden op dezelfde manier tussen servers verspreid als hoe commits tussen Git-repositories worden verspreid.

bron: https://matrix.org


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.