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

Ang Dendrite ay isang server ng komunikasyon iyon ang pagiging binuo ng koponan ng Matrix at nakaposisyon ito bilang isang pagpapatupad ng ikalawang henerasyon ng mga bahagi ng server ng Matrix.

Hindi tulad ng server ng sanggunian na Synaps na nakasulat sa Python, ang Dendrite code ay binuo sa Go. Ang parehong mga opisyal na pagpapatupad ay ipinamamahagi sa ilalim ng lisensya ng Apache 2.0.

Bilang bahagi ng proyekto ng Ruma, isang magkakahiwalay na bersyon ng Matrix server sa Rust na wika ang binuo, na ipinamamahagi sa ilalim ng lisensya ng MIT.

Ang bagong server naglalayong makamit ang mataas na kahusayan, pagiging maaasahan at kakayahang sumukat.

Tungkol sa Dendrite

Dendrite ay nauuna sa Synaps sa mga tuntunin ng pagganap, nangangailangan ito ng mas kaunting memorya upang mapatakbo at maaaring sukatin sa pamamagitan ng pag-balancing ng load sa maraming mga node.

Arkitektura ng Dendrite sumusuporta sa pahalang na pag-scale at umaasa sa paghihiwalay ng driver sa anyo ng microservices, kung saan ang bawat halimbawa ng isang microservice ay may sariling mga talahanayan sa database.

Ang load balancer ay responsable para sa pagpapadala ng mga tawag sa microservices. Ang mga thread (go routine) ay ginagamit upang ihambing ang mga pagpapatakbo sa code, na nagpapahintulot sa mga mapagkukunan ng lahat ng mga core ng CPU na magamit nang hindi hinati ang mga ito sa magkakahiwalay na proseso.

Dendrite sumusuporta sa trabaho sa dalawang mga mode: monolithic at multi-sangkap (polylith).

  • Sa monolithic mode, Ang lahat ng mga microservice ay naka-link sa isang maipapatupad na file, tumatakbo sa isang proseso, at direktang nakikipag-ugnay sa bawat isa.
  • Sa mode na multi-component (cluster), ang microservices ay maaaring mailunsad nang magkahiwalay, kahit na may pagkakaiba-iba sa iba't ibang mga node. Isinasagawa ang pakikipag-ugnay ng bahagi sa multicomponent mode gamit ang panloob na HTTP API at ang Apache Kafka platform.

Isinasagawa ang pag-unlad batay sa mga pagtutukoy ng Matrix protocol at paggamit ng dalawang hanay ng mga pagsubok: ang mga karaniwang sytest na pagsubok na may Synaps at ang bagong suite ng Komplemento.

Sa kasalukuyang yugto ng pag-unlad, matagumpay na naipasa ng Dendrite ang 56% ng mga pagsubok ng mga API ng client-server at 77% ng mga pagsubok sa federation API, habang ang aktwal na saklaw ng pag-andar ay tinatayang nasa 70% para sa client-server API at 95% para sa federation API.

Ipinapahiwatig ng yugto ng beta na ang Dendrite ay handa na para sa paunang pag-deploy at ang paglipat sa pag-unlad na may regular na bagong paglabas. Sa pagitan ng mga paglabas, ang iskema ng imbakan ng database ay maa-update ngayon (hindi tulad ng pag-install ng mga chunks mula sa lalagyan, pagkatapos ng pag-update, ang mga nilalaman ng database ay hindi mawawala).

Ang mga pagbabago na sumisira ng paatras na pagiging tugma, binago ang istraktura ng database, o nangangailangan ng mga pagbabago sa pagsasaayos ay iaalok lamang sa mga pangunahing paglabas.

Sa sandaling ito, inirerekumenda na gamitin ang Dendrite sa monolithic mode kasama ang PostgreSQL DBMS upang lumikha ng maliit na mga server ng bahay at mga P2P node. Ang paggamit ng SQLite ay hindi pa inirerekumenda dahil sa hindi nalutas na mga isyu sa paghawak ng mga kasabay na pagpapatakbo.

Ang mga tampok ay hindi pa ipinatupad sa Dendrite isama: mga pagkilala sa mensahe, bookmark, abiso sa push, OpenID, link sa email, paghahanap sa panig ng server, direktoryo ng gumagamit, mga listahan ng hindi papansin ng gumagamit, paglikha ng mga pangkat at pamayanan, pagsusuri ng pagkakaroon ng online ng isang gumagamit , mga input ng bisita, pakikipag-ugnayan sa mga third party network.

Pangunahing pag-andar para sa pagpapatakbo ng mga chat room (paglikha, mga paanyaya, patakaran sa pagpapatotoo), paraan ng pederasyon ng mga kalahok sa mga silid, pagsabay ng mga kaganapan pagkatapos bumalik mula sa offline, mga account, profile, indikasyon ng dial, pag-download at pag-upload ng Ang pag-edit ng mga file (Media API) ay magagamit para sa paggamit ng mga mensahe, ACL, pag-label at end-to-end na aparato ng pag-encrypt at mga pangunahing listahan.

Manariwa sa diwa na ang platform para sa pag-aayos ng desentralisadong mga komunikasyon na Matrix ay gumagamit ng HTTPS + JSON bilang isang transportasyon na may kakayahang gumamit ng WebSockets o isang protocol batay sa CoAP + Noise. Ang sistema ay nabuo bilang isang pamayanan ng mga server na maaaring makipag-ugnay sa bawat isa at pinagsama sa isang karaniwang desentralisadong network.

Ang mga mensahe ay kinopya sa lahat ng mga server kung saan nakakonekta ang mga kalahok sa pagmemensahe. Ang mga mensahe ay naipalaganap sa pagitan ng mga server sa isang katulad na paraan sa kung paano naipalaganap ang mga komit sa pagitan ng mga repositoryang Git.

Fuente: https://matrix.org


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.