發布 Dendrite 0.1.0,一個實現 Matrix 協議的通信服務器

發表 矩陣伺服器版本 枝晶0.1.0,這標誌著開發過渡到 Beta 測試階段。 Dendrite由去中心化通訊平台Matrix的核心開發團隊開發,定位為第二代Matrix伺服器元件的實作。 與參考伺服器不同 突觸,用Python編寫,程式碼Dendrite 發展 在 Go 語言中。 兩種官方實現均根據 Apache 2.0 許可證獲得許可。 在專案邊界內 魯馬 Rust 語言的 Matrix 伺服器版本正在單獨開發,該版本 分發者 在麻省理工學院的許可下。

新伺服器旨在實現高效率、可靠性和可擴展性。 Dendrite 的效能優於 Synapse,運行所需的記憶體顯著減少,並且可以透過跨多個節點的負載平衡進行擴展。 Dendrite 架構支援水平擴展,並基於微服務形式的處理程序分離,其中每個微服務實例在資料庫中都有自己的表。 負載平衡器將呼叫分派給微服務。 為了並行化程式碼中的操作,使用了執行緒(go 例程),它允許您使用所有 CPU 核心的資源,而無需將它們劃分為單獨的進程。

發布 Dendrite 0.1.0,一個實現 Matrix 協議的通信服務器

Dendrite 支援兩種模式:單片模式和多片模式。 在單體模式下,所有微服務都打包在單一執行檔中,在單一進程中執行,並直接相互互動。 在多組件(叢集)模式下,微服務可以單獨啟動,包括分佈在不同節點上。 中組件的交互
多組件模式是使用內部HTTP API和平台進行的 阿帕奇卡夫卡.

開發是基於 Matrix 協定規格並使用兩個測試套件進行的 - Synapse 通用的測試 系統測試 和一套新的 補充。 在目前的開發階段,Dendrite 通過了 56% 的客戶端-伺服器 API 測試和 77% 的聯邦 API 測試,而實際功能覆蓋率預計客戶端-伺服器 API 為 70%,聯邦 API 為 95%。

Beta 測試階段表明 Dendrite 已準備好進行初始實施並過渡到開發,並定期形成新版本。 在版本之間,資料庫中的資料儲存方案現在將被更新(與從儲存庫安裝切片不同,更新後資料庫的內容不會遺失)。 破壞向後相容性、更改資料庫結構或需要更改配置的變更將僅在主要版本中提供。 目前建議將 Dendrite 以整體模式與 PostgreSQL DBMS 結合使用,以建立小型家庭伺服器和 P2P 節點。 由於處理並發操作的問題尚未解決,因此尚不建議使用 SQLite。

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

可供使用的有聊天室的基本功能(創建、邀請、身份驗證規則)、房間中參與者的聯合方式、離線返回後的事件同步、帳戶、個人資料、撥號指示、下載和上傳文件(媒體API )、編輯訊息、ACL、標籤綁定以及使用裝置和金鑰清單進行端對端加密。

讓我們回想一下,組織去中心化通訊的平台 Matrix 使用 HTTPS+JSON 作為傳輸,能夠使用 WebSockets 或基於 行動計劃+Noise。 這個系統形成為一個伺服器社區,這些伺服器可以相互互動並結合成一個公共的去中心化網路。 訊息在訊息傳遞參與者連接的所有伺服器之間複製。 訊息在伺服器之間傳播的方式與提交在 Git 儲存庫之間傳播的方式相同。 如果伺服器暫時中斷,訊息不會遺失,而是在伺服器恢復運行後傳輸給用戶。 支援各種用戶 ID 選項,包括電子郵件、電話號碼、Facebook 帳戶等。

整個網路不存在單點故障或訊息控制。 討論中涉及的所有伺服器都是平等的。
任何用戶都可以運行自己的伺服器並將其連接到公共網路。 可以創建 網關 用於Matrix與基於其他協定的系統的交互,例如, 準備好了 用於向 IRC、Facebook、Telegram、Skype、Hangouts、電子郵件、WhatsApp 和 Slack 雙向發送訊息的服務。 除了即時簡訊和聊天之外,該系統還可以用於傳輸文件、發送通知、
組織電話會議、進行語音和視訊通話。 它還支援輸入通知、用戶線上狀態評估、閱讀確認、推播通知、伺服器端搜尋、歷史記錄和用戶端狀態同步等進階功能。

來源: opennet.ru

添加評論