Matrix プロトコルを実装した通信サーバーである Dendrite 0.1.0 のリリース

公開済み マトリックスサーバーのリリース デンドライト 0.1.0、開発がベータテスト段階に移行したことを示しました。 Dendrite は、Matrix 分散通信プラットフォームのコア開発チームによって開発され、Matrix サーバー コンポーネントの第 XNUMX 世代実装として位置付けられています。 リファレンスサーバーとは異なります Synapse、Python で書かれた、コード Dendrite 開発中です Go言語で。 どちらの公式実装も、Apache 2.0 ライセンスに基づいて配布されます。 プロジェクトの境界内で ルーマ Rust の Matrix サーバーのバリアントは別途開発されています。 によって配布 MITライセンスの下で。

新しいサーバーは、高い効率、信頼性、拡張性を実現することを目的としています。 Dendrite はパフォーマンスにおいて Synapse を上回り、実行に必要なメモリが大幅に少なく、複数のノードにわたる負荷分散を通じて拡張できます。 Dendrite アーキテクチャは水平スケーリングをサポートしており、マイクロサービスの形式でのハンドラーの分離に基づいており、各マイクロサービス インスタンスはデータベース内に独自のテーブルを持ちます。 ロード バランサーは、マイクロサービスへの呼び出しのスケジュールを担当します。 コード内の操作を並列化するには、スレッド (go ルーチン) が使用されます。これにより、すべての CPU コアのリソースを個別のプロセスに分割せずに使用できるようになります。

Matrix プロトコルを実装した通信サーバーである Dendrite 0.1.0 のリリース

Dendrite は、モノリシックとマルチコンポーネント (ポリリス) の XNUMX つのモードをサポートします。 モノリシック モードでは、すべてのマイクロサービスが XNUMX つの実行可能ファイルにリンクされ、XNUMX つのプロセスで実行され、相互に直接対話します。 マルチコンポーネント (クラスター) モードでは、マイクロサービスは、異なるノード間で間隔をあけてなど、個別に起動できます。 コンポーネントの相互作用
マルチコンポーネント モードは、内部 HTTP API とプラットフォームを使用して実行されます。 アパッチカフカ.

開発は Matrix プロトコルの仕様に基づいており、XNUMX つのテスト スイート (Synapse による共通テスト) を使用します。 システムテスト そして新しいセット 補体。 現在の開発段階では、Dendrite はクライアント/サーバー API テストの 56%、フェデレーション API テストの 77% に合格していますが、実際の機能カバー率はクライアント/サーバー API で 70%、フェデレーションで 95% と推定されています。 API。

ベータ段階は、Dendrite が初期展開の準備ができており、定期リリースで開発に移行することを示しています。 リリース間では、データベース内のデータ ストレージ スキームが更新されます (リポジトリからスライスをインストールする場合とは異なり、更新後にデータベースの内容が失われることはありません)。 下位互換性を破壊する変更、データベースの構造を変更する変更、または構成の変更を必要とする変更は、メジャー リリースでのみ提供されます。 現時点では、小規模なホームサーバーと P2P ノードを作成するには、Dendrite を PostgreSQL とモノリシック モードで使用することをお勧めします。 同時操作の処理に関する未解決の問題があるため、SQLite の使用はまだ推奨されていません。

Dendrite にまだ実装されていない機能としては、メッセージ受信確認、既読マーク、プッシュ通知、OpenID、電子メールへのリンク、サーバー側検索、ユーザー ディレクトリ、ユーザー無視リスト、グループとコミュニティの作成、ユーザーのオンライン プレゼンスの評価、ゲスト入力、サードパーティネットワークとの相互作用。

使用できるのは、チャット ルームの操作 (作成、招待、認証ルール) の基本機能、ルームへの参加者の連携手段、オフラインから戻った後のイベントの同期、アカウント、プロフィール、ダイヤル表示、ファイルのアップロードと提供 ( Media API)、メッセージの編集、ACL、タグ バインディング、エンドツーエンド暗号化のためのデバイスとキーのリストの操作。

分散通信を組織するためのプラットフォーム Matrix は、WebSocket またはそれに基づくプロトコルを使用する機能を持つトランスポートとして HTTPS + JSON を使用していることを思い出してください。 CoAP+ノイズ。 このシステムは、相互に対話できるサーバーのコミュニティとして形成され、共通の分散ネットワークに結合されます。 メッセージは、メッセージング参加者が接続しているすべてのサーバーにわたって複製されます。 メッセージは、コミットが Git リポジトリ間で伝播されるのと同様に、サーバー間で伝播されます。 サーバーが一時的にシャットダウンした場合でも、メッセージは失われませんが、サーバーが再開された後にユーザーに送信されます。 電子メール、電話番号、Facebook アカウントなど、さまざまなユーザー ID オプションがサポートされています。

ネットワークには単一障害点やメッセージ制御はありません。 議論の対象となるすべてのサーバーは、それらの間で同等です。
どのユーザーも独自のサーバーを実行し、パブリック ネットワークに接続できます。 作成可能です ゲートウェイ Matrix が他のプロトコルに基づいてシステムと対話する場合、たとえば、 準備された IRC、Facebook、Telegram、Skype、Hangouts、電子メール、WhatsApp、Slack に双方向メッセージを送信するためのサービス。 インスタント テキスト メッセージングやチャットの整理に加えて、このシステムはファイルの転送、通知の送信、
電話会議を開催したり、音声通話やビデオ通話を行ったりします。 また、入力通知、ユーザーのオンライン プレゼンス評価、既読確認、プッシュ通知、サーバー側検索、クライアント履歴、ステータス同期などの高度な機能もサポートしています。

出所: オープンネット.ru

コメントを追加します