Lëshimi i Dendrite 0.1.0, një server komunikimi me një implementim të protokollit Matrix

botuar Lëshimi i serverit të matricës Dendriti 0.1.0, e cila shënoi kalimin e zhvillimit në fazën e testimit beta. Dendrite po zhvillohet nga ekipi kryesor i zhvilluesve të platformës së decentralizuar të komunikimit Matrix dhe pozicionohet si implementimi i gjeneratës së dytë të komponentëve të serverit Matrix. Ndryshe nga serveri i referencës Synapse, shkruar në Python, kodi Dendrite po zhvillohet në gjuhën Go. Të dy implementimet zyrtare janë të licencuara nën licencën Apache 2.0. Në kufijtë e projektit Dhoma Një version i serverit Matrix në gjuhën Rust po zhvillohet veçmas, i cili shperndare nga nën licencën MIT.

Serveri i ri synon të arrijë efikasitet, besueshmëri dhe shkallëzim të lartë. Dendriti tejkalon Synapse, kërkon shumë më pak memorie për të vepruar dhe mund të shkallëzohet përmes balancimit të ngarkesës nëpër nyje të shumta. Arkitektura Dendrite mbështet shkallëzimin horizontal dhe bazohet në ndarjen e mbajtësve në formën e mikroshërbimeve, ku çdo shembull i mikroshërbimit ka tabelat e veta në bazën e të dhënave. Balancuesi i ngarkesës dërgon thirrje në mikroshërbime. Për të paralelizuar operacionet në kod, përdoren threads (rutinat e lëvizjes), të cilat ju lejojnë të përdorni burimet e të gjitha bërthamave të CPU-së pa i ndarë ato në procese të veçanta.

Lëshimi i Dendrite 0.1.0, një server komunikimi me një implementim të protokollit Matrix

Dendriti mbështet dy mënyra: monolit dhe polilit. Në modalitetin monolit, të gjitha mikroshërbimet paketohen në një skedar të vetëm të ekzekutueshëm, ekzekutohen në një proces të vetëm dhe ndërveprojnë drejtpërdrejt me njëri-tjetrin. Në modalitetin me shumë komponentë (grup), mikroshërbimet mund të lansohen veçmas, duke përfshirë të shpërndara nëpër nyje të ndryshme. Ndërveprimi i komponentëve në
Modaliteti me shumë komponentë kryhet duke përdorur API-në dhe platformën e brendshme HTTP Apache Kafka.

Zhvillimi kryhet bazuar në specifikimet e protokollit Matrix dhe duke përdorur dy grupe testimi - teste të zakonshme për Synapse sistem dhe një set të ri plotësues. Në fazën aktuale të zhvillimit, Dendrite kalon 56% të testeve të API-së Client-Server dhe 77% të testeve të Federatës API, ndërsa mbulimi aktual i funksionalitetit vlerësohet në 70% për API-në Client-Server dhe 95% për API-në e Federatës.

Faza e testimit beta tregon se Dendrite është gati për zbatimin fillestar dhe kalimin në zhvillim me lëshime të reja të formuara periodikisht. Midis lëshimeve, skema e ruajtjes së të dhënave në bazën e të dhënave tani do të përditësohet (ndryshe nga instalimi i pjesëve nga depoja, përmbajtja e bazës së të dhënave nuk do të humbet pas përditësimit). Ndryshimet që prishin përputhshmërinë e prapambetur, ndryshojnë strukturën e bazës së të dhënave ose kërkojnë ndryshime të konfigurimit do të ofrohen vetëm në versionet kryesore. Dendriti aktualisht rekomandohet të përdoret në modalitetin monolit në lidhje me PostgreSQL DBMS për të krijuar serverë të vegjël shtëpie dhe nyje P2P. Përdorimi i SQLite nuk rekomandohet ende për shkak të problemeve të pazgjidhura me trajtimin e operacioneve të njëkohshme.

Veçoritë që nuk janë zbatuar ende në Dendrite përfshijnë konfirmimet e marrjes së mesazhit, shenjat e leximit, njoftimet shtytëse, OpenID, lidhjen me email, kërkimin nga ana e serverit, direktorinë e përdoruesve, listat e injorimit të përdoruesve, krijimin e grupeve dhe komuniteteve, vlerësimin e pranisë së përdoruesit në internet, hyrjet e të ftuarve, ndërveprim me rrjetet e palëve të treta.

Të disponueshme për përdorim janë funksionaliteti bazë për dhomat e bisedave (krijimi, ftesat, rregullat e vërtetimit), mjetet e federimit të pjesëmarrësve në dhoma, sinkronizimi i ngjarjeve pas kthimit nga linja, llogaritë, profilet, treguesi i telefonimit, shkarkimi dhe ngarkimi i skedarëve (Media API), redaktimi i mesazheve, ACL-të, lidhja e etiketave dhe puna me listat e pajisjeve dhe çelësat për enkriptim nga fundi në fund.

Kujtojmë se platforma për organizimin e komunikimeve të decentralizuara Matrix përdor HTTPS+JSON si një transport me mundësinë e përdorimit të WebSockets ose një protokoll të bazuar në CoAP+zhurmë. Sistemi është formuar si një bashkësi serverësh që mund të ndërveprojnë me njëri-tjetrin dhe janë të bashkuar në një rrjet të përbashkët të decentralizuar. Mesazhet përsëriten në të gjithë serverët me të cilët janë lidhur pjesëmarrësit e mesazheve. Mesazhet përhapen nëpër serverë në të njëjtën mënyrë siç përhapen angazhimet midis depove Git. Në rast të një ndërprerjeje të përkohshme të serverit, mesazhet nuk humbasin, por u transmetohen përdoruesve pasi serveri rifillon funksionimin. Mbështeten opsione të ndryshme të ID-së së përdoruesit, duke përfshirë emailin, numrin e telefonit, llogarinë në Facebook, etj.

Nuk ka asnjë pikë të vetme dështimi ose kontrolli të mesazheve në të gjithë rrjetin. Të gjithë serverët e mbuluar nga diskutimi janë të barabartë me njëri-tjetrin.
Çdo përdorues mund të ekzekutojë serverin e vet dhe ta lidhë atë me një rrjet të përbashkët. Është e mundur të krijohet portat hyrëse për ndërveprimin e Matricës me sistemet e bazuara në protokolle të tjera, për shembull, përgatitur shërbime për dërgimin e mesazheve në dy drejtime në IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp dhe Slack. Përveç mesazheve me tekst dhe bisedave të çastit, sistemi mund të përdoret për të transferuar skedarë, për të dërguar njoftime,
organizimi i telekonferencave, kryerja e thirrjeve zanore dhe video. Ai gjithashtu mbështet veçori të tilla të avancuara si njoftimi i shtypjes, vlerësimi i pranisë së përdoruesit në internet, konfirmimi i leximit, njoftimet shtytëse, kërkimi nga ana e serverit, sinkronizimi i historisë dhe statusi i klientit.

Burimi: opennet.ru

Shto një koment