Vrystelling van Dendrite 0.1.0, 'n kommunikasiebediener met 'n implementering van die Matrix-protokol

gepubliseer Matrix bediener vrystelling Dendriet 0.1.0, wat die oorgang van ontwikkeling na die beta-toetsstadium gemerk het. Dendrite word ontwikkel deur die kernspan ontwikkelaars van die gedesentraliseerde kommunikasieplatform Matrix en is geposisioneer as die implementering van die tweede generasie Matrix-bedienerkomponente. Anders as die verwysingsbediener Sinaps, geskryf in Python, kode Dendrite ontwikkel in Go-taal. Beide amptelike implementerings is gelisensieer onder die Apache 2.0-lisensie. In die projek se grense Ruma 'n Weergawe van die Matrix-bediener in die Rust-taal word afsonderlik ontwikkel, wat versprei deur onder die MIT-lisensie.

Die nuwe bediener is daarop gemik om hoë doeltreffendheid, betroubaarheid en skaalbaarheid te bereik. Dendriet presteer beter as Synapse, vereis aansienlik minder geheue om te werk, en kan skaal deur lasbalansering oor verskeie nodusse. Die Dendriet-argitektuur ondersteun horisontale skaal en is gebaseer op die skeiding van hanteerders in die vorm van mikrodienste, waar elke mikrodiensinstansie sy eie tabelle in die databasis het. Die lasbalanseerder stuur oproepe na mikrodienste. Om bewerkings in die kode te paralleliseer, word drade (gaan-roetines) gebruik, wat jou toelaat om die hulpbronne van alle SVE-kerns te gebruik sonder om dit in afsonderlike prosesse te verdeel.

Vrystelling van Dendrite 0.1.0, 'n kommunikasiebediener met 'n implementering van die Matrix-protokol

Dendriet ondersteun twee modusse: monolitiese en polyliet. In monolitiese modus word alle mikrodienste in 'n enkele uitvoerbare lêer verpak, in 'n enkele proses uitgevoer en direk met mekaar interaksie. In multi-komponent (kluster) modus kan mikrodienste afsonderlik geloods word, insluitend versprei oor verskillende nodusse. Interaksie van komponente in
multi-komponent modus word uitgevoer met behulp van die interne HTTP API en platform Apache Kafka.

Ontwikkeling word uitgevoer op grond van die Matrix-protokolspesifikasies en met behulp van twee toetssuites - toetse wat algemeen is vir Synapse stelsel en 'n nuwe stel aanvulling. Op die huidige stadium van ontwikkeling slaag Dendrite 56% van Client-Server API-toetse en 77% van Federation API-toetse, terwyl werklike funksionaliteitsdekking geskat word op 70% vir Client-Server API en 95% vir Federation API.

Die beta-toetsstadium dui aan dat Dendrite gereed is vir aanvanklike implementering en oorgang na ontwikkeling met nuwe vrystellings wat periodiek gevorm word. Tussen vrystellings sal die databergingskema in die databasis nou opgedateer word (in teenstelling met die installering van skywe vanaf die bewaarplek, sal die inhoud van die databasis nie verlore gaan na die opdatering nie). Veranderinge wat terugwaartse versoenbaarheid verbreek, die databasisstruktuur verander of konfigurasieveranderings vereis, sal slegs in groot vrystellings aangebied word. Tans word aanbeveel dat Dendrite in monolitiese modus gebruik word in samewerking met die PostgreSQL DBMS om klein tuisbedieners en P2P-nodes te skep. Die gebruik van SQLite word nog nie aanbeveel nie weens onopgeloste probleme met die hantering van gelyktydige bewerkings.

Kenmerke wat nog nie in Dendrite geïmplementeer is nie, sluit in boodskapontvangsbevestigings, leesmerke, stootkennisgewings, OpenID, e-posbinding, bedienerkant-soektog, gebruikersgids, gebruiker-ignoreringslyste, skep van groepe en gemeenskappe, assessering van gebruikers aanlyn-teenwoordigheid, gasinsette, interaksie met derdeparty-netwerke.

Beskikbaar vir gebruik is basiese funksionaliteit vir kletskamers (skepping, uitnodigings, stawingreëls), maniere van federasie van deelnemers in kamers, sinchronisasie van gebeure na terugkeer van vanlyn af, rekeninge, profiele, skakelaanwysing, aflaai en oplaai van lêers (Media API), redigeer boodskappe, ACL's, merkerbinding en werk met lyste toestelle en sleutels vir end-tot-end-enkripsie.

Laat ons onthou dat die platform vir die organisering van gedesentraliseerde kommunikasie Matrix HTTPS + JSON gebruik as 'n vervoer met die moontlikheid om WebSockets of 'n protokol gebaseer op COAP+Geraas. Die stelsel word gevorm as 'n gemeenskap van bedieners wat met mekaar kan kommunikeer en in 'n gemeenskaplike gedesentraliseerde netwerk verenig word. Boodskappe word gerepliseer oor alle bedieners waaraan die boodskapdeelnemers gekoppel is. Boodskappe word oor bedieners versprei op dieselfde manier as wat commits tussen Git-bewaarplekke gepropageer word. In die geval van 'n tydelike bedieneronderbreking, gaan boodskappe nie verlore nie, maar word aan gebruikers oorgedra nadat die bediener werking hervat het. Verskeie gebruikers-ID-opsies word ondersteun, insluitend e-pos, telefoonnommer, Facebook-rekening, ens.

Daar is geen enkele punt van mislukking of boodskapbeheer oor die netwerk nie. Alle bedieners wat deur die bespreking gedek word, is gelyk aan mekaar.
Enige gebruiker kan hul eie bediener bestuur en dit aan 'n gemeenskaplike netwerk koppel. Dit is moontlik om te skep poorte vir interaksie van Matrix met stelsels gebaseer op ander protokolle, byvoorbeeld, voorberei dienste vir tweerigting-boodskappe na IRC, Facebook, Telegram, Skype, Hangouts, e-pos, WhatsApp en Slack. Benewens kitsboodskappe en kletse, kan die stelsel gebruik word om lêers oor te dra, kennisgewings te stuur,
organiseer telekonferensies, maak stem- en video-oproepe. Dit ondersteun ook sulke gevorderde kenmerke soos kennisgewing van tik, evaluering van gebruikers aanlyn-teenwoordigheid, leesbevestiging, stootkennisgewings, soektog aan die bediener, sinchronisasie van geskiedenis en kliëntstatus.

Bron: opennet.ru

Voeg 'n opmerking