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

Byl zveřejněn vydání Matrix-serveru Dendrite 0.1.0, který oznámil přechod vývoje na fázi beta testování. Dendrite je vyvíjen hlavním týmem vývojářů decentralizované komunikační platformy Matrix a je považován za realizaci druhé generace serverových komponent Matrix. Na rozdíl od referenčního serveru Synapse, napsaného v jazyce Python, je kód Dendrite se vyvíjí v jazyce Go. Obě oficiální realizace jsou šířeny pod licencí Apache 2.0. V rámci projektu Ruma je také vyvíjen variant serveru Matrix v jazyce Rust, který distribuováno je licencován pod MIT licencí.

Nový server se zaměřuje na dosažení vysoké efektivity, spolehlivosti a škálovatelnosti. Dendrite překonává Synapse v výkonu, vyžaduje k práci výrazně méně paměti a může se škálovat prostřednictvím vyvažování zátěže na více uzlech. Architektura Dendrite podporuje horizontální škálování a je založena na rozdělení zpracovatelů v podobě mikroservisů, kde každá instance mikroservisu má své vlastní tabulky v databázi. Správou požadavků na mikroservisy se zabývá vyvažovač zátěže. Pro paralelizaci operací v kódu se používají vlákna (go routines), která umožňují využít zdroje všech jader CPU bez rozdělení na samostatné procesy.

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

Dendrite podporuje provoz ve dvou režimech — monolitním a vícetrijním (polylith). V monolitním režimu jsou všechny mikroservisy zkombinovány v jednom spustitelném souboru, provádějí se v jednom procesu a vzájemně komunikují přímo. V vícetrijním (klastrovém) režimu mohou být mikroservisy spouštěny jednotlivě, včetně rozložení na různé uzly. Interakce komponent v
vícetrijním režimu se uskutečňuje pomocí interního HTTP API a platformy Apache Kafka.

Vývoj probíhá na základě specifikací protokolu Matrix a za použití dvou testovacích sad — společných se Synapse testy sytest a nového souboru Complement. V aktuální fázi vývoje Dendrite úspěšně prochází 56% testů Client-Server API a 77% testů Federation API, přičemž skutečné pokrytí funkcionality je odhadováno na 70% pro Client-Server API a 95% pro Federation API.

Beta testovací fáze naznačuje připravenost Dendrite na počáteční implementaci a přechod k vývoji s pravidelným vydáváním nových verzí. Mezi verzemi bude nyní zajištěna aktualizace schématu ukládání dat v databázi (na rozdíl od instalace okamžiků z repozitáře, po aktualizaci obsah databáze nezmizí). Změny, které narušují zpětnou kompatibilitu, mění strukturu databáze nebo vyžadují úpravu konfigurace, budou navrhovány pouze v důležitých vydáních. Dendrite se prozatím doporučuje používat v monolitickém režimu spolu s databází PostgreSQL k vytváření malých serverů (homeserver) a P2P uzlů. Použití SQLite zatím není doporučeno kvůli nevyřešeným problémům s zpracováním souběžných operací.

Mezi dosud neimplementované funkce Dendrite patří potvrzení o přijetí zpráv, značky o přečtení, push notifikace, OpenID, vazba na e-mail, serverové vyhledávání, uživatelský katalog, seznamy ignorování, vytváření skupin a komunit, hodnocení přítomnosti uživatele online, hostující přístupy a interakce s externími sítěmi.

K dispozici je základní funkcionalita pro práci s chatovými místnostmi (vytváření, pozvánky, pravidla autentizace), nástroje pro federaci účastníků v místnostech, synchronizace událostí po návratu z offline, účty, profily, indikace psaní, nahrávání a sdílení souborů (Media API), editace zpráv, ACL, vazba tagů a práce se seznamy zařízení a klíčů pro koncové šifrování.

Připomínáme, že platforma pro organizaci decentralizované komunikace Matrix používá jako transport HTTPS+JSON s možností využití WebSockets nebo protokolu na bázi CoAP+Noise. Systém je tvořen jako společenství serverů, které mohou vzájemně interagovat a spojují se do společné decentralizované sítě. Zprávy jsou replikovány na všech serverech, ke kterým jsou připojeni účastníci výměny zpráv. Zprávy se šíří mezi servery podobně jako commity mezi Git repozitáři. V případě dočasného odpojení serveru zprávy neztrácejí a jsou doručeny uživatelům po obnovení provozu serveru. Podporovány jsou různé varianty identifikátorů uživatelů, včetně emailové adresy, telefonního čísla, účtu na Facebooku atd.

V síti není jediný bod selhání nebo kontroly zpráv. Všechny servery, které zahrnuje 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řit mosty pro interakci Matrix se systémy založenými na jiných protokolech, například jsou připraveny služby pro obousměrné zasílání zpráv v IRC, Facebooku, Telegramu, Skype, Hangouts, Emailu, WhatsApp a Slacku. Kromě okamžité 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í oznámení,
organizaci telekonferencí, provádění hlasových a video hovorů. Podporovány jsou také pokročilé funkce jako upozornění na psaní, hodnocení přítomnosti uživatele online, potvrzení přečtení, push oznámení, vyhledávání na straně serveru, synchronizace historie a stavu klientů.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster