lëshimi i serverit Matrix , i cili shënon kalimin e zhvillimit në fazën e testimit beta. Dendrite zhvillohet nga ekipi kryesor i zhvilluesve të platformës së komunikimit të decentralizuar Matrix dhe pozicionohet si realizim i gjeneratës së dytë të komponentëve të serverëve Matrix. Në dallim nga serveri referencë , i shkruar në gjuhën Python, kodi i Dendrite është shkruar në gjuhën Go. Të dy realizimet zyrtare shpërndahen nën licencën Apache 2.0. Në kuadër të projektit veçmas zhvillohet një variant i serverit Matrix në gjuhën Rust, i cili nën licencën MIT.
Serveri i ri synon të arrijë efikasitet të lartë, besueshmëri dhe shkallëzim. Dendrite tejkalon Synapse në performancë, kërkon për funksionimin e tij ndjeshëm më pak memorie dhe mund të shkallëzohet përmes balancimit të ngarkesës në disa nyje. Arkitektura e Dendrite mbështet shkallëzimin horizontal dhe bazohet në ndarjen e përpunuesve në formën e mikrosherbimeve, ku çdo shembull mikrosherbimi ka tabelat e veta në DB. Menaxhimi i funksioneve të mikrosherbimeve merret nga balancuesi i ngarkesës. Për të paralelizuar operacionet në kod përdoren rrugët (go routines), që lejojnë shfrytëzimin e burimeve të të gjitha bërthamave të CPU pa u ndarë në procese të veçanta.
Dendrite mbĂ«shtet funksionimin nĂ« dy moda â monolitik dhe multikomponent (polylith). NĂ« modin monolitik, tĂ« gjitha mikroshĂ«rbimet janĂ« tĂ« kompozuara nĂ« njĂ« skedar ekzekutiv, ekzekutohen nĂ« njĂ« proces dhe ndĂ«rveprojnĂ« direkt me njĂ«ra-tjetrĂ«n. NdĂ«rsa nĂ« modin multikomponent (klaster), mikroshĂ«rbimet mund tĂ« fillohen veç e veç, duke pĂ«rfshirĂ« shpĂ«rndarjen nĂ« nod tĂ« ndryshĂ«m. NdĂ«rveprimi i kompozantĂ«ve nĂ«
modi shumëkomponental realizohet përmes një API HTTP të brendshëm dhe platformës .
Zhvillimi bazohet nĂ« specifikimet e protokollit Matrix dhe duke pĂ«rdorur dy grupe testimi â testet e pĂ«rbashkĂ«ta me Synapse dhe njĂ« grup tĂ« ri . NĂ« fazĂ«n aktuale tĂ« zhvillimit Dendrite kalon me sukses 56% tĂ« testeve tĂ« API-sĂ« Client-Server dhe 77% tĂ« testeve tĂ« API-sĂ« Federation, ndĂ«rkohĂ« qĂ« mbulimi real i funksionalitetit vlerĂ«sohet nĂ« 70% pĂ«r API-nĂ« Client-Server dhe 95% pĂ«r API-nĂ« Federation.
Faza e testimit beta tregon gatishmërinë e Dendrite për një zbatim të hershëm dhe kalimin në zhvillimin me formimin periodik të versioneve të reja. Ndërmjet versioneve tani do të sigurohet përditësimi i skemës së ruajtjes së të dhënave në DB (ndryshe nga instalimi i prerjeve nga repozitori, pas përditësimit përmbajtja e bazës nuk do të humbasë). Ndryshimet që cënojnë përputhshmërinë e prapme, ndryshojnë strukturën e DB-së ose kërkojnë rregullim të konfigurimit, do të propozojnë vetëm në lëshimet e rëndësishme. Dendrite aktualisht rekomandohet të përdoret në modalitetin monolitik së bashku me DBMS PostgreSQL për krijimin e serverëve të vogla burimore (homeserver) dhe nyjave P2P. Përdorimi i SQLite aktualisht nuk rekomandohet për shkak të problemeve të pa zgjidhura me përpunimin e operacioneve paralel.
Nga mundësitë që nuk janë realizuar ende në Dendrite përmenden konfirmimi i pranimit të mesazheve, etiketat për leximin, njoftimet push, OpenID, lidhja me email, kërkimi në anën e serverit, katalogu i përdoruesve, listat e injorimit të përdoruesve, krijimi i grupeve dhe bashkësive, vlerësimi i pranishëm të përdoruesit online, hyrjet për mysafirë, ndërveprimi me rrjetet e jashtme.
Janë të disponueshme për përdorim funksionaliteti bazë për punën e dhomave të bisedës (krijimi, ftesat, rregullat e autentifikimit), mjetet për federatën e pjesëmarrësve në dhoma, sinkronizimi i ngjarjeve pas kthimit nga offline, llogaritë, profilet, indikacioni i shkrim-leximit, ngarkimi dhe dorëzimi i skedarëve (Media API), redaktimi i mesazheve, ACL, lidhja e etiketave dhe puna me listat e pajisjeve dhe çelësat për kriptimin end-to-end.
Kujtojmë se platforma për organizimin e komunikimeve të decentralizuara Matrix përdor si transport HTTPS+JSON me mundësinë e përdorimit të WebSockets ose një protokolli të bazuar mbi +. Sistemi formohet si një federatë serverësh, të cilët mund të ndërveprojnë me njëri-tjetrin dhe bashkohen në një rrjet të përbashkët të decentralizuar. Mesazhet replikohen në të gjitha serverët, me të cilët janë të lidhur pjesëmarrësit e shkëmbimit të mesazheve. Mesazhet shpërndahen midis serverëve në mënyrë të ngjashme me si përhapen commit-et midis depozitave Git. Në rast të një ndërprerjeje përkohësore të serverit, mesazhet nuk humbasin, por u dërgohen përdoruesve pas rifillimit të funksionimit të serverit. Mbështeten variante të ndryshme të identifikuesve të përdoruesit, përfshirë email, numrin e telefonit, llogarinë në Facebook etj.
Në rrjet nuk ka një pikë të vetme dështimi ose kontrolli mbi mesazhet. Të gjithë serverët që përfshijnë diskutimin janë të barabartë me njëri-tjetrin.
Ădo pĂ«rdorues mund tĂ« fillojĂ« serverin e tij dhe ta lidhĂ« atĂ« me rrjetin e pĂ«rgjithshĂ«m. ĂshtĂ« e mundur krijimi i pĂ«r ndĂ«rveprimin e Matrix me sistemet tĂ« bazuara nĂ« protokole tĂ« tjera, pĂ«r shembull, shĂ«rbime pĂ«r dĂ«rgimin dyanshĂ«m tĂ« mesazheve nĂ« IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp dhe Slack. PĂ«rveç shkĂ«mbimit tĂ« menjĂ«hershĂ«m tĂ« mesazheve tekstuale dhe organizimit tĂ« bisedave, sistemi mund tĂ« pĂ«rdoret pĂ«r dĂ«rgimin e skedarĂ«ve, dĂ«rgimin e njoftimeve,
organizatat e telekonferencave, realizimi i thirrjeve dhe videothirrjeve. Po ashtu mbështeten mundësi të avancuara si njoftimet për shkrimin e tekstit, vlerësimi i pranishmërisë së përdoruesit online, konfirmimi i leximit, njoftimet push, kërkimi në anën e serverit, dhe sinkronizimi i historisë dhe statusit të klientëve.
Burimi: opennet.ru
