izdanje Matrix poslužitelja , što označava prelazak razvoja na fazu beta-testiranja. Dendrite razvija glavni tim razvijača decentralizirane komunikacijske platforme Matrix i pozicionira se kao implementacija drugog generacije poslužiteljskih komponenti Matrix. Za razliku od referentnog poslužitelja , napisanog na Pythonu, kod Dendrite na jeziku Go. Obje službene implementacije distribuiraju se pod licencom Apache 2.0. U okviru projekta odvojeno se razvija varijanta Matrix poslužitelja na jeziku Rust, koja pod MIT licencom.
Novi poslužitelj ima za cilj postizanje visoke učinkovitosti, pouzdanosti i skalabilnosti. Dendrite nadmašuje Synapse u performansama, zahtijeva znatno manje memorije za rad i može se skalirati putem ravnoteže opterećenja na više čvorova. Arhitektura Dendrite podržava horizontalno skaliranje i temelji se na razdvajanju rukovatelja u obliku mikroservisa, pri čemu svaka instanca mikroservisa ima svoje tablice u bazi podataka. Upravljanje pristupom mikroservisima obavlja ravnotežnik opterećenja. Za paralelno izvođenje operacija u kodu koriste se niti (go routines), koje omogućuju angažiranje resursa svih jezgri CPU-a bez razdvajanja na odvojene procese.
Dendrite podržava rad u dva načina — monolitnom i višekomponentnom (polylith). U monolitnom načinu svi mikroservisi su objedinjeni u jednu izvršnu datoteku, izvršavaju se u jednom procesu i izravno međusobno komuniciraju. U višekomponentnom (klasterskom) načinu mikroservisi se mogu pokretati odvojeno, uključujući razdvajanje po različitim čvorovima. Interakcija komponenti u
višekomponentnom načinu odvija se putem unutarnjeg HTTP API-ja i platforme .
Razvoj se vodi na temelju specifikacija Matrix protokola i korištenjem dva skupa testova — zajedničkih testova s Synapse i novog skupa . U ovoj fazi razvoja Dendrite uspješno prolazi 56% testova Client-Server API i 77% testova Federation API, pri čemu se stvarni opseg funkcionalnosti ocjenjuje na 70% za Client-Server API i 95% za Federation API.
Beta faza testiranja označava spremnost Dendrite za inicijalnu implementaciju i prijelaz na razvoj s periodičnim ispuštanjem novih verzija. Između verzija sada će se osigurati ažuriranje sheme pohrane podataka u bazi podataka (za razliku od instalacije snimaka iz repozitorija, nakon ažuriranja sadržaj baze neće se gubiti). Promjene koje krše unatrag kompatibilnost, mijenjaju strukturu baze podataka ili zahtijevaju izmjenu konfiguracije, bit će ponuđene samo u značajnim izdanjima. Dendrite se za sada preporučuje za korištenje u monolitnom načinu zajedno sa SGBD-om PostgreSQL za izradu malih izvornih poslužitelja (homeserver) i P2P čvorova. Upotreba SQLite za sada se ne preporučuje zbog neriješenih problema s obradom simultanih operacija.
Od trenutno neimplementiranih mogućnosti u Dendrite ističu se potvrde primitka poruka, oznake o čitanju, push obavijesti, OpenID, povezanost s email-om, pretraživanje na strani poslužitelja, katalog korisnika, liste ignoriranja korisnika, kreiranje grupa i zajednica, procjena prisutnosti korisnika online, gostovska prijava, interakcija s vanjskim mrežama.
Dostupni su osnovni funkcionalnosti za rad s chat sobama (kreaacija, pozivnice, pravila autentikacije), alati federacije sudionika u sobama, sinkronizacija događanja nakon povratka s offline, korisnički računi, profili, indikacija tipkanja, učitavanje i slanje datoteka (Media API), uređivanje poruka, ACL, povezivanje oznaka i rad s popisima uređaja i ključeva za end-to-end šifriranje.
Podsjećamo da platforma za organizaciju decentralizirane komunikacije Matrix koristi HTTPS + JSON kao transport s mogućnošću korištenja WebSocket-a ili protokola temeljenog na +. Sustav se formira kao zajednica poslužitelja koji mogu međusobno komunicirati i stvaraju zajedničku decentraliziranu mrežu. Poruke se repliciraju na svim poslužiteljima kojima su povezani sudionici razmjene poruka. Poruke se šire po poslužiteljima na sličan način kao što se commit-ovi šire među Git repozitorijima. U slučaju privremenog isključenja poslužitelja, poruke se ne gube, već se proslijeđuju korisnicima nakon ponovnog pokretanja poslužitelja. Podržavaju se različite varijante identifikatora korisnika, uključujući email, broj telefona, račun na Facebooku itd.
U mreži ne postoji jedinstvena točka kvara ili kontrole nad porukama. Svi poslužitelji koji sudjeluju u raspravi su ravnopravni.
Svaki korisnik može pokrenuti vlastiti poslužitelj i povezati ga s zajedničkom mrežom. Moguće je stvoriti za interakciju Matrix-a s sustavima temeljenim na drugim protokolima, kao što su usluge za dvosmjernu razmjenu poruka na IRC-u, Facebooku, Telegramu, Skypeu, Hangoutsima, Emailu, WhatsApp-u i Slacku. Osim trenutne razmjene tekstualnih poruka i organizacije chatova, sustav se može koristiti za prijenos datoteka, slanje obavijesti,
organizaciju telekonferencija, obavljanje glasovnih i video poziva. Podržane su i napredne mogućnosti kao što su obavijest o unosu teksta, procjena prisutnosti korisnika online, potvrda čitanja, push obavijesti, pretraživanje na strani poslužitelja, sinkronizacija povijesti i stanja klijenata.
Izvor: opennet.ru
