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

Objavljeno izdanje Matrix poslužitelja Dendrite 0.1.0, š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 Synapse, napisanog na Pythonu, kod Dendrite razvija se na jeziku Go. Obje službene implementacije distribuiraju se pod licencom Apache 2.0. U okviru projekta Ruma odvojeno se razvija varijanta Matrix poslužitelja na jeziku Rust, koja distribuira se 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.

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

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 Apache Kafka.

Razvoj se vodi na temelju specifikacija Matrix protokola i korištenjem dva skupa testova — zajedničkih testova s Synapse sytest i novog skupa Complement. 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 CoAP+Noise. 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 mostove za interakciju Matrix-a s sustavima temeljenim na drugim protokolima, kao što su pripremljeni 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

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster