Liberigo de Dendrito 0.1.0, komunika servilo kun efektivigo de la Matrix-protokolo

eldonita Liberigo de Matrico-servilo Dendrito 0.1.0, kiu markis la transiron de evoluo al la beta-testa stadio. Dendrito estas disvolvita de la kerna teamo de programistoj de la malcentralizita komunika platformo Matrix kaj estas poziciigita kiel la efektivigo de la dua generacio de Matrix-servilaj komponantoj. Male al la referenca servilo Synapse, skribita en Python, kodo Dendrito disvolviĝas en la lingvo Go. Ambaŭ oficialaj efektivigoj estas licencitaj sub la licenco Apache 2.0. En la limoj de la projekto Ruma Aparte disvolviĝas versio de la Matrix-servilo en la Rust-lingvo, kiu distribuita de sub la MIT-licenco.

La nova servilo celas atingi altan efikecon, fidindecon kaj skaleblon. Dendrito superas Sinapson, postulas signife malpli da memoro por funkcii, kaj povas skali tra ŝarĝbalancado tra multoblaj nodoj. La Dendrite-arkitekturo subtenas horizontalan skalon kaj baziĝas sur la apartigo de pritraktantoj en la formo de mikroservoj, kie ĉiu mikroservo-instanco havas siajn proprajn tabelojn en la datumbazo. La ŝarĝbalancilo sendas vokojn al mikroservoj. Por paraleligi operaciojn en la kodo, fadenoj (iru rutinoj) estas uzataj, kiuj permesas vin uzi la rimedojn de ĉiuj CPU-kernoj sen dividi ilin en apartajn procezojn.

Liberigo de Dendrito 0.1.0, komunika servilo kun efektivigo de la Matrix-protokolo

Dendrito subtenas du reĝimojn: monolitan kaj polilitan. En monolita reĝimo, ĉiuj mikroservoj estas enpakitaj en ununura rulebla dosiero, efektivigita en ununura procezo, kaj interagas rekte unu kun la alia. En plurkomponenta (areto) reĝimo, mikroservoj povas esti lanĉitaj aparte, inkluzive distribuitaj tra malsamaj nodoj. Interago de komponantoj en
plurkomponenta reĝimo estas efektivigita per la interna HTTP-API kaj platformo Apache Kafka.

Disvolviĝo estas efektivigita surbaze de la Matrix-protokolo-specifoj kaj uzante du testajn arojn - testojn komunaj al Synapse sytest kaj nova aro Komplemento. En la nuna stadio de evoluo, Dendrito trapasas 56% de Kliento-Servilo API-testoj kaj 77% de Federation API-testoj, dum fakta funkcieca priraportado estas taksita je 70% por Client-Server API kaj 95% por Federation API.

La beta-testa etapo indikas, ke Dendrito estas preta por komenca efektivigo kaj transiro al evoluo kun novaj eldonoj periode formitaj. Inter eldonoj, la datumstokado en la datumbazo nun estos ĝisdatigita (kontraste kun instali tranĉaĵojn el la deponejo, la enhavo de la datumbazo ne perdiĝos post la ĝisdatigo). Ŝanĝoj kiuj rompas malantaŭan kongruecon, ŝanĝas la datumbazan strukturon aŭ postulas agordajn ŝanĝojn nur estos ofertitaj en ĉefaj eldonoj. Dendrito estas nuntempe rekomendita esti uzata en monolita reĝimo kune kun la PostgreSQL DBMS por krei malgrandajn hejmajn servilojn kaj P2P-nodojn. La uzo de SQLite ankoraŭ ne estas rekomendita pro nesolvitaj problemoj pri traktado de samtempaj operacioj.

Trajtoj kiuj ankoraŭ ne estis efektivigitaj en Dendrito inkludas mesaĝkvitancon konfirmojn, legomarkojn, puŝajn sciigojn, OpenID, retpoŝtan ligadon, servilflankan serĉon, uzant-dosierujon, uzant-ignorlistojn, kreadon de grupoj kaj komunumoj, taksado de uzantinterreta ĉeesto, gasto-enigaĵoj, interago kun triaj retoj.

Disponeblaj por uzo estas bazaj funkcioj por babilejoj (kreado, invitoj, aŭtentikigreguloj), rimedoj de federacio de partoprenantoj en ĉambroj, sinkronigado de eventoj post reveno de eksterrete, kontoj, profiloj, diskindiko, elŝutado kaj alŝuto de dosieroj (Media API), redaktado de mesaĝoj, ACL-oj, etikedo ligado kaj laborado kun listoj de aparatoj kaj ŝlosiloj por fin-al-fina ĉifrado.

Ni memoru, ke la platformo por organizi malcentralizitajn komunikadojn Matrix uzas HTTPS+JSON kiel transportilon kun la kapablo uzi WebSockets aŭ protokolon bazitan sur CoAP+bruo. La sistemo estas formita kiel komunumo de serviloj, kiuj povas interagi unu kun la alia kaj estas kunigitaj en komunan malcentralizitan reton. Mesaĝoj estas reproduktitaj tra ĉiuj serviloj al kiuj la mesaĝaj partoprenantoj estas konektitaj. Mesaĝoj estas disvastigitaj tra serviloj en la sama maniero kiel kommits estas disvastigitaj inter Git-deponejoj. Okaze de provizora malfunkcio de la servilo, mesaĝoj ne estas perditaj, sed estas transdonitaj al uzantoj post kiam la servilo rekomencas funkciadon. Diversaj opcioj de uzantidentigilo estas subtenataj, inkluzive de retpoŝto, telefonnumero, Facebook-konto ktp.

Ekzistas neniu ununura punkto de fiasko aŭ mesaĝkontrolo tra la reto. Ĉiuj serviloj kovritaj de la diskuto estas egalaj unu al la alia.
Ĉiu uzanto povas funkciigi sian propran servilon kaj konekti ĝin al komuna reto. Eblas krei enirejoj por interago de Matrix kun sistemoj bazitaj sur aliaj protokoloj, ekzemple, preparita servoj por dudirekta sendo de mesaĝoj al IRC, Facebook, Telegram, Skype, Hangouts, Retpoŝto, WhatsApp kaj Slack. Krom tujaj tekstaj mesaĝoj kaj babilejoj, la sistemo povas esti uzata por transdoni dosierojn, sendi sciigojn,
organizante telekonferencojn, farante voĉajn kaj videovokojn. Ĝi ankaŭ subtenas tiajn altnivelajn funkciojn kiel sciigo pri tajpado, taksado de uzantinterreta ĉeesto, legado-konfirmo, puŝaj sciigoj, servilflanka serĉo, sinkronigado de historio kaj kliento-statuso.

fonto: opennet.ru

Aldoni komenton