Udgivelse af Dendrite 0.1.0, en kommunikationsserver med implementering af Matrix-protokollen

Publiceret Udgivelsen af Matrix-serveren Dendrite 0.1.0, der markerede overgangen til beta-testfase. Dendrite udvikles af det primære udviklerteam af den decentraliserede kommunikationsplatform Matrix og positionerer sig som implementeringen af anden generation af Matrix-serverkomponenter. I modsætning til reference-serveren Synapse, der er skrevet i Python, er Dendrite udvikles skrevet i Go. Begge officielle implementeringer distribueres under Apache 2.0-licensen. I forbindelse med projektet (Rust) og udvikles der separat en version af Matrix-serveren i Rust, som distribueres under MIT-licensen.

Den nye server har til formål at opnå høj effektivitet, pålidelighed og skalerbarhed. Dendrite overgår Synapse i ydeevne, kræver væsentligt mindre hukommelse til sit arbejde og kan skaleres gennem load balancing på flere noder. Arkitekturen af Dendrite understøtter horisontal skalerbarhed og er baseret på opdeling af behandlere i form af mikrotjenester, hvor hver instans af mikrotjenesten har sine egne tabeller i databasen. Lastbalanceringssystemet håndterer anmodningerne til mikrotjenesterne. For at parallelisere operationer i koden anvendes tråde (go routines), der muliggør udnyttelse af ressourcerne fra alle CPU-kerner uden at opdele i separate processer.

Udgivelse af Dendrite 0.1.0, en kommunikationsserver med implementering af Matrix-protokollen

Dendrite understøtter drift i to tilstande - monolitisk og polykomponent (polylith). I den monolitiske tilstand er alle mikrotjenester samlet i én eksekverbar fil, de kører i én proces og interagerer direkte med hinanden. I den polykomponent (cluster) tilstand kan mikrotjenesterne køre hver for sig, endda fordelt over forskellige noder. Interaktionen mellem komponenterne i
den polykomponent tilstand sker ved hjælp af et internt HTTP-API og platformen. Apache Kafka.

Udviklingen sker på baggrund af specifikationerne for Matrix-protokollen og ved brug af to testsamlinger - de generelle tests med Synapse sytest og den nye samling Complement. På det nuværende udviklingstrin klarer Dendrite med succes 56% af tests for Client-Server API og 77% af tests for Federation API, mens den faktiske dækning af funktionalitet vurderes til 70% for Client-Server API og 95% for Federation API.

Beta-teststadiet vidner om Dendrites klarhed til indledende implementering og overgangen til udvikling med periodisk udgivelse af nye versioner. Mellem udgivelserne vil opdatering af databaseringsschemat i DB blive sikret (i modsætning til installationssnit fra repoet, vil indholdet i databasen ikke gå tabt efter opdatering). Ændringer, der bryder bagudkompatibilitet, ændrer struktur i DB eller kræver konfigurationsændringer, vil kun blive foreslået i betydelige udgivelser. Dendrite anbefales i øjeblikket at blive brugt i monolitisk tilstand sammen med PostgreSQL DB til at skabe små primære servere (homeserver) og P2P-noder. Brug af SQLite anbefales endnu ikke på grund af uløste problemer med håndtering af samtidige operationer.

Af de endnu ikke implementerede funktioner i Dendrite kan nævnes bekræftelse af modtagelse af beskeder, læsemærker, push-notifikationer, OpenID, e-mail-binding, server-side søgning, brugerkatalog, brugerbloklister, oprettelse af grupper og fællesskaber, vurdering af brugerens online-tilstedeværelse, gæste-login, interaktion med tredjepartsnetværk.

Grundlæggende funktionalitet til chatrum (oprettelse, invitationer, autentificeringsregler) er tilgængelig, samt værktøjer til at forene deltagere i rum, synkronisering af begivenheder efter tilbagevenden fra offline, konti, profiler, indikatorer ved indtastning, upload og deling af filer (Media API), redigering af beskeder, ACL, tagbinding og arbejde med enheds- og krypteringsnøglelister.

Husk, at platformen til organisering af decentrale kommunikationer Matrix anvender HTTPS+JSON som transport, med mulighed for at bruge WebSockets eller en protokol baseret på CoAP+Noise. Systemet dannes som et fællesskab af servere, der kan interagere med hinanden og sammenkædes i et samlet decentraliseret netværk. Beskeder replikeres på alle servere, som deltagerne i beskedudvekslingen er tilsluttet. Beskeder distribueres på serverne på samme måde som commits spredes mellem Git-repositories. I tilfælde af en midlertidig serverafbrydelse går beskederne ikke tabt, men sendes til brugerne, når serverens drift genoptages. Forskellige varianter af brugeridentifikatorer understøttes, herunder email, mobilnummer, Facebook-konto osv.

The network lacks a single point of failure or control over messages. All servers involved in the discussion are equal to each other.
Any user can launch their own server and connect it to the common network. It is possible to create gateways for interacting Matrix with systems based on other protocols, for example, forberedes tjenester til tovejs beskedudveksling i IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp og Slack. Udover øjeblikkelig tekstbeskedudveksling og organisering af chats kan systemet bruges til filoverførsel, sending af notifikationer,
organisering af telekonferencer, gennemførelse af tale- og videosamtaler. Der understøttes også avancerede funktioner såsom meddelelse om indtastning af tekst, vurdering af brugerens tilstedeværelse online, bekræftelse af læsning, push-notifikationer, server-side søgning, synkronisering af historik og klientstatus.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster