Matrix-serveri väljalase , mis tähistab arenduse üleminekut beetakatsetuse faasi. Dendrite areneb koos peamise arendusmeeskonnaga, kes toetab detsentraliseeritud kommunikatsiooniplatvormi Matrix ning positsioneeritakse kui Matrixi teise põlvkonna serverikomponentide rakendus. Erinevalt standardserverist , mis on kirjutatud Pythonis, on Dendrite kood kirjutatud Go keeles. Mõlemad ametlikud rakendused levivad Apache 2.0 litsentsi all. Projekti raames areneb eraldi Matrixi serveri variant, mis on kirjutatud Rust keeles, mis MIT litsentsi alusel.
Uus server on suunatud kõrge tõhususe, usaldusväärsuse ja skaleeritavuse saavutamisele. Dendrite jõudlus ületab Synapse oma, nõudes töötamiseks oluliselt vähem mälu ja suudab koormust mitme sõlme vahel tasakaalustada. Dendrite arhitektuur toetab horisontaalset skaleerimist ja põhineb töötlejate jagamisel mikroteenustena, kus iga mikroteenuse eksemplar omab oma andmebaasi tabeleid. Mikroteenuste poole pöördumist haldab koormustasakaalustaja. Operatsioonide paralellikleks kasutatakse lõime (go routines), mis võimaldavad kasutada kõigi CPU südamike ressursse ilma eraldi protsesside jagamiseta.
Dendrite toetab töötamist kahes režiimis — monoliitses ja mitmekomponentses (polylith). Monoliitses režiimis on kõik mikroteenused koondatud ühte täitmisfaili, toimides ühes protsessis ja omavahel otseselt suhtledes. Mitmekomponentses (klaster) režiimis võivad mikroteenused töötada eraldi, sealhulgas jaguneda erinevatele sõlmedele. Komponentide vaheline suhtlemine
mitmekomponentses režiimis toimub sisemise HTTP API ja platvormi kaudu .
Arendust tehakse Matrixi protokolli spetsifikatsioonide põhjal ja kahe testikogu abil — ühiste testidega Synapse'iga ja uue kogumiga . Praeguses arenguetapis läbib Dendrite edukalt 56% Client-Server API testidest ja 77% Federation API testidest, samal ajal kui tegelik funktsionaalsuse katvus on hinnanguliselt 70% Client-Server API jaoks ja 95% Federation API jaoks.
B-etap testimisnäitab, et Dendrite on valmis esialgseks rakendamiseks ja arenguks, kus perioodiliselt luuakse uusi versioone. Versioonide vahel tagatakse nüüd andmebaasi salvestusstruktuuri uuendamine (erinevalt lõikude installimisest hoidlast, pärast uuendust ei kaota andmebaasi sisu). Tagasisidet rikkuda, andmebaasi struktuuri muuta või konfiguratsiooni kohandamist vajavaid muudatusi pakutakse ainult olulistes väljaannetes. Dendrite kasutamist soovitatakse praegu monoliitses režiimis koos PostgreSQL andmebaasiga väikeste algsete serverite (homeserver) ja P2P-sõlmede loomiseks. SQLite kasutamine ei ole soovitatav, kuna on lahendamata probleeme samaaegse töötlemisega.
Dendrites veel rakendamata võimalike funktsioonide hulgas on sõnumite kättesaamise kinnitamine, lugemise märgid, push-teated, OpenID, e-posti sidumine, serveripoolne otsing, kasutajate kataloog, kasutajate ignoreerimiste nimekirjad, rühmade ja kogukondade loomine, kasutaja kohaloleku hindamine online-is, külalislogimine, suhtlemine kolmandate osapoolte võrkudega.
On saadaval põhi funktsionaalsus jututubade tööks (loomine, kutse saatmine, autentimise reeglid), osalejate föderatsioon tubades, sündmuste sünkroniseerimine pärast offline-st naasmist, kasutajakontod, profiilid, sisendi indikaator, failide üleslaadimine ja jagamine (Media API), sõnumite redigeerimine, ACL, siltide ühendamine ja seadmete ning lõpp-krüptimise võtmete nimekirjade haldamine.
Me meenutame, et Matrixi detsentraliseeritud kommunikatsiooni platvorm kasutab transpordina HTTPS+JSON koos võimalusega kasutada WebSocket-e või protokolli, mis põhineb +. Süsteem kujuneb välja serverite koostöös, mis saavad omavahel suhelda ning moodustavad koos üldise detsentraliseeritud võrgu. Teated replitseeritakse kõigis serverites, kuhu on ühendatud sõnumivahetuse osalejad. Teated levivad serverite vahel sarnaselt sellele, kuidas commit'id levivad Git-hoidlatest. Serveri ajutise väljalülitamise korral ei kao teated, vaid edastatakse kasutajatele pärast serveri taasaktiveerimist. Toetatakse erinevaid kasutaja identifikaatoreid, sealhulgas e-posti, telefoninumbrit, Facebooki kontot jne.
Võrgus ei ole ühtegi rikkepunkti ega kontrolli sõnumite üle. Kõik serverid, mis katavad arutelu, on omavahel võrdsed.
Iga kasutaja võib käivitada oma serveri ja ühendada selle üldise võrgu. On võimalik luua Matrixi interaktsiooniks teiste protokollide põhiseid süsteeme, näiteks teenuseid kahepoolseks sõnumivahetuseks IRC, Facebooki, Telegrami, Skype'i, Hangoutsi, e-posti, WhatsAppi ja Slackiga. Peale瞬sed tekstipõhiste sõnumite vahetuse ja vestluste korraldamise saab süsteemi kasutada failide edastamiseks, teavituste saatmiseks,
telekonverentside korraldamiseks, hääl- ja videokõnede tegemiseks. Samuti toetatakse selliseid täiendavaid funktsioone nagu teksti sisestamisest teavitamine, kasutaja kohaloleku hindamine, lugemise kinnitamine, push-teavitused, serveripoolne otsing, ajaloo ja kliendi seisundi sünkroniseerimine.
Allikas: opennet.ru
