Release av Dendrite 0.1.0, en kommunikationsserver med en implementering av Matrix-protokollet

publiceras Matrix server release Dendrit 0.1.0, som markerade övergången av utveckling till betatestningsstadiet. Dendrite utvecklas av kärnteamet av utvecklare av den decentraliserade kommunikationsplattformen Matrix och är positionerad som implementeringen av andra generationens Matrix-serverkomponenter. Till skillnad från referensservern Synapsen, skrivet i Python, kod Dendrite utvecklas på Go-språk. Båda officiella implementeringarna är licensierade under Apache 2.0-licensen. I projektets gränser Ruma En version av Matrix-servern på språket Rust utvecklas separat, vilket levererad av under MIT-licensen.

Den nya servern syftar till att uppnå hög effektivitet, tillförlitlighet och skalbarhet. Dendrite överträffar Synapse, kräver betydligt mindre minne för att fungera och kan skalas genom lastbalansering över flera noder. Dendrite-arkitekturen stöder horisontell skalning och bygger på separation av hanterare i form av mikrotjänster, där varje mikrotjänstinstans har sina egna tabeller i databasen. Lastbalanseraren skickar samtal till mikrotjänster. För att parallellisera operationer i koden används trådar (go-rutiner) som gör att du kan använda resurserna för alla CPU-kärnor utan att dela upp dem i separata processer.

Release av Dendrite 0.1.0, en kommunikationsserver med en implementering av Matrix-protokollet

Dendrit stöder två lägen: monolitisk och polylit. I monolitiskt läge paketeras alla mikrotjänster i en enda körbar fil, exekveras i en enda process och interagerar direkt med varandra. I multikomponentläge (kluster) kan mikrotjänster lanseras separat, inklusive fördelade över olika noder. Interaktion mellan komponenter i
multikomponentläge utförs med hjälp av det interna HTTP-API:et och plattformen Apache Kafka.

Utvecklingen utförs baserat på Matrix-protokollets specifikationer och med två testsviter - tester som är gemensamma för Synapse system och ett nytt set Komplement. I det nuvarande utvecklingsstadiet klarar Dendrite 56 % av Client-Server API-tester och 77 % av Federation API-tester, medan den faktiska funktionalitetstäckningen uppskattas till 70 % för Client-Server API och 95 % för Federation API.

Betatestningsstadiet indikerar att Dendrite är redo för initial implementering och övergång till utveckling med nya releaser som regelbundet bildas. Mellan utgåvorna kommer datalagringsschemat i databasen nu att uppdateras (till skillnad från att installera skivor från förvaret, kommer innehållet i databasen inte att gå förlorat efter uppdateringen). Ändringar som bryter bakåtkompatibiliteten, ändrar databasstrukturen eller kräver konfigurationsändringar kommer endast att erbjudas i större utgåvor. Dendrite rekommenderas för närvarande att användas i monolitiskt läge i kombination med PostgreSQL DBMS för att skapa små hemmaservrar 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 inkluderar bekräftelser av meddelandekvitto, läsmärken, push-meddelanden, OpenID, e-postbindning, sökning på serversidan, användarkatalog, ignoreringslistor för användare, skapande av grupper och gemenskaper, bedömning av användares onlinenärvaro, gästinput, interaktion med tredjepartsnätverk.

Tillgängliga för användning är grundläggande funktionalitet för chattrum (skapande, inbjudningar, autentiseringsregler), sätt för federation av deltagare i rum, synkronisering av händelser efter återkomst från offline, konton, profiler, uppringningsindikering, nedladdning och uppladdning av filer (Media API), redigera meddelanden, ACL, taggbindning och arbeta med listor över enheter och nycklar för end-to-end-kryptering.

Låt oss komma ihåg att plattformen för att organisera decentraliserad kommunikation Matrix använder HTTPS+JSON som en transport med möjlighet att använda WebSockets eller ett protokoll baserat på CoAP+Brus. Systemet är format som en gemenskap av servrar som kan interagera med varandra och förenas till ett gemensamt decentraliserat nätverk. Meddelanden replikeras över alla servrar som meddelandedeltagarna är anslutna till. Meddelanden sprids över servrar på samma sätt som commits sprids mellan Git-repositories. I händelse av ett tillfälligt serveravbrott försvinner inte meddelanden utan överförs till användarna efter att servern återupptagit driften. Olika alternativ för användar-ID stöds, inklusive e-post, telefonnummer, Facebook-konto, etc.

Det finns ingen enskild felpunkt eller meddelandekontroll över nätverket. Alla servrar som diskuteras är lika med varandra.
Alla användare kan köra sin egen server och ansluta den till ett gemensamt nätverk. Det går att skapa gateways för interaktion av Matrix med system baserade på andra protokoll, till exempel, beredd tjänster för tvåvägssändning av meddelanden till IRC, Facebook, Telegram, Skype, Hangouts, e-post, WhatsApp och Slack. Förutom snabbmeddelanden och chattar kan systemet användas för att överföra filer, skicka meddelanden,
organisera telefonkonferenser, ringa röst- och videosamtal. Den stöder även sådana avancerade funktioner som avisering om skrivning, utvärdering av användares onlinenärvaro, läsbekräftelse, push-meddelanden, sökning på serversidan, synkronisering av historik och klientstatus.

Källa: opennet.ru

Lägg en kommentar