Rilis Dendrite 0.1.0, server komunikasi dengan implementasi protokol Matrix

diterbitkan Rilis server matriks Dendrit 0.1.0, yang menandai transisi pengembangan ke tahap pengujian beta. Dendrite sedang dikembangkan oleh tim inti pengembang platform komunikasi terdesentralisasi Matrix dan diposisikan sebagai implementasi komponen server Matrix generasi kedua. Berbeda dengan server referensi Sinaps, ditulis dengan Python, kode Dendrite sedang berkembang dalam bahasa Go. Kedua implementasi resmi dilisensikan di bawah lisensi Apache 2.0. Dalam batas-batas proyek Rum Versi server Matrix dalam bahasa Rust sedang dikembangkan secara terpisah didistribusikan oleh di bawah lisensi MIT.

Server baru ini bertujuan untuk mencapai efisiensi, keandalan, dan skalabilitas yang tinggi. Dendrite mengungguli Synapse, memerlukan lebih sedikit memori untuk beroperasi, dan dapat ditingkatkan melalui penyeimbangan beban di beberapa node. Arsitektur Dendrite mendukung penskalaan horizontal dan didasarkan pada pemisahan penangan dalam bentuk layanan mikro, di mana setiap instans layanan mikro memiliki tabelnya sendiri di database. Penyeimbang beban mengirimkan panggilan ke layanan mikro. Untuk memparalelkan operasi dalam kode, thread (go rutin) digunakan, yang memungkinkan Anda menggunakan sumber daya semua inti CPU tanpa membaginya menjadi proses terpisah.

Rilis Dendrite 0.1.0, server komunikasi dengan implementasi protokol Matrix

Dendrit mendukung dua mode: monolitik dan polilit. Dalam mode monolitik, semua layanan mikro dikemas dalam satu file yang dapat dieksekusi, dijalankan dalam satu proses, dan berinteraksi langsung satu sama lain. Dalam mode multi-komponen (cluster), layanan mikro dapat diluncurkan secara terpisah, termasuk didistribusikan ke berbagai node. Interaksi komponen di
mode multi-komponen dilakukan menggunakan API dan platform HTTP internal Apache Kafka.

Pengembangan dilakukan berdasarkan spesifikasi protokol Matrix dan menggunakan dua rangkaian pengujian - pengujian yang umum untuk Synapse sistem dan satu set baru Melengkapi. Pada tahap pengembangan saat ini, Dendrite lulus 56% pengujian API Klien-Server dan 77% pengujian API Federasi, sementara cakupan fungsionalitas sebenarnya diperkirakan sebesar 70% untuk API Klien-Server dan 95% untuk API Federasi.

Tahap pengujian beta menunjukkan bahwa Dendrite siap untuk implementasi awal dan transisi ke pengembangan dengan rilis baru yang dibentuk secara berkala. Di antara rilis, skema penyimpanan data dalam database kini akan diperbarui (tidak seperti menginstal irisan dari repositori, konten database tidak akan hilang setelah pembaruan). Perubahan yang merusak kompatibilitas, mengubah struktur database, atau memerlukan perubahan konfigurasi hanya akan ditawarkan dalam rilis besar. Dendrite saat ini direkomendasikan untuk digunakan dalam mode monolitik bersama dengan DBMS PostgreSQL untuk membuat server rumah kecil dan node P2P. Penggunaan SQLite belum disarankan karena masalah penanganan operasi bersamaan yang belum terselesaikan.

Fitur-fitur yang belum diterapkan di Dendrite antara lain konfirmasi penerimaan pesan, tanda baca, notifikasi push, OpenID, pengikatan email, pencarian sisi server, direktori pengguna, daftar abaikan pengguna, pembuatan grup dan komunitas, penilaian kehadiran online pengguna, input tamu, interaksi dengan jaringan pihak ketiga.

Tersedia untuk digunakan adalah fungsionalitas dasar untuk ruang obrolan (pembuatan, undangan, aturan otentikasi), sarana federasi peserta dalam ruang, sinkronisasi acara setelah kembali dari offline, akun, profil, indikasi panggilan, pengunduhan dan pengunggahan file (Media API), mengedit pesan, ACL, pengikatan tag, dan bekerja dengan daftar perangkat dan kunci untuk enkripsi ujung ke ujung.

Mari kita ingat bahwa platform untuk mengatur komunikasi terdesentralisasi Matrix menggunakan HTTPS+JSON sebagai transportasi dengan kemungkinan menggunakan WebSockets atau protokol berdasarkan CoAP+Kebisingan. Sistem ini dibentuk sebagai komunitas server yang dapat berinteraksi satu sama lain dan disatukan ke dalam jaringan umum yang terdesentralisasi. Pesan direplikasi di semua server yang terhubung dengan peserta pengiriman pesan. Pesan disebarkan ke seluruh server dengan cara yang sama seperti penerapan disebarkan antar repositori Git. Jika terjadi pemadaman server sementara, pesan tidak hilang, tetapi dikirimkan ke pengguna setelah server melanjutkan operasi. Berbagai opsi ID pengguna didukung, termasuk email, nomor telepon, akun Facebook, dll.

Tidak ada satu titik kegagalan atau kontrol pesan di seluruh jaringan. Semua server yang dicakup dalam diskusi setara satu sama lain.
Setiap pengguna dapat menjalankan server mereka sendiri dan menghubungkannya ke jaringan umum. Hal ini dimungkinkan untuk dibuat gerbang untuk interaksi Matrix dengan sistem berdasarkan protokol lain, misalnya, siap layanan pengiriman pesan dua arah ke IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp dan Slack. Selain pesan teks instan dan obrolan, sistem ini dapat digunakan untuk mentransfer file, mengirim pemberitahuan,
mengatur telekonferensi, melakukan panggilan suara dan video. Ini juga mendukung fitur-fitur canggih seperti pemberitahuan pengetikan, evaluasi kehadiran online pengguna, konfirmasi baca, pemberitahuan push, pencarian sisi server, sinkronisasi riwayat dan status klien.

Sumber: opennet.ru

Tambah komentar