Paglabas ng Dendrite 0.1.0, isang server ng komunikasyon na may pagpapatupad ng protocol ng Matrix

Nai-publish Paglabas ng server ng matrix Dendrite 0.1.0, na minarkahan ang paglipat ng development sa beta testing stage. Ang Dendrite ay binuo ng pangunahing pangkat ng mga developer ng desentralisadong platform ng komunikasyon na Matrix at nakaposisyon bilang pagpapatupad ng ikalawang henerasyon ng mga bahagi ng server ng Matrix. Hindi tulad ng reference server Synapse, nakasulat sa Python, code Dendrite ay umuunlad sa wikang Go. Ang parehong opisyal na pagpapatupad ay lisensyado sa ilalim ng lisensya ng Apache 2.0. Sa mga hangganan ng proyekto Ruma Ang isang bersyon ng server ng Matrix sa wikang Rust ay binuo nang hiwalay, na ipinamahagi ni sa ilalim ng lisensya ng MIT.

Ang bagong server ay naglalayong makamit ang mataas na kahusayan, pagiging maaasahan at scalability. Ang Dendrite ay higit na gumaganap sa Synapse, nangangailangan ng makabuluhang mas kaunting memory upang gumana, at maaaring mag-scale sa pamamagitan ng pag-load ng balanse sa maraming node. Sinusuportahan ng arkitektura ng Dendrite ang horizontal scaling at nakabatay ito sa paghihiwalay ng mga humahawak sa anyo ng mga microservice, kung saan ang bawat microservice instance ay may sariling mga talahanayan sa database. Ang load balancer ay nagpapadala ng mga tawag sa mga microservice. Upang iparallelize ang mga operasyon sa code, ang mga thread (go routines) ay ginagamit, na nagbibigay-daan sa iyong gamitin ang mga mapagkukunan ng lahat ng mga core ng CPU nang hindi hinahati ang mga ito sa magkakahiwalay na proseso.

Paglabas ng Dendrite 0.1.0, isang server ng komunikasyon na may pagpapatupad ng protocol ng Matrix

Sinusuportahan ng Dendrite ang dalawang mode: monolithic at polylith. Sa monolithic mode, ang lahat ng microservices ay naka-package sa isang executable na file, isinasagawa sa isang proseso, at direktang nakikipag-ugnayan sa isa't isa. Sa multi-component (cluster) mode, ang mga microservice ay maaaring ilunsad nang hiwalay, kabilang ang ibinahagi sa iba't ibang node. Interaksyon ng mga bahagi sa
Ang multi-component mode ay isinasagawa gamit ang panloob na HTTP API at platform Apache Kafka.

Isinasagawa ang pagbuo batay sa mga detalye ng protocol ng Matrix at gamit ang dalawang test suite - mga pagsubok na karaniwan sa Synapse sytest at isang bagong set Pagpupuno. Sa kasalukuyang yugto ng development, ang Dendrite ay pumasa sa 56% ng Client-Server API test at 77% ng Federation API test, habang ang aktwal na saklaw ng functionality ay tinatantya sa 70% para sa Client-Server API at 95% para sa Federation API.

Ang yugto ng pagsubok sa beta ay nagpapahiwatig na ang Dendrite ay handa na para sa paunang pagpapatupad at paglipat sa pagbuo na may mga bagong release na pana-panahong nabuo. Sa pagitan ng mga release, ang scheme ng pag-iimbak ng data sa database ay maa-update na ngayon (hindi tulad ng pag-install ng mga hiwa mula sa repository, ang mga nilalaman ng database ay hindi mawawala pagkatapos ng pag-update). Ang mga pagbabagong sumisira sa backward compatibility, nagbabago sa istraktura ng database, o nangangailangan ng mga pagbabago sa configuration ay iaalok lamang sa mga pangunahing release. Kasalukuyang inirerekomenda ang Dendrite na gamitin sa monolithic mode kasabay ng PostgreSQL DBMS upang lumikha ng maliliit na homeserver at P2P node. Ang paggamit ng SQLite ay hindi pa inirerekomenda dahil sa hindi nalutas na mga isyu sa paghawak ng mga kasabay na operasyon.

Kasama sa mga feature na hindi pa naipapatupad sa Dendrite ang mga kumpirmasyon sa pagtanggap ng mensahe, mga markang nabasa, mga push notification, OpenID, email binding, server-side search, user directory, user ignore list, paggawa ng mga grupo at komunidad, pagtatasa ng user online presence, guest inputs, pakikipag-ugnayan sa mga third-party na network.

Magagamit para sa paggamit ay ang pangunahing pag-andar para sa mga chat room (paglikha, mga imbitasyon, mga panuntunan sa pagpapatotoo), paraan ng federation ng mga kalahok sa mga silid, pag-synchronize ng mga kaganapan pagkatapos bumalik mula sa offline, mga account, profile, indikasyon sa pag-dial, pag-download at pag-upload ng mga file (Media API), pag-edit ng mga mensahe, ACL, tag binding at pagtatrabaho sa mga listahan ng mga device at key para sa end-to-end na pag-encrypt.

Alalahanin natin na ang platform para sa pag-aayos ng mga desentralisadong komunikasyon Matrix ay gumagamit ng HTTPS+JSON bilang isang transportasyon na may posibilidad na gumamit ng WebSockets o isang protocol batay sa COAP+Ingay. Ang sistema ay nabuo bilang isang komunidad ng mga server na maaaring makipag-ugnayan sa isa't isa at pinagsama sa isang karaniwang desentralisadong network. Ang mga mensahe ay ginagaya sa lahat ng mga server kung saan nakakonekta ang mga kalahok sa pagmemensahe. Ang mga mensahe ay pinapalaganap sa mga server sa parehong paraan na ang mga commit ay pinapalaganap sa pagitan ng mga Git repository. Sa kaganapan ng isang pansamantalang pagkawala ng server, ang mga mensahe ay hindi mawawala, ngunit ipinadala sa mga gumagamit pagkatapos na ipagpatuloy ng server ang operasyon. Sinusuportahan ang iba't ibang mga opsyon sa user ID, kabilang ang email, numero ng telepono, Facebook account, atbp.

Walang iisang punto ng pagkabigo o kontrol ng mensahe sa buong network. Ang lahat ng mga server na sakop ng talakayan ay pantay-pantay sa bawat isa.
Ang sinumang user ay maaaring magpatakbo ng kanilang sariling server at ikonekta ito sa isang karaniwang network. Posibleng lumikha mga gateway para sa pakikipag-ugnayan ng Matrix sa mga system batay sa iba pang mga protocol, halimbawa, nakahanda mga serbisyo para sa two-way na pagpapadala ng mga mensahe sa IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp at Slack. Bilang karagdagan sa instant text messaging at mga chat, ang system ay maaaring gamitin upang maglipat ng mga file, magpadala ng mga abiso,
pag-aayos ng mga teleconference, paggawa ng mga voice at video call. Sinusuportahan din nito ang mga advanced na tampok tulad ng abiso ng pag-type, pagsusuri ng presensya ng gumagamit sa online, pagkumpirma ng pagbabasa, push notification, paghahanap sa gilid ng server, pag-synchronize ng kasaysayan at katayuan ng kliyente.

Pinagmulan: opennet.ru

Magdagdag ng komento