Matrixi protokolli rakendava sideserveri Dendrite 0.1.0 väljalaskmine

avaldatud Matrixi serveri väljalase Dendriit 0.1.0, mis tähistas arenduse üleminekut beetatestimisfaasi. Dendrite'i arendab detsentraliseeritud sideplatvormi Matrix arendajate tuumikmeeskond ja see on Matrixi serverikomponentide teise põlvkonna juurutaja. Erinevalt viiteserverist Synapse, kirjutatud Pythonis, kood Dendrite areneb Go keeles. Mõlemad ametlikud rakendused on litsentsitud Apache 2.0 litsentsi alusel. Projekti piirides Ruma Eraldi töötatakse välja Matrixi serveri versioon Rust keeles, mis jaotatud MIT litsentsi alusel.

Uue serveri eesmärk on saavutada kõrge efektiivsus, töökindlus ja mastaapsus. Dendriit ületab Synapse'i, vajab töötamiseks oluliselt vähem mälu ja suudab mitme sõlme vahel koormuse tasakaalustamise kaudu skaleerida. Dendrite arhitektuur toetab horisontaalset skaleerimist ja põhineb töötlejate eraldamisel mikroteenuste kujul, kus igal mikroteenuse eksemplaril on andmebaasis oma tabelid. Koormuse tasakaalustaja saadab kõned mikroteenustele. Toimingute paralleelseerimiseks koodis kasutatakse lõime (go rutiine), mis võimaldavad kasutada kõigi CPU tuumade ressursse ilma neid eraldi protsessideks jagamata.

Matrixi protokolli rakendava sideserveri Dendrite 0.1.0 väljalaskmine

Dendriit toetab kahte režiimi: monoliitne ja polüliit. Monoliitses režiimis on kõik mikroteenused pakitud ühte käivitatavasse faili, käivitatakse ühes protsessis ja suhtlevad üksteisega otse. Mitmekomponendilises (klastri) režiimis saab mikroteenuseid käivitada eraldi, sealhulgas jaotada erinevate sõlmede vahel. Komponentide koostoime
mitmekomponendiline režiim viiakse läbi sisemise HTTP API ja platvormi abil Apache Kafka.

Arendus toimub Matrixi protokolli spetsifikatsioonide alusel ja kasutades kahte testikomplekti - Synapse'i ühiseid teste sytest ja uus komplekt Täiendus. Praeguses arendusetapis läbib Dendrite 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 puhul.

Beetatestimise etapp näitab, et Dendrite on valmis esmaseks juurutamiseks ja arendusele üleminekuks koos perioodiliselt moodustatavate uute väljaannetega. Väljaannete vahel uuendatakse nüüd andmebaasis olevate andmete salvestamise skeemi (erinevalt hoidlast viilude installimisest ei lähe andmebaasi sisu pärast värskendamist kaduma). Muudatusi, mis rikuvad tagasiühilduvust, muudavad andmebaasi struktuuri või nõuavad konfiguratsiooni muutmist, pakutakse ainult suuremates versioonides. Dendritit soovitatakse praegu kasutada monoliitrežiimis koos PostgreSQL DBMS-iga, et luua väikseid koduservereid ja P2P sõlme. SQLite'i kasutamine ei ole veel soovitatav, kuna samaaegsete toimingute käsitlemisel on lahendamata probleeme.

Funktsioonid, mida Dendrites pole veel rakendatud, hõlmavad sõnumite vastuvõtmise kinnitusi, lugemismärke, tõukemärguandeid, OpenID-d, e-posti sidumist, serveripoolset otsingut, kasutajate kataloogi, kasutajate ignoreerimise loendeid, rühmade ja kommuunide loomist, kasutajate veebis kohaloleku hindamist, külaliste sisestusi, suhtlemine kolmandate osapoolte võrkudega.

Kasutamiseks on saadaval jututubade põhifunktsioonid (loomine, kutsed, autentimise reeglid), ruumides osalejate liitmise vahendid, sündmuste sünkroonimine pärast võrguühenduseta naasmist, kontod, profiilid, numbrinäidud, failide alla- ja üleslaadimine (Media API), sõnumite redigeerimine, ACL-id, sildi sidumine ning seadmete loendite ja võtmetega töötamine otsast lõpuni krüptimiseks.

Meenutagem, et detsentraliseeritud side korraldamise platvorm Matrix kasutab transpordina HTTPS+JSON-i koos võimalusega kasutada WebSocketsi või sellel põhinevat protokolli. CoAP+müra. Süsteem on moodustatud serverite kogukonnana, mis saavad omavahel suhelda ja on ühendatud ühiseks detsentraliseeritud võrguks. Sõnumid kopeeritakse kõigis serverites, millega sõnumside osalejad on ühendatud. Sõnumeid levitatakse serverite vahel samal viisil, nagu Giti hoidlate vahel edastatakse kohustusi. Serveri ajutise katkestuse korral ei lähe sõnumid kaotsi, vaid edastatakse kasutajatele pärast serveri töö jätkamist. Toetatud on erinevad kasutajatunnuse valikud, sealhulgas e-post, telefoninumber, Facebooki konto jne.

Kogu võrgus pole ühtegi tõrkepunkti ega sõnumite kontrolli. Kõik aruteluga hõlmatud serverid on üksteisega võrdsed.
Iga kasutaja saab käitada oma serverit ja ühendada selle ühisesse võrku. Võimalik on luua lüüsid Matrixi interaktsiooniks teistel protokollidel põhinevate süsteemidega, näiteks ette valmistatud teenused sõnumite kahesuunaliseks saatmiseks IRC-sse, Facebooki, Telegrami, Skype'i, Hangoutsi, e-posti, WhatsAppi ja Slacki. Lisaks kiirsõnumite saatmisele ja vestlustele saab süsteemi kasutada failide edastamiseks, teadete saatmiseks,
telekonverentside korraldamine, hääl- ja videokõnede tegemine. See toetab ka selliseid täiustatud funktsioone nagu tippimisest teatamine, kasutaja võrgus kohaloleku hindamine, lugemiskinnitus, tõukemärguanded, serveripoolne otsing, ajaloo ja kliendi oleku sünkroonimine.

Allikas: opennet.ru

Lisa kommentaar