Vydanie Dendrite 0.1.0, komunikačného servera s implementáciou protokolu Matrix

publikovaný Vydanie maticového servera Dendrit 0.1.0, čo znamenalo prechod vývoja do štádia beta testovania. Dendrite je vyvíjaný hlavným tímom vývojárov decentralizovanej komunikačnej platformy Matrix a je postavený ako implementácia druhej generácie serverových komponentov Matrix. Na rozdiel od referenčného servera Synapse, napísaný v Pythone, kód Dendrite sa vyvíja v jazyku Go. Obe oficiálne implementácie sú licencované pod licenciou Apache 2.0. V hraniciach projektu Ruma Samostatne sa vyvíja verzia Matrix servera v jazyku Rust, ktorá distribuovaný pod licenciou MIT.

Nový server je zameraný na dosiahnutie vysokej efektivity, spoľahlivosti a škálovateľnosti. Dendrite prekonáva Synapse, vyžaduje podstatne menej pamäte na prevádzku a môže sa škálovať pomocou vyrovnávania záťaže medzi viacerými uzlami. Architektúra Dendrite podporuje horizontálne škálovanie a je založená na oddelení handlerov vo forme mikroslužieb, kde každá inštancia mikroslužby má svoje vlastné tabuľky v databáze. Nástroj na vyrovnávanie záťaže odosiela hovory do mikroslužieb. Na paralelizáciu operácií v kóde sa používajú vlákna (go rutiny), ktoré umožňujú využívať zdroje všetkých jadier CPU bez ich delenia na samostatné procesy.

Vydanie Dendrite 0.1.0, komunikačného servera s implementáciou protokolu Matrix

Dendrite podporuje dva režimy: monolitický a polylitický. V monolitickom režime sú všetky mikroslužby zabalené do jedného spustiteľného súboru, spustené v jedinom procese a priamo medzi sebou interagujú. Vo viaczložkovom (klastrovom) režime môžu byť mikroslužby spúšťané samostatne, vrátane distribúcie medzi rôznymi uzlami. Interakcia komponentov v
viaczložkový režim sa vykonáva pomocou interného HTTP API a platformy Apache Kafka.

Vývoj prebieha na základe špecifikácií protokolu Matrix a pomocou dvoch testovacích sád – testov spoločných pre Synapse sytest a nová súprava doplnok. V súčasnej fáze vývoja Dendrite prejde 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.

Fáza beta testovania naznačuje, že Dendrite je pripravený na počiatočnú implementáciu a prechod na vývoj s periodicky vytváranými novými vydaniami. Medzi vydaniami sa teraz aktualizuje schéma ukladania údajov v databáze (na rozdiel od inštalácie rezov z úložiska sa obsah databázy po aktualizácii nestratí). Zmeny, ktoré narúšajú spätnú kompatibilitu, menia štruktúru databázy alebo vyžadujú zmeny konfigurácie, budú ponúkané iba vo veľkých vydaniach. Dendrite sa v súčasnosti odporúča používať v monolitickom režime v spojení s PostgreSQL DBMS na vytváranie malých domácich serverov a P2P uzlov. Použitie SQLite sa zatiaľ neodporúča kvôli nevyriešeným problémom so spracovaním súbežných operácií.

Funkcie, ktoré ešte neboli implementované v Dendrite, zahŕňajú potvrdenia prijatia správ, značky prečítania, push notifikácie, OpenID, väzbu e-mailu, vyhľadávanie na strane servera, adresár používateľov, zoznamy ignorovaných používateľov, vytváranie skupín a komunít, hodnotenie prítomnosti používateľov online, vstupy hostí, interakcie so sieťami tretích strán.

K dispozícii sú základné funkcionality pre chatovacie miestnosti (vytváranie, pozvánky, autentizačné pravidlá), prostriedky federácie účastníkov v miestnostiach, synchronizácia udalostí po návrate z offline, účty, profily, indikácia vytáčania, sťahovanie a nahrávanie súborov (Media API), editovanie správ, ACL, viazanie tagov a práca so zoznamami zariadení a kľúčov pre end-to-end šifrovanie.

Pripomeňme, že platforma na organizovanie decentralizovanej komunikácie Matrix využíva HTTPS+JSON ako transport s možnosťou využívať WebSockets alebo protokol založený na COAP+Hluk. Systém je vytvorený ako komunita serverov, ktoré môžu navzájom interagovať a sú spojené do spoločnej decentralizovanej siete. Správy sa replikujú na všetkých serveroch, ku ktorým sú pripojení účastníci správ. Správy sa šíria cez servery rovnakým spôsobom, akým sa šíria potvrdenia medzi archívmi Git. V prípade dočasného výpadku servera sa správy nestratia, ale prenesú sa používateľom po obnovení prevádzky servera. Podporované sú rôzne možnosti ID používateľa, vrátane e-mailu, telefónneho čísla, účtu na Facebooku atď.

V sieti neexistuje jediný bod zlyhania alebo kontroly správ. Všetky servery, ktorých sa diskusia týka, sú si navzájom rovnocenné.
Každý používateľ môže spustiť svoj vlastný server a pripojiť ho k spoločnej sieti. Je možné vytvoriť brány pre interakciu Matrix so systémami založenými na iných protokoloch, napr. pripravené služby pre obojsmerné odosielanie správ na IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp a Slack. Okrem okamžitých textových správ a chatov je možné systém použiť na prenos súborov, odosielanie upozornení,
organizovanie telekonferencií, uskutočňovanie hlasových hovorov a videohovorov. Podporuje aj také pokročilé funkcie, ako je upozorňovanie na písanie, vyhodnocovanie online prítomnosti používateľa, potvrdenie prečítania, upozornenia push, vyhľadávanie na strane servera, synchronizácia histórie a stavu klienta.

Zdroj: opennet.ru

Pridať komentár