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

offentliggjort Matrix server udgivelse Dendrit 0.1.0, som markerede overgangen af ​​udvikling til beta-teststadiet. Dendrite udvikles af kerneteamet af udviklere af den decentraliserede kommunikationsplatform Matrix og er positioneret som implementeringen af ​​anden generation af Matrix-serverkomponenter. I modsætning til referenceserveren Synapse, skrevet i Python, kode Dendrite udvikler sig på Go-sprog. Begge officielle implementeringer er licenseret under Apache 2.0-licensen. I projektets grænser Ruma En version af Matrix-serveren i Rust-sproget udvikles separat, hvilket distribueret af under MIT-licensen.

Den nye server har til formål at opnå høj effektivitet, pålidelighed og skalerbarhed. Dendrite udkonkurrerer Synapse, kræver betydeligt mindre hukommelse for at fungere og kan skaleres gennem belastningsbalancering på tværs af flere noder. Dendrite-arkitekturen understøtter horisontal skalering og er baseret på adskillelse af handlere i form af mikroservices, hvor hver mikroserviceinstans har sine egne tabeller i databasen. Loadbalanceren sender opkald til mikrotjenester. For at parallelisere operationer i koden, bruges tråde (go-rutiner), som giver dig mulighed for at bruge ressourcerne i alle CPU-kerner uden at opdele dem i separate processer.

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

Dendrit understøtter to tilstande: monolitisk og polylit. I monolitisk tilstand er alle mikrotjenester pakket i en enkelt eksekverbar fil, eksekveret i en enkelt proces og interagerer direkte med hinanden. I multi-komponent (cluster) tilstand kan mikrotjenester lanceres separat, herunder fordelt på tværs af forskellige noder. Interaktion mellem komponenter i
multi-komponent tilstand udføres ved hjælp af den interne HTTP API og platform Apache Kafka.

Udviklingen udføres baseret på Matrix-protokolspecifikationerne og ved hjælp af to testsuiter - tests, der er fælles for Synapse system og et nyt sæt komplement. På det nuværende udviklingstrin består Dendrite 56 % af Client-Server API-testene og 77 % af Federation API-testene, mens den faktiske funktionalitetsdækning anslås til 70 % for Client-Server API og 95 % for Federation API.

Beta-teststadiet indikerer, at Dendrite er klar til indledende implementering og overgang til udvikling med nye udgivelser med jævne mellemrum. Mellem udgivelser vil datalagringsskemaet i databasen nu blive opdateret (i modsætning til installation af udsnit fra repository, vil indholdet af databasen ikke gå tabt efter opdateringen). Ændringer, der bryder bagudkompatibiliteten, ændrer databasestrukturen eller kræver konfigurationsændringer, tilbydes kun i større udgivelser. Dendrite anbefales i øjeblikket at blive brugt i monolitisk tilstand sammen med PostgreSQL DBMS til at skabe små hjemmeservere og P2P-noder. Brugen af ​​SQLite anbefales endnu ikke på grund af uløste problemer med håndtering af samtidige operationer.

Funktioner, der endnu ikke er implementeret i Dendrite, omfatter bekræftelse af meddelelseskvittering, læsemærker, push-beskeder, OpenID, e-mailbinding, søgning på serversiden, brugerindeks, ignoreringslister, oprettelse af grupper og fællesskaber, vurdering af brugers online tilstedeværelse, gæsteinput, interaktion med tredjeparts netværk.

Tilgængelig til brug er grundlæggende funktionalitet for chatrum (oprettelse, invitationer, autentificeringsregler), midler til sammenslutning af deltagere i rum, synkronisering af begivenheder efter hjemkomst fra offline, konti, profiler, opkaldsindikation, download og upload af filer (Media API), redigering af beskeder, ACL'er, tagbinding og arbejde med lister over enheder og nøgler til end-to-end kryptering.

Lad os huske på, at platformen til organisering af decentral kommunikation Matrix bruger HTTPS+JSON som en transport med mulighed for at bruge WebSockets eller en protokol baseret på coap+Støj. Systemet er dannet som et fællesskab af servere, der kan interagere med hinanden og er forenet til et fælles decentralt netværk. Beskeder replikeres på tværs af alle servere, som beskeddeltagerne er forbundet til. Beskeder spredes på tværs af servere på samme måde, som commits spredes mellem Git-lagre. I tilfælde af et midlertidigt serverafbrydelse går meddelelser ikke tabt, men sendes til brugerne, efter at serveren genoptager driften. Forskellige bruger-id-indstillinger understøttes, herunder e-mail, telefonnummer, Facebook-konto osv.

Der er ikke et enkelt fejlpunkt eller beskedkontrol på tværs af netværket. Alle servere, der er omfattet af diskussionen, er lige hinanden.
Enhver bruger kan køre deres egen server og forbinde den til et fælles netværk. Det er muligt at skabe gateways til interaktion af Matrix med systemer baseret på andre protokoller, f.eks. forberedt tjenester til tovejs afsendelse af beskeder til IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp og Slack. Ud over øjeblikkelige tekstbeskeder og chats kan systemet bruges til at overføre filer, sende meddelelser,
organisere telekonferencer, foretage tale- og videoopkald. Den understøtter også avancerede funktioner som meddelelse om indtastning, evaluering af brugers online tilstedeværelse, læsebekræftelse, push-meddelelser, søgning på serversiden, synkronisering af historik og klientstatus.

Kilde: opennet.ru

Tilføj en kommentar