Dendrite, pelayan komunikasi dengan pelaksanaan protokol Matrix

Dendrite ialah pelayan komunikasi yang sedang dibangunkan oleh pasukan Matrix dan diletakkan sebagai pelaksanaan generasi kedua komponen pelayan Matrix.

Tidak seperti pelayan rujukan Synapse yang ditulis dalam Python, kod Dendrite dikembangkan di Go. Kedua-dua pelaksanaan rasmi diedarkan di bawah lesen Apache 2.0.

Sebagai sebahagian daripada projek Ruma, versi terpisah dari pelayan Matrix dalam bahasa Rust sedang dikembangkan, yang diedarkan di bawah lesen MIT.

Pelayan baharu ini bertujuan untuk mencapai kecekapan, kebolehpercayaan dan kebolehskalaan yang tinggi.

Mengenai Dendrite

Dendrit mendahului Synapse dari segi prestasi, memerlukan memori yang jauh lebih sedikit untuk beroperasi dan boleh diskalakan melalui pengimbangan beban merentasi berbilang nod.

Seni bina Dendrite menyokong penskalaan mendatar dan berdasarkan pemisahan pengawal dalam bentuk perkhidmatan mikro, di mana setiap contoh perkhidmatan mikro mempunyai jadualnya sendiri dalam pangkalan data.

Pengimbang beban bertanggungjawab untuk menghantar panggilan ke perkhidmatan mikro. Threads (go rutin) digunakan untuk menyelaraskan operasi dalam kod, yang memungkinkan sumber semua inti CPU digunakan tanpa membaginya menjadi proses terpisah.

Dendrit menyokong kerja dalam dua mod: monolitik dan berbilang komponen (polilit).

  • Dalam mod monolitik, Semua perkhidmatan mikro dihubungkan dalam fail yang dapat dilaksanakan, dijalankan dalam proses, dan berinteraksi secara langsung antara satu sama lain.
  • Dalam mod berbilang komponen (cluster), perkhidmatan mikro dapat dilancarkan secara berasingan, walaupun dengan kepelbagaian pada nod yang berlainan. Interaksi komponen dalam mod multikomponen dilakukan menggunakan HTTP API dalaman dan platform Apache Kafka.

Pengembangan dilakukan berdasarkan spesifikasi protokol Matrix dan menggunakan dua set ujian: ujian sytest biasa dengan Synapse dan suite Pelengkap baru.

Pada peringkat pembangunan semasa, Dendrite berjaya melepasi 56% ujian API klien-pelayan dan 77% ujian API persekutuan, manakala liputan fungsi sebenar dianggarkan pada 70% untuk API klien-pelayan dan 95% untuk API persekutuan.

Peringkat beta menunjukkan bahawa Dendrite sedia untuk penggunaan awal dan peralihan kepada pembangunan dengan keluaran baharu yang tetap. Antara keluaran, skema storan pangkalan data kini akan dikemas kini (tidak seperti memasang fragmen daripada repositori, selepas kemas kini, kandungan pangkalan data tidak akan hilang).

Perubahan yang memecahkan keserasian ke belakang, mengubah struktur pangkalan data, atau memerlukan perubahan konfigurasi hanya akan ditawarkan dalam siaran utama.

Pada masa ini, penggunaan Dendrite dalam mod monolitik dengan PostgreSQL DBMS disyorkan untuk mencipta pelayan rumah kecil dan nod P2P. SQLite masih belum disyorkan kerana isu yang belum dapat diselesaikan dengan pengendalian operasi serentak.

Ciri-ciri yang belum dilaksanakan dalam Dendrite termasuk : pengakuan mesej, resit baca, pemberitahuan tolak, OpenID, pautan e-mel, carian bahagian pelayan, direktori pengguna, senarai abaikan pengguna, penciptaan kumpulan dan komuniti, penilaian kehadiran dalam talian pengguna, input tetamu dan interaksi dengan rangkaian pihak ketiga.

Fungsi asas untuk operasi bilik sembang (penciptaan, jemputan, peraturan pengesahan), cara persekutuan peserta di bilik, penyegerakan acara setelah kembali dari luar talian, akaun, profil, petunjuk dail, muat turun dan muat naik Fail penyuntingan (Media API) tersedia untuk penggunaan pesan, ACL, pelabelan dan peranti penyulitan end-to-end dan senarai kunci.

Ingat bahawa platform Matrix untuk mengatur komunikasi terpencar menggunakan HTTPS + JSON sebagai protokol pengangkutannya, dengan keupayaan untuk menggunakan WebSockets atau protokol berdasarkan CoAP + Noise. Sistem ini distrukturkan sebagai komuniti pelayan yang boleh berinteraksi antara satu sama lain dan bergabung menjadi rangkaian terpencar yang sama.

Mesej direplikasi merentasi semua pelayan yang disambungkan oleh peserta pemesejan. Mesej merambat antara pelayan dengan cara yang serupa dengan cara komit merambat antara repositori Git.

Sumber: https://matrix.org


Tambahkan sebagai sumber pilihan dalam Google