„Dendrite“ yra ryšių serveris tai yra būtis sukūrė „Matrix“ komanda ir jis laikomas antrosios „Matrix“ serverio komponentų kartos įgyvendinimu.
Skirtingai nuo „Python“ parašyto „Synapse“ nuorodų serverio, „Dendrite“ kodas yra sukurtas „Go“. Abu oficialūs diegimai platinami pagal „Apache 2.0“ licenciją.
Vykdant „Ruma“ projektą kuriama atskira „Matrix“ serverio versija „Rust“ kalba, kuri platinama pagal MIT licenciją.
Naujas serveris siekiama didelio efektyvumo, patikimumo ir mastelio.
Apie „Dendrite“
Dendritas našumu lenkia „Synapse“, tam reikia daug mažiau atminties, kad veiktų, ir ji gali būti keičiama paskirstant apkrovą keliuose mazguose.
Dendrito architektūra palaiko horizontalų mastelį ir yra pagrįstas valdiklių atskyrimu mikropaslaugų pavidalu, kur kiekvienas mikro paslaugos egzempliorius turi savo lenteles duomenų bazėje.
Krovinių balansuotojas yra atsakingas už skambučių siuntimą į mikropaslaugas. Temos („go rutines“) naudojamos operacijoms kodu lyginti, kurios leidžia naudoti visų procesoriaus branduolių išteklius, jų neskirstant į atskirus procesus.
Dendritas palaiko darbą dviem režimais: monolitinis ir daugiakomponentis (polilitas).
- Monolitiniu režimu Visos mikro paslaugos yra susietos vykdomajame faile, vykdomos procese ir tiesiogiai sąveikauja tarpusavyje.
- Daugiakomponentiu režimu (klasteris), mikropaslaugas galima paleisti atskirai, net esant skirtingiems mazgams. Komponentų sąveika daugiakomponentiniu režimu atliekama naudojant vidinę HTTP API ir „Apache Kafka“ platformą.
Kūrimas vykdomas remiantis „Matrix“ protokolo specifikacijomis ir naudojant du testų rinkinius: bendruosius „Synapse“ testus ir naująjį „Complement“ rinkinį.
Dabartiniame plėtros etape „Dendrite“ sėkmingai išlaikė 56% testų kliento-serverio API ir 77% federacijos API testų, tuo tarpu faktinė funkcijų aprėptis yra 70% kliento-serverio API ir 95% federacijos API.
Beta etapas rodo, kad „Dendrite“ yra pasirengusi pradiniam diegimui ir perėjimas prie kūrimo reguliariais naujais leidimais. Tarp leidimų dabar bus atnaujinta duomenų bazės saugojimo schema (skirtingai nei diegiant gabalus iš saugyklos, po atnaujinimo duomenų bazės turinys nebus prarastas).

Pakeitimai, pažeidžiantys atgalinį suderinamumą, keičiantys duomenų bazės struktūrą arba reikalaujantys konfigūracijos pakeitimų, bus siūlomi tik svarbiausiuose leidimuose.
Šiuo metu „Dendrite“ rekomenduojama naudoti monolitiniu režimu kartu su „PostgreSQL“ DBVS sukurti mažus namų serverius ir P2P mazgus. SQLite dar nerekomenduojama naudoti dėl neišspręstų problemų, susijusių su tuo pačiu operacijų tvarkymu.
Funkcijos dar neįdiegtos „Dendrite“ įtraukti: pranešimų patvirtinimas, žymės, tiesioginiai pranešimai, „OpenID“, el. pašto nuoroda, paieška serveryje, vartotojo katalogas, naudotojų ignoruojami sąrašai, grupių ir bendruomenių kūrimas, vartotojo buvimo internete įvertinimas , svečių indėlis, sąveika su trečiųjų šalių tinklais.
Pagrindinis pokalbių kambarių veikimo funkcionalumas (kūrimas, kvietimai, autentifikavimo taisyklės), dalyvių federacijos priemonės patalpose, įvykių sinchronizavimas grįžus iš neprisijungus, paskyros, profiliai, rinkimo indikacija, atsisiuntimas ir įkėlimas. Redaguoti failus („Media API“) galima naudoti pranešimams, ACL, žymėjimams ir „end-to-end“ šifravimo įrenginiams bei raktų sąrašams.
Prisiminkite, kad decentralizuoto ryšio organizavimo platforma „Matrix“ naudoja „HTTPS + JSON“ kaip transportas, turintis galimybę naudoti „WebSockets“ arba protokolą, pagrįstą „CoAP + Noise“. Sistema yra suformuota kaip serverių bendruomenė, galinti sąveikauti tarpusavyje ir sujungti į bendrą decentralizuotą tinklą.
Pranešimai yra pakartojami visuose serveriuose su kuriuo susieti pranešimų dalyviai. Pranešimai platinami tarp serverių panašiai, kaip vykdomi įsipareigojimai tarp „Git“ saugyklų.
Fuente: https://matrix.org