Izdanje Dendrite 0.1.0, komunikacijskog poslužitelja s implementacijom Matrix protokola

Objavljeno Izdanje Matrix poslužitelja Dendrit 0.1.0, što je označilo prijelaz razvoja u fazu beta testiranja. Dendrite razvija glavni tim programera decentralizirane komunikacijske platforme Matrix i pozicioniran je kao implementacija druge generacije Matrix poslužiteljskih komponenti. Za razliku od referentnog poslužitelja Sinapsa, napisano u Pythonu, kod Dendrite razvija se na Go jeziku. Obje službene implementacije licencirane su pod licencom Apache 2.0. U granicama projekta Ruma Posebno se razvija verzija Matrix poslužitelja na Rust jeziku, koji distribuira pod licencom MIT-a.

Novi poslužitelj ima za cilj postizanje visoke učinkovitosti, pouzdanosti i skalabilnosti. Dendrite nadmašuje Synapse, zahtijeva znatno manje memorije za rad i može se skalirati kroz balansiranje opterećenja na više čvorova. Dendrite arhitektura podržava horizontalno skaliranje i temelji se na odvajanju rukovatelja u obliku mikroservisa, gdje svaka instanca mikroservisa ima vlastite tablice u bazi podataka. Uravnoteživač opterećenja šalje pozive mikroservisima. Za paraleliziranje operacija u kodu koriste se niti (go rutine), koje vam omogućuju korištenje resursa svih CPU jezgri bez njihove podjele u zasebne procese.

Izdanje Dendrite 0.1.0, komunikacijskog poslužitelja s implementacijom Matrix protokola

Dendrite podržava dva načina: monolitni i polilitni. U monolitnom načinu rada sve su mikrousluge pakirane u jednu izvršnu datoteku, izvršavaju se u jednom procesu i međusobno su u izravnoj interakciji. U višekomponentnom (klasterskom) načinu rada mikroservisi se mogu pokrenuti zasebno, uključujući i distribuirati na različitim čvorovima. Međudjelovanje komponenti u
višekomponentni način rada provodi se pomoću internog HTTP API-ja i platforme Apache Kafka.

Razvoj se provodi na temelju specifikacija Matrix protokola i korištenjem dva paketa testova - testova zajedničkih za Synapse sustav i novi set Upotpuniti, dopuna. U trenutnoj fazi razvoja, Dendrite prolazi 56% Client-Server API testova i 77% Federation API testova, dok se stvarna pokrivenost funkcionalnosti procjenjuje na 70% za Client-Server API i 95% za Federation API.

Faza beta testiranja pokazuje da je Dendrite spreman za početnu implementaciju i prijelaz na razvoj s novim izdanjima koja se povremeno formiraju. Između izdanja, shema pohrane podataka u bazi podataka sada će se ažurirati (za razliku od instaliranja isječaka iz repozitorija, sadržaj baze podataka neće biti izgubljen nakon ažuriranja). Promjene koje prekidaju kompatibilnost sa prethodnim verzijama, mijenjaju strukturu baze podataka ili zahtijevaju promjene konfiguracije bit će ponuđene samo u glavnim izdanjima. Trenutno se preporučuje da se Dendrite koristi u monolitnom načinu rada u kombinaciji s PostgreSQL DBMS-om za stvaranje malih kućnih poslužitelja i P2P čvorova. Korištenje SQLitea još se ne preporučuje zbog neriješenih problema s rukovanjem istodobnim operacijama.

Značajke koje još nisu implementirane u Dendrite uključuju potvrde primitka poruka, oznake čitanja, push obavijesti, OpenID, povezivanje e-pošte, pretraživanje na strani poslužitelja, korisnički imenik, popise zanemarenih korisnika, stvaranje grupa i zajednica, procjenu online prisutnosti korisnika, unose gostiju, interakcija s mrežama trećih strana.

Za korištenje su dostupne osnovne funkcionalnosti za chat sobe (kreiranje, pozivnice, pravila autentifikacije), sredstva za federaciju sudionika u sobama, sinkronizacija događaja nakon povratka iz offline, računi, profili, indikacija biranja, preuzimanje i učitavanje datoteka (Media API), uređivanje poruka, ACL-ova, vezivanje oznaka i rad s popisima uređaja i ključeva za end-to-end enkripciju.

Podsjetimo, platforma za organiziranje decentraliziranih komunikacija Matrix koristi HTTPS+JSON kao transport uz mogućnost korištenja WebSockets ili protokola temeljenog na COAP+Buka. Sustav je formiran kao zajednica poslužitelja koji mogu međusobno komunicirati i ujedinjeni su u zajedničku decentraliziranu mrežu. Poruke se repliciraju preko svih poslužitelja na koje su povezani sudionici razmjene poruka. Poruke se šire preko poslužitelja na isti način na koji se prosljeđuju između Git repozitorija. U slučaju privremenog ispada poslužitelja, poruke se ne gube, već se prenose korisnicima nakon što poslužitelj nastavi s radom. Podržane su različite opcije ID-a korisnika, uključujući e-poštu, telefonski broj, Facebook račun itd.

Ne postoji jedinstvena točka kvara ili kontrola poruka preko mreže. Svi poslužitelji obuhvaćeni raspravom su međusobno jednaki.
Svaki korisnik može pokrenuti vlastiti poslužitelj i spojiti ga na zajedničku mrežu. Moguće je stvoriti pristupnici za interakciju Matrixa sa sustavima koji se temelje na drugim protokolima, npr. pripremljeni usluge za dvosmjerno slanje poruka na IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp i Slack. Osim za razmjenu trenutnih tekstualnih poruka i chatova, sustav se može koristiti za prijenos datoteka, slanje obavijesti,
organiziranje telekonferencija, glasovnih i video poziva. Također podržava napredne značajke kao što su obavijest o tipkanju, procjena prisutnosti korisnika na mreži, potvrda čitanja, push obavijesti, pretraživanje na strani poslužitelja, sinkronizacija povijesti i statusa klijenta.

Izvor: opennet.ru

Dodajte komentar