Vydání Dendrite 0.1.0, komunikačního serveru s implementací protokolu Matrix

zveřejněno Vydání maticového serveru Dendrit 0.1.0, což znamenalo přechod vývoje do fáze beta testování. Dendrite je vyvíjen základním týmem vývojářů decentralizované komunikační platformy Matrix a je umístěn jako implementace druhé generace serverových komponent Matrix. Na rozdíl od referenčního serveru Synapse, napsaný v Pythonu, kód Dendrite se vyvíjí v jazyce Go. Obě oficiální implementace jsou licencovány pod licencí Apache 2.0. V hranicích projektu Ruma Samostatně se vyvíjí verze Matrix serveru v jazyce Rust, která distribuovány pod licencí MIT.

Nový server je zaměřen na dosažení vysoké efektivity, spolehlivosti a škálovatelnosti. Dendrite překonává Synapse, vyžaduje podstatně méně paměti k provozu a může se škálovat pomocí vyvažování zátěže mezi více uzly. Architektura Dendrite podporuje horizontální škálování a je založena na oddělení handlerů ve formě mikroslužeb, kde každá instance mikroslužby má v databázi své vlastní tabulky. Nástroj pro vyrovnávání zatížení odesílá volání mikroslužeb. Pro paralelizaci operací v kódu se používají vlákna (go rutiny), které umožňují využívat prostředky všech jader CPU bez jejich rozdělování do samostatných procesů.

Vydání Dendrite 0.1.0, komunikačního serveru s implementací protokolu Matrix

Dendrite podporuje dva režimy: monolitický a polylitický. V monolitickém režimu jsou všechny mikroslužby zabaleny do jednoho spustitelného souboru, spouštěny v jediném procesu a vzájemně přímo interagují. Ve vícesložkovém (clusterovém) režimu lze mikroslužby spouštět samostatně, včetně distribuce mezi různé uzly. Interakce komponent v
vícesložkový režim se provádí pomocí interního HTTP API a platformy Apache Kafka.

Vývoj probíhá na základě specifikací protokolu Matrix a pomocí dvou testovacích sad – testů společných pro Synapse sytest a novou sadu Dodatek. V současné fázi vývoje projde Dendrite 56 % testů Client-Server API a 77 % testů Federation API, zatímco skutečné pokrytí funkčností se odhaduje na 70 % pro Client-Server API a 95 % pro Federation API.

Fáze beta testování naznačuje, že Dendrite je připraven na počáteční implementaci a přechod na vývoj s periodicky vytvářenými novými verzemi. Mezi vydáními bude nyní aktualizováno schéma ukládání dat v databázi (na rozdíl od instalace řezů z úložiště se obsah databáze po aktualizaci neztratí). Změny, které narušují zpětnou kompatibilitu, mění strukturu databáze nebo vyžadují změny konfigurace, budou nabízeny pouze v hlavních verzích. Dendrite se v současnosti doporučuje používat v monolitickém režimu ve spojení s PostgreSQL DBMS k vytváření malých domácích serverů a P2P uzlů. Použití SQLite se zatím nedoporučuje kvůli nevyřešeným problémům se zpracováním souběžných operací.

Mezi funkce, které ještě nebyly implementovány v Dendrite, patří potvrzení příjmu zpráv, značky přečtení, upozornění push, OpenID, vazba e-mailu, vyhledávání na straně serveru, adresář uživatelů, seznamy ignorovaných uživatelů, vytváření skupin a komunit, hodnocení přítomnosti uživatelů online, vstupy hostů, interakce se sítěmi třetích stran.

K dispozici jsou základní funkcionality pro chatovací místnosti (vytváření, pozvánky, autentizační pravidla), prostředky federace účastníků v místnostech, synchronizace událostí po návratu z offline, účty, profily, indikace vytáčení, stahování a nahrávání souborů (Media API), úpravy zpráv, ACL, vázání tagů a práce se seznamy zařízení a klíčů pro end-to-end šifrování.

Připomeňme, že platforma pro organizaci decentralizované komunikace Matrix využívá HTTPS+JSON jako transport s možností používat WebSockets nebo protokol založený na CoAP+Hluk. Systém je tvořen jako komunita serverů, které mohou vzájemně interagovat a jsou sjednoceny do společné decentralizované sítě. Zprávy jsou replikovány na všech serverech, ke kterým jsou připojeni účastníci zasílání zpráv. Zprávy se šíří mezi servery stejným způsobem, jakým se šíří potvrzení mezi repozitáři Git. V případě dočasného výpadku serveru se zprávy neztratí, ale jsou odeslány uživatelům poté, co server obnoví provoz. Podporovány jsou různé možnosti ID uživatele, včetně e-mailu, telefonního čísla, účtu na Facebooku atd.

V síti neexistuje jediný bod selhání nebo kontroly zpráv. Všechny servery, kterých se diskuse týká, jsou si navzájem rovnocenné.
Každý uživatel může provozovat svůj vlastní server a připojit jej ke společné síti. Je možné vytvořit brány pro interakci Matrixu se systémy založenými na jiných protokolech, např. připravený služby pro obousměrné odesílání zpráv na IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp a Slack. Kromě okamžitých textových zpráv a chatů lze systém použít k přenosu souborů, odesílání upozornění,
organizování telekonferencí, uskutečňování hlasových hovorů a videohovorů. Podporuje také pokročilé funkce, jako je upozornění na psaní, vyhodnocení přítomnosti uživatele online, potvrzení přečtení, upozornění push, vyhledávání na straně serveru, synchronizace historie a stavu klienta.

Zdroj: opennet.ru

Přidat komentář