Dendrite, server komunikasi dengan implementasi protokol Matrix

Dendrite adalah server komunikasi itu sedang dikembangkan oleh tim Matrix dan diposisikan sebagai implementasi dari komponen server Matrix generasi kedua.

Tidak seperti server referensi Synapse yang ditulis dengan Python, kode Dendrite dikembangkan di Go. Kedua implementasi resmi didistribusikan di bawah lisensi Apache 2.0.

Sebagai bagian dari proyek Ruma, versi terpisah dari server Matrix dalam bahasa Rust sedang dikembangkan, yang didistribusikan di bawah lisensi MIT.

Server baru bertujuan untuk mencapai efisiensi, keandalan, dan skalabilitas yang tinggi.

Tentang Dendrite

Dendrit berada di depan Synapse dalam hal kinerja, itu membutuhkan lebih sedikit memori untuk beroperasi dan dapat diskalakan dengan load balancing di beberapa node.

Arsitektur Dendrite mendukung penskalaan horizontal dan didasarkan pada pemisahan pengontrol dalam bentuk layanan mikro, di mana setiap instance dari layanan mikro memiliki tabelnya sendiri di database.

Penyeimbang beban bertanggung jawab untuk mengirimkan panggilan ke layanan mikro. Utas (rutinitas go) digunakan untuk memparalelkan operasi dalam kode, yang memungkinkan sumber daya semua inti CPU digunakan tanpa membaginya menjadi proses terpisah.

Dendrit mendukung pekerjaan dalam dua mode: monolitik dan multi-komponen (polilit).

  • Dalam mode monolitik, Semua layanan mikro ditautkan dalam file yang dapat dieksekusi, berjalan dalam suatu proses, dan berinteraksi langsung satu sama lain.
  • Dalam mode multi-komponen (cluster), layanan mikro dapat diluncurkan secara terpisah, bahkan dengan keragaman pada node yang berbeda. Interaksi komponen dalam mode multikomponen dilakukan menggunakan API HTTP internal dan platform Apache Kafka.

Pengembangan dilakukan berdasarkan spesifikasi protokol Matrix dan menggunakan dua set tes: tes sytest umum dengan Synapse dan suite Complement baru.

Pada tahap pengembangan saat ini, Dendrite berhasil melewati 56% tes API server-klien dan 77% dari pengujian API federasi, sedangkan cakupan fungsionalitas sebenarnya diperkirakan 70% untuk API server-klien dan 95% untuk API federasi.

Tahap beta menunjukkan bahwa Dendrite siap untuk penerapan awal dan transisi ke pengembangan dengan rilis baru reguler. Di antara rilis, skema penyimpanan database sekarang akan diperbarui (tidak seperti menginstal potongan dari repositori, setelah pembaruan, konten database tidak akan hilang).

Perubahan yang merusak kompatibilitas mundur, mengubah struktur database, atau memerlukan perubahan konfigurasi hanya akan ditawarkan dalam rilis mayor.

Untuk saat ini, disarankan untuk menggunakan Dendrite dalam mode monolitik bersama dengan DBMS PostgreSQL untuk membuat server rumah kecil dan node P2P. Menggunakan SQLite belum direkomendasikan karena masalah yang belum terselesaikan terkait penanganan operasi bersamaan.

Fitur belum diimplementasikan di Dendrite termasuk: pengakuan pesan, bookmark, pemberitahuan push, OpenID, tautan email, pencarian sisi server, direktori pengguna, daftar pengabaian pengguna, pembuatan grup dan komunitas, evaluasi kehadiran online pengguna, masukan tamu, interaksi dengan jaringan pihak ketiga.

Fungsionalitas dasar untuk pengoperasian ruang obrolan (pembuatan, undangan, aturan otentikasi), sarana federasi peserta di ruang, sinkronisasi acara setelah kembali dari offline, akun, profil, indikasi panggilan, unduh dan unggah file Editing (Media API) tersedia untuk pesan penggunaan, ACL, pelabelan, dan perangkat enkripsi ujung ke ujung serta daftar kunci.

Ingat itu platform untuk mengatur komunikasi yang terdesentralisasi Matrix menggunakan HTTPS + JSON sebagai transportasi dengan kemampuan untuk menggunakan WebSockets atau protokol berdasarkan CoAP + Noise. Sistem ini dibentuk sebagai komunitas server yang dapat berinteraksi satu sama lain dan digabungkan dalam jaringan desentralisasi bersama.

Pesan direplikasi di semua server yang terhubung dengan peserta olahpesan. Pesan disebarkan antar server dengan cara yang mirip dengan bagaimana komit disebarkan di antara repositori Git.

sumber: https://matrix.org


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.