Dendrite, komunikacijski poslužitelj s implementacijom Matrix protokola

Dendrite je komunikacijski server to je biće razvio Matrix tim i pozicioniran je kao implementacija druge generacije komponenata Matrix servera.

Za razliku od Synapse referentnog servera napisanog na Pythonu, Dendrite kod je razvijen u programu Go. Obje službene implementacije distribuiraju se pod licencom Apache 2.0.

U sklopu projekta Ruma razvija se zasebna verzija Matrix servera na jeziku Rust, koji se distribuira pod MIT licencom.

Novi server ima za cilj postizanje visoke efikasnosti, pouzdanosti i skalabilnosti.

O Dendriteu

Dendrite je ispred Synapsea u pogledu performansi, zahtijeva mnogo manje memorije za rad i može se skalirati uravnoteženjem opterećenja na više čvorova.

Arhitektura dendrita podržava horizontalno skaliranje i temelji se na razdvajanju kontrolera u obliku mikroservisa, gdje svaka instanca mikrousluge ima svoje tablice u bazi podataka.

Uravnoteživač tereta odgovoran je za slanje poziva mikroservisima. Niti (go rutine) koriste se za paraleliziranje operacija u kodu, što omogućava korištenje resursa svih CPU jezgri bez podjele u zasebne procese.

Dendrite podržava rad u dva načina: monolitni i višekomponentni (polilit).

  • U monolitnom načinu, Svi su mikroservisi povezani u izvršnu datoteku, pokreću se u procesu i izravno međusobno komuniciraju.
  • U višekomponentnom načinu (klaster), mikroservisi se mogu pokrenuti odvojeno, čak i sa raznovrsnošću na različitim čvorovima. Interakcija komponenata u višekomponentnom načinu rada provodi se pomoću internog HTTP API-ja i Apache Kafka platforme.

Razvoj se izvodi na osnovu specifikacija protokola Matrix i koristeći dva skupa testova: uobičajeni test testova sa Synapseom i novi paket Complement.

U trenutnoj fazi razvoja, Dendrite uspješno prolazi 56% testova API-ja klijent-poslužitelj i 77% API testova federacije, dok se stvarna pokrivenost funkcionalnosti procjenjuje na 70% za API klijent-server i 95% za API federacije.

Beta faza pokazuje da je Dendrite spreman za početnu implementaciju i prelazak na razvoj redovnim novim izdanjima. Između izdanja, shema za pohranu baze podataka sada će se ažurirati (za razliku od instaliranja dijelova iz spremišta, nakon ažuriranja sadržaj baze podataka neće biti izgubljen).

Promjene koje narušavaju unatrag kompatibilnost, mijenjaju strukturu baze podataka ili zahtijevaju promjene konfiguracije bit će ponuđene samo u glavnim izdanjima.

Za trenutak, preporučuje se upotreba Dendrite-a u monolitnom načinu zajedno sa PostgreSQL DBMS-om za stvaranje malih kućnih servera i P2P čvorova. Korištenje SQLitea još se ne preporučuje zbog neriješenih problema s rukovanjem istodobnim operacijama.

Funkcije još nisu implementirane Dendrite uključi: potvrde poruka, oznake, push obavijesti, OpenID, veza e-pošte, pretraga na strani poslužitelja, korisnički imenik, liste zanemarenih korisnika, stvaranje grupa i zajednica, procjena prisutnosti korisnika na mreži , ulazi za goste, interakcija s mrežama trećih strana.

Osnovna funkcionalnost za rad chat soba (kreiranje, pozivnice, pravila provjere autentičnosti), način udruživanja sudionika u sobama, sinhronizacija događaja nakon povratka van mreže, računi, profili, indikacija biranja, preuzimanje i postavljanje Datoteke za uređivanje (Media API) dostupne su za upotrebu poruka, ACL-ova, označavanja i end-to-end enkripcionih uređaja i popisa ključeva.

Zapamtite to platforma za organiziranje decentralizirane komunikacije Matrix koristi HTTPS + JSON kao transport s mogućnošću korištenja WebSockets ili protokola zasnovanog na CoAP + Noise. Sistem je formiran kao zajednica servera koji mogu međusobno komunicirati i kombinirani su u zajedničkoj decentraliziranoj mreži.

Poruke se repliciraju na svim poslužiteljima na koji su povezani sudionici razmjene poruka. Poruke se šire između poslužitelja na način sličan načinu na koji se propagira predavanje između Git spremišta.

Izvor: https://matrix.org


Budite prvi koji komentarišete

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.