Matrix-serveri väljaanne , mis tähistab arenduse üleminekut beetatestimise etappi. Dendrite areneb edasi detsentraliseeritud kommunikatsiooniplatvormi Matrix põhimeeskonna poolt ja positsioneeritakse kui Matrixi serverikomponentide teise põlvkonna ellujutus. Erinevalt viidatud serverist , mis on kirjutatud Pythonis, on Dendrite'i kood kirjutatud Go programmeerimiskeeles. Mõlemad ametlikud ellujutused levitatakse Apache 2.0 litsentsi alusel. Projekti raames areneb eraldi Matrix-serveri variant, mis on kirjutatud Rusti keeles, mis on MIT litsentsi all.
Uus server on suunatud kõrge efektiivsuse, usaldusväärsuse ja skaleeritavuse saavutamisele. Dendrite jõudlus ületab Synapse'i, vajab oluliselt vähem mälu ja saab skaleeruda koormuse tasakaalustamise kaudu mitmele sõlmele. Dendrite arhitektuur toetab horisontaalset skaleerimist ja põhineb mikroteenuste jagamisel, kus igal mikroteenuse eksemplaril on oma andmebaasitabelid. Mikroteenuste haldamise eest vastutab koormuse tasakaalustaja. Operatsioonide paralleelseks teostamiseks koodis kasutatakse lõime (go routines), mis võimaldavad kasutada kõiki CPU tuumade ressursse ilma eraldatud protsesside moodustamiseta.
Dendrite toetab tööd kahes režiimis — monoliitses ja mitmekomponentses (polylith). Monoliitses režiimis on kõik mikroteenused koondatud ühte täidetavasse faili, töötavad ühes protsessis ja suhtlevad omavahel otse. Mitmekomponentses (klaster) režiimis saavad mikroteenused töötada eraldi, sealhulgas jaotatuna erinevatele sõlmedele. Komponentide vaheline suhtlemine
mitmekomponentses režiimis toimub see sisemise HTTP API ja platvormi abil .
Arendamine toimub Matrix protokolli spetsifikatsioonide alusel ja kahe testkomplekti abil — ühised testid Synapse'iga ja uus komplekt . Praeguses arenguetapis läbib Dendrite edukalt 56% Client-Server API testidest ja 77% Federation API testidest, samas kui tegelik funktsionaalsuse katvus on hinnanguliselt 70% Client-Server API ja 95% Federation API jaoks.
Beetatesti etapp näitab, et Dendrite on valmis esmasteks juurutamisteks ja arenduse sujuvaks üleminekuks uute väljaannete regulaarse genereerimisega. Väljaannete vahel tagatakse andmebaasi salvestusskeemi värskendamine (erinevalt lõigetest, mis on saadud repostaariumist, ei kao andmebaasi sisu pärast värskendust). Tagasitoimetamisest rikkuvad muudatused, mis muudavad andmebaasi struktuuri või vajavad konfiguratsiooni muutmist, pakutakse ainult olulistes väljaannetes. Dendrite kasutamine monoliitsetes režiimides koos PostgreSQL andmebaasiga on soovitatav väikeste päiste serverite (homeserver) ja P2P-sõlmede loomiseks. SQLite'i kasutamine ei ole soovitatav lahenemata probleemide tõttu samaaegsete toimingute töötlemisel.
Dendrite'i veel rakendamata võimalustest on märgitud sõnumite kinnitus, lugemise märgid, push-teavitused, OpenID, e-posti sidumine, serveripoolne otsing, kasutajate kataloog, kasutajate blokeerimisloendid, rühmade ja kogukondade loomine, kasutaja kohaloleku hindamine online'is, külalislogimised, koostöö kolmandate osapoolte võrgustikega.
Saadaval on põhifunktsionaalsus vestlustoade haldamiseks (loomine, kutsete saatmine, autentimise reeglid), osalejate föderatsiooni vahendid tubades, sündmuste sünkroonimine pärast offline'ist naasmist, kasutajakontod, profiilid, märguande indikeerimine, failide üleslaadimine ja allalaadimine (Media API), sõnumite redigeerimine, ACL, siltide sidumine ning seadmete ja krüptovõtmete loendite haldamine.
Tuletame meelde, et Matrixi detsentraliseeritud suhtlusplatvorm kasutab transpordina HTTPS+JSON, võimaldades kasutada WebSocket'e või protokolli, mis põhineb +. Süsteem kujuneb serverite koosolekuks, mis saavad omavahel suhelda ja moodustavad ühtse detsentraliseeritud võrgu. Teated replitseeritakse kõigis serverites, millele osalejad on ühendatud. Teated levivad serverite vahel sarnaselt sellele, kuidas commit'id liikuvad Git-repositooriumides. Serveri ajutise katkestamise korral teated ei kao, vaid edastatakse kasutajatele serveri taasaktiveerimisel. Toetatakse erinevaid kasutajaidentifikaatoreid, sealhulgas e-posti, telefoninumbrit, Facebooki kontot jne.
Võrgus puudub üksainus tõrkepunkt või kontrolliteema. Kõik serverid, mis osalevad arutelus, on omavahel võrdsed.
Iga kasutaja võib käivitada oma serveri ja liita selle ühisvõrku. Võimalik on luua Matrixi ja teiste protokollide süsteemide vaheliseks suhtlemiseks, näiteks, teenused kahepoolsete sõnumite saatmiseks IRC-s, Facebookis, Telegramis, Skype'is, Hangouts'is, e-kirjade, WhatsApp'is ja Slackis. Lisaks tekstisõnumite vahetamisele ja vestluste korraldamisele saab süsteemi kasutada failide edastamiseks, teavituste saatmiseks,
telekonverentside korraldamiseks, hääl- ja videokõnede tegemiseks. Toetatakse ka edasijõudnud funktsioone nagu tekstisisestamise teavitamine, kasutaja kohaloleku hindamine, lugemise kinnitamine, push-teavitused, serveripoolne otsimine, ajaloosünkroonimine ja klientide oleku jälgimine.
Allikas: opennet.ru
