Lëshimi i Dendrite 0.1.0, serverit të komunikimit me implementimin e protokollit Matrix

Publikuar lëshimi i serverit Matrix Dendrite 0.1.0, që shënoi 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 një zbatim i gjeneratës së dytë të komponentëve të serverëve Matrix. Në krahasim me serverin referencë Synapse, i shkruar në gjuhën Python, kodi Dendrite po zhvillohet është shkruar në gjuhën Go. Të dy realizimet zyrtare shpërndahen nën licencën Apache 2.0. Në kuadër të projektit Ruma po zhvillohet ndaras një variant i serverit Matrix në gjuhën Rust, i cili distribuohet në përputhje me licencën MIT.

Serveri i ri është i fokusuar në arritjen e efikasitetit të lartë, besueshmërisë dhe shkallëzueshmërisë. Dendrite tejkalon Synapse në performancë, kërkon dukshëm më pak memorie për funksionimin e saj dhe mund të shkallëzohet përmes balancimit të ngarkesës në disa nyje. Arkitektura e Dendrite mbështet shkallëzim horizontal dhe bazohet në ndarjen e përpunuesve në formën e mikroshërbimeve, ku çdo instancë mikroshërbimi ka tabelat e saj në DB. Menaxhimi i thirrjeve në mikroshërbime bëhet nga balancuesi i ngarkesës. Për të paralelizuar operacionet në kod, përdoren rrjedha (go routines), duke lejuar shfrytëzimin e burimeve të të gjitha bërthamave të CPU pa u ndarë në procese të veçanta.

Lëshimi i Dendrite 0.1.0, serverit të komunikimit me implementimin e protokollit Matrix

Dendrite mbĂ«shtet punĂ«n nĂ« dy mĂ«nyra — monolite dhe shumĂ«komponentale (polylith). NĂ« mĂ«nyrĂ«n monolite, tĂ« gjithĂ« mikroshĂ«rbimet janĂ« tĂ« pĂ«rmbledhura nĂ« njĂ« skedĂ« ekzekutimi, ekzekutohen nĂ« njĂ« proces dhe komunikojnĂ« mes tyre drejtpĂ«rdrejt. NĂ« mĂ«nyrĂ«n shumĂ«komponentale (kluster), mikroshĂ«rbimet mund tĂ« çelen veçmas, pĂ«rfshirĂ« shpĂ«rndarjen e tyre nĂ« nyje tĂ« ndryshme. NdĂ«rveprimi i komponentĂ«ve nĂ«
modalitetit multifunksionale realizohet përmes HTTP API të brendshëm dhe platformës Apache Kafka.

Zhvillimi bazohet në specifikimet e protokollit Matrix dhe duke përdorur dy grupe testimi - ato të përbashkët me testet Synapse sytest dhe grupin e ri Complement. Në këtë hap të zhvillimit, Dendrite kalon me sukses 56% të testeve të API Client-Server dhe 77% të testeve të API Federation, ndërsa mbulimi aktual i funksionalitetit vlerësohet në 70% për API Client-Server dhe 95% për API Federation.

Faza beta-testimit dëshmon për gatishmërinë e Dendrite për implementimin fillestar dhe kalimin në zhvillimin me formimin periodic të lëshimeve të reja. Tani do të sigurohet përditësimi i skemës së ruajtjes së të dhënave në DB midis lëshimeve (ndryshe nga instalimi i prerjeve nga repozitorit, pas përditësimit përmbajtja e bazës nuk do të humbasë). Ndryshimet që shkelin kompatibilitetin prapa, ndryshojnë strukturën e DB-së ose që kërkojnë ndryshime në konfigurim, do të proponohen vetëm në lëshime të rëndësishme. Dendrite rekomandohet ende të përdoret në modin monolit në bashkëpunim me DBMS PostgreSQL për të ndërtuar serverë të vegjël (homeserver) dhe nyje P2P. Përdorimi i SQLite nuk rekomandohet ende për shkak të problemeve të pandryshushme me menaxhimin e operacioneve të njëkohshme.

Nga funksionet e pa realizuara ende në Dendrite, përmenden konfirmimet e pranimit të mesazheve, shenjat e leximit, njoftimet push, OpenID, lidhja me email, kërkimi në anën e serverit, katalogu i përdoruesve, listat e përdoruesve të injoruar, krijimi i grupeve dhe bashkësive, vlerësimi i pranisë së përdoruesit online, hyrjet si mysafirë, interaksioni me rrjete të jashtme.

Funksionaliteti themelor për përdorimin e dhomave të bisedës është në dispozicion (krijimi, ftesat, rregullat e autentikimit), mjetet për federatën e pjesëmarrësve në dhoma, sinkronizimi i ngjarjeve pas rikthimit nga offline, llogaritë, profillet, indikatori i shkruajtjes, ngarkimi dhe shkëmbimi i skedarëve (Media API), redaktimi i mesazheve, ACL, lidhja e etiketimeve dhe puna me listat e pajisjeve dhe çelësat për enkriptimin 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ë protokoli të bazuar në CoAP+Noise. Sistemi krijohet si një bashkësi serverash që mund të interaktojnë me njëri-tjetrin dhe bashkohen në një rrjet të decentralizuar. Mesazhet riplikohen në të gjitha serverat të cilëve janë lidhur participantët e shkëmbimit të mesazheve. Mesazhet shpërndahen në servera ashtu siç shpërndahen komitetet mes depozitarëve të Git. Në rast të një ndalese përkohshme të serverit, mesazhet nuk humbasin, por iu dërgohen përdoruesve pas rinisjes së serverit. Mbështeten varianta të ndryshme të identifikuesve të përdoruesve, duke përfshirë email, numrin e telefonit, llogarinë në Facebook, etj.

Në rrjet nuk ka një pikë të vetme të dështimit ose kontrolli mbi mesazhet. Të gjitha serverat që mbulojnë diskutimin janë të barabartë me njëri-tjetrin.
Çdo pĂ«rdorues mund tĂ« nisĂ« serverin e tij dhe ta lidhĂ« atĂ« me rrjetin e pĂ«rbashkĂ«t. ËshtĂ« e mundur tĂ« krijohet portat pĂ«r ndĂ«rveprimin e Matrix me sistemet e bazuara nĂ« protokolle tĂ« tjera, pĂ«r shembull, janĂ« pĂ«rgatitur shĂ«rbime pĂ«r dĂ«rgim tĂ« 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 transferimin e skedarĂ«ve, dĂ«rgimin e njoftimeve,
organizimin e telekonferencave, realizimin e thirrjeve zanore dhe video. Po ashtu, mbështeten mundësi të avancuara si njoftimi për shkrimin, vlerësimi i pranisë së përdoruesit online, konfirmimi i leximit, njoftimet push, kërkimi në anën e serverit, sinkronizimi i historisë dhe gjendjes së klientëve.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster