Izdaja Dendrite 0.1.0, komunikacijskega strežnika z implementacijo protokola Matrix

Objavljeno Izdaja strežnika Matrix Dendrit 0.1.0, ki je zaznamoval prehod razvoja v fazo beta testiranja. Dendrite razvija ožja ekipa razvijalcev decentralizirane komunikacijske platforme Matrix in je postavljen kot implementacija druge generacije strežniških komponent Matrix. Za razliko od referenčnega strežnika Synapse, napisano v Pythonu, koda Dendrite se razvija v jeziku Go. Obe uradni izvedbi sta licencirani pod licenco Apache 2.0. V mejah projekta Ruma Ločeno se razvija različica strežnika Matrix v jeziku Rust, ki distributer pod licenco MIT.

Nov strežnik je usmerjen v doseganje visoke učinkovitosti, zanesljivosti in razširljivosti. Dendrite prekaša Synapse, za delovanje potrebuje bistveno manj pomnilnika in se lahko spreminja z uravnoteženjem obremenitve v več vozliščih. Arhitektura Dendrite podpira horizontalno skaliranje in temelji na ločevanju obdelovalcev v obliki mikrostoritev, kjer ima vsak primerek mikrostoritve svoje tabele v bazi podatkov. Izravnalnik obremenitve odpošlje klice mikrostoritvam. Za paralelizacijo operacij v kodi se uporabljajo niti (go rutine), ki vam omogočajo uporabo virov vseh jeder CPE, ne da bi jih razdelili na ločene procese.

Izdaja Dendrite 0.1.0, komunikacijskega strežnika z implementacijo protokola Matrix

Dendrite podpira dva načina: monolitni in polilitni. V monolitnem načinu so vse mikrostoritve zapakirane v eno samo izvedljivo datoteko, ki se izvajajo v enem samem procesu in med seboj neposredno komunicirajo. V večkomponentnem (gručnem) načinu je mogoče mikrostoritve zagnati ločeno, vključno z porazdelitvijo po različnih vozliščih. Interakcija komponent v
večkomponentni način se izvaja z uporabo notranjega API-ja HTTP in platforme Apache Kafka.

Razvoj poteka na podlagi specifikacij protokola Matrix in z uporabo dveh testnih paketov – testov, ki so skupni Synapseu. sistem in nov komplet Dopolnilo. Na trenutni stopnji razvoja Dendrite prestane 56 % testov API-ja odjemalec-strežnik in 77 % testov API-ja Federation, medtem ko je dejanska pokritost funkcionalnosti ocenjena na 70 % za API-ja odjemalec-strežnik in 95 % za API-ja Federation.

Stopnja beta testiranja kaže, da je Dendrite pripravljen za začetno implementacijo in prehod v razvoj z novimi izdajami, ki se občasno oblikujejo. Med izdajami bo zdaj posodobljena shema shranjevanja podatkov v bazi podatkov (za razliko od namestitve rezin iz repozitorija vsebina baze podatkov po posodobitvi ne bo izgubljena). Spremembe, ki prekinejo združljivost za nazaj, spremenijo strukturo baze podatkov ali zahtevajo spremembe konfiguracije, bodo na voljo samo v večjih izdajah. Trenutno je priporočljivo, da se Dendrite uporablja v monolitnem načinu v povezavi s DBMS PostgreSQL za ustvarjanje majhnih domačih strežnikov in vozlišč P2P. Uporaba SQLite še ni priporočljiva zaradi nerešenih težav z obravnavanjem sočasnih operacij.

Funkcije, ki še niso bile implementirane v Dendrite, vključujejo potrditve prejema sporočila, oznake branja, potisna obvestila, OpenID, vezavo e-pošte, iskanje na strani strežnika, uporabniški imenik, sezname prezrtih uporabnikov, ustvarjanje skupin in skupnosti, ocenjevanje spletne prisotnosti uporabnikov, vnose gostov, interakcijo z omrežji tretjih oseb.

Za uporabo so na voljo osnovne funkcionalnosti za klepetalnice (ustvarjanje, povabila, pravila avtentikacije), sredstva za združevanje udeležencev v sobah, sinhronizacija dogodkov po vrnitvi iz offline, računi, profili, indikacija klicanja, prenos in nalaganje datotek (Media API), urejanje sporočil, ACL-jev, vezave oznak in delo s seznami naprav in ključev za šifriranje od konca do konca.

Naj spomnimo, platforma za organizacijo decentraliziranih komunikacij Matrix uporablja HTTPS+JSON kot transport z možnostjo uporabe WebSockets ali protokola, ki temelji na COAP+hrup. Sistem je oblikovan kot skupnost strežnikov, ki lahko komunicirajo med seboj in so združeni v skupno decentralizirano omrežje. Sporočila se podvojijo na vseh strežnikih, na katere so povezani udeleženci sporočanja. Sporočila se širijo po strežnikih na enak način, kot se pošiljajo potrditve med repozitoriji Git. V primeru začasnega izpada strežnika se sporočila ne izgubijo, temveč se uporabnikom prenesejo po ponovnem zagonu strežnika. Podprte so različne možnosti ID-ja uporabnika, vključno z e-pošto, telefonsko številko, Facebook računom itd.

V omrežju ni enotne točke napake ali nadzora sporočil. Vsi strežniki, zajeti v razpravi, so med seboj enakopravni.
Vsak uporabnik lahko požene svoj strežnik in ga poveže v skupno omrežje. Možno je ustvariti prehodi za interakcijo Matrixa s sistemi, ki temeljijo na drugih protokolih, npr. pripravljeni storitve za dvosmerno pošiljanje sporočil na IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp in Slack. Poleg neposrednega besedilnega sporočanja in klepetov lahko sistem uporabljate za prenos datotek, pošiljanje obvestil,
organiziranje telekonferenc, opravljanje glasovnih in video klicev. Podpira tudi napredne funkcije, kot so obvestilo o tipkanju, ocena spletne prisotnosti uporabnika, potrditev branja, potisna obvestila, iskanje na strani strežnika, sinhronizacija zgodovine in statusa odjemalca.

Vir: opennet.ru

Dodaj komentar