Dendrite,具有Matrix協議實現的通信服務器

Dendrite 是由 Matrix 團隊開發的通訊伺服器,定位為 Matrix 伺服器元件的第二代實作。

與用Python編寫的Synapse參考服務器不同,Dendrite代碼是用Go開發的。 兩種官方實現均根據Apache 2.0許可進行分發。

作為Ruma項目的一部分,正在開發使用Rust語言的Matrix服務器的單獨版本,該版本已獲得MIT許可。

新伺服器旨在實現高效率、高可靠性和可擴展性。

關於樹突

Dendrite在效能方面優於 Synapse,運行所需的記憶體更少,並且可以透過跨多個節點的負載平衡進行擴展。

Dendrite 架構支援水平擴展,其核心是控制器以微服務的形式分離,每個微服務實例在資料庫中都有自己的表。

負載平衡器負責將呼叫發送到微服務。 線程(執行例程)用於並行化代碼中的操作,從而可以使用所有CPU內核的資源,而無需將其劃分為單獨的進程。

Dendrite支援兩種工作模式:單片式和多元件(多片式)。

  • 在單片模式下, 所有微服務都鏈接到一個可執行文件中,在一個進程中運行,並且彼此直接交互。
  • 在多組件模式下 (集群),即使在不同節點上具有多樣性,微服務也可以單獨啟動。 多組件模式下的組件交互是使用內部HTTP API和Apache Kafka平台進行的。

開發是根據Matrix協議的規範並使用兩套測試進行的:Synapse的常規sytest測試和新的Complement套件。

在目前的開發階段,Dendrite 成功通過了 56% 的用戶端伺服器 API 測試和 77% 的聯邦 API 測試,而用戶端伺服器 API 的實際功能覆蓋率估計為 70%,聯邦 API 的實際功能覆蓋率估計為 95%。

Beta 階段表明 Dendrite 已準備好進行初始部署,並過渡到定期發布新版本的開發階段。在版本發布之間,資料庫儲存方案現在將進行更新(與從儲存庫安裝片段不同,更新後資料庫內容不會遺失)。

僅在主要版本中才會提供破壞向後兼容性,更改數據庫結構或需要更改配置的更改。

目前,建議使用 Dendrite 單體架構並搭配 PostgreSQL 資料庫管理系統來建立小型家庭伺服器和 P2P 節點。由於 SQLite 在處理並發操作方面存在一些尚未解決的問題,因此暫不建議使用。

Dendrite尚未實現的功能包括:訊息確認、已讀回執、推播通知、OpenID、電子郵件連結、伺服器端搜尋、使用者目錄、使用者忽略清單、群組和社群建立、評估使用者的線上狀態、訪客輸入以及與第三方網路的互動。

聊天室操作的基本功能(創建,邀請,身份驗證規則),會議室中的參與者的聯盟,脫機返回後的事件同步,帳戶,配置文件,撥號指示,編輯文件的下載和上載(媒體API)可用於使用消息,ACL,標記以及端到端加密設備和密鑰列表。

請記住,用於組織去中心化通訊的 Matrix 平台使用 HTTPS + JSON作為其傳輸協議,並能夠使用 WebSocket 或基於 CoAP + Noise 的協議。該系統建構成一個伺服器社區,這些伺服器可以相互互動並組合成一個共同的去中心化網路。

訊息會在所有與訊息參與者連線的伺服器上進行複製。訊息在伺服器之間的傳播方式類似於提交在 Git 倉庫之間的傳播方式。

資料來源:https://matrix.org


在 Google 中將其新增為首選來源