vydanie Matrix servera , ktorý označil prechod vývoja na fázu beta-testovania. Dendrite vyvíja základný tím vývojárov decentralizovanej komunikačnej platformy Matrix a je považovaný za implementáciu druhej generácie serverových komponentov Matrix. Na rozdiel od referenčného servera , napísaného v jazyku Python, kód Dendrite je napísaný v jazyku Go. Obe oficiálne implementácie sú distribuované pod licenciou Apache 2.0. V rámci projektu samostatne vyvíja variant servera Matrix v jazyku Rust, ktorý pod licenciou MIT.
Nový server sa zameriava na dosiahnutie vysokej efektívnosti, spoľahlivosti a škálovateľnosti. Dendrite predčí Synapse čo sa týka výkonu, vyžaduje na svoju prácu podstatne menej pamäte a môže sa škálovať prostredníctvom vyvažovania záťaže na niekoľko uzlov. Architektúra Dendrite podporuje horizontálne škálovanie a je založená na rozdelení spracovateľov v podobe mikroslužieb, kde každý exemplár mikroslužby má svoje tabuľky v DB. Dispečerizácia prístupu k mikroslužbám sa realizuje prostredníctvom vyvažovača záťaže. Na paralelizáciu operácií v kóde sa používajú vlákna (go routines), ktoré umožňujú využiť zdroje všetkých jadier CPU bez delenia na samostatné procesy.
Dendrite podporuje prácu v dvoch režimoch — monolitnom a mnohokomponentnom (polylith). V monolitnom režime sú všetky mikroslužby zjednotené v jednom spustiteľnom súbore, vykonávajú sa v jednom procese a navzájom komunikujú priamo. V mnohokomponentnom (klastrovom) režime môžu mikroslužby bežať samostatne, vrátane rozdelenia na rôzne uzly. Interakcia komponentov v
mnohokomponentnom režime sa uskutočňuje pomocou interného HTTP API a platformy .
Vývoj prebieha na základe špecifikácií protokolu Matrix a s použitím dvoch testovacích súborov — spoločných so Synapse testami a nového súboru . V súčasnej fáze vývoja Dendrite úspešne prechádza 56 % testov Client-Server API a 77 % testov Federation API, pričom skutočné pokrytie funkčnosti sa odhaduje na 70 % pre Client-Server API a 95 % pre Federation API.
Beta test phase indicates Dendrite's readiness for initial deployment and transition to development with periodic releases. Between releases, database schema updates will now be ensured (unlike installing snapshots from the repository, where the database content will not be lost post-update). Changes that break backward compatibility, alter the database structure, or require configuration adjustments will only be proposed in significant releases. Dendrite is currently recommended to be used in monolithic mode with PostgreSQL for creating small homeservers and P2P nodes. Using SQLite is not yet recommended due to unresolved issues with handling concurrent operations.
Among the features not yet implemented in Dendrite are message reception confirmations, read receipts, push notifications, OpenID, email binding, server-side search, user directory, user ignore lists, group and community creation, assessing user presence online, guest logins, and interaction with external networks.
Basic functionality is available for chat room operations (creating, invites, authentication rules), means for federating participants in rooms, event synchronization after returning from offline, accounts, profiles, typing indicators, file uploads and downloads (Media API), message editing, ACL, tag binding, and managing device lists and keys for end-to-end encryption.
It is worth noting that the Matrix platform for organizing decentralized communications uses HTTPS+JSON as transport with the option of using WebSockets or a protocol based on +. Systém je tvořen jako společenství serverů, které mohou vzájemně komunikovat a spojují se do společné decentralizované sítě. Zprávy se replikují na všech serverech, ke kterým jsou připojeni účastníci výměny zpráv. Zprávy se šíří po serverech analogicky k tomu, jak se commit zprávy šíří mezi Git repozitáři. V případě dočasného odstavení serveru zprávy neztrácí, ale jsou předávány uživatelům po obnovení provozu serveru. Podporují se různé varianty identifikátorů uživatelů, včetně emailu, telefonního čísla, účtu na Facebooku atd.
V síti není jediný bod selhání nebo kontroly zpráv. Všechny servery, které se účastní diskuse, jsou si rovny.
Jakýkoli uživatel může spustit vlastní server a připojit ho k obecné síti. Je možné vytvoření pro interakci Matrixu se systémy založenými na jiných protokolech, například, služby pro oboustranné zasílání zpráv do IRC, Facebooku, Telegramu, Skype, Hangouts, Emailu, WhatsAppu a Slacku. Kromě okamžitého výměny textových zpráv a organizace chatů může být systém použit pro přenos souborů, zasílání upozornění,
organizaci telekonferencí, uskutečňování hlasových a video hovorů. Podporují se také rozšířené funkce jako oznámení o psaní, hodnocení přítomnosti uživatele online, potvrzení přečtení, push notifikace, hledání na straně serveru, synchronizace historie a stavu klientů.
Zdroj: opennet.ru
