Keluaran Dendrite 0.1.0, pelayan komunikasi dengan pelaksanaan protokol Matrix

diterbitkan Keluaran pelayan matriks Dendrit 0.1.0, yang menandakan peralihan pembangunan ke peringkat ujian beta. Dendrite sedang dibangunkan oleh pasukan teras pembangun platform komunikasi terdesentralisasi Matrix dan diletakkan sebagai pelaksanaan komponen pelayan Matrix generasi kedua. Tidak seperti pelayan rujukan Sinaps, ditulis dalam Python, kod Dendrite sedang berkembang dalam bahasa Go. Kedua-dua pelaksanaan rasmi dilesenkan di bawah lesen Apache 2.0. Dalam sempadan projek Ruma Versi pelayan Matrix dalam bahasa Rust sedang dibangunkan secara berasingan, yang mana diedarkan oleh di bawah lesen MIT.

Pelayan baharu ini bertujuan untuk mencapai kecekapan tinggi, kebolehpercayaan dan kebolehskalaan. Dendrit mengatasi Synapse, memerlukan lebih sedikit memori untuk beroperasi, dan boleh menskalakan melalui pengimbangan beban merentas berbilang nod. Seni bina Dendrite menyokong penskalaan mendatar dan berdasarkan pemisahan pengendali dalam bentuk perkhidmatan mikro, di mana setiap contoh perkhidmatan mikro mempunyai jadual sendiri dalam pangkalan data. Pengimbang beban menghantar panggilan ke perkhidmatan mikro. Untuk menyelaraskan operasi dalam kod, benang (rutin pergi) digunakan, yang membolehkan anda menggunakan sumber semua teras CPU tanpa membahagikannya kepada proses yang berasingan.

Keluaran Dendrite 0.1.0, pelayan komunikasi dengan pelaksanaan protokol Matrix

Dendrit menyokong dua mod: monolitik dan polylith. Dalam mod monolitik, semua perkhidmatan mikro dibungkus dalam satu fail boleh laku, dilaksanakan dalam satu proses dan berinteraksi secara langsung antara satu sama lain. Dalam mod berbilang komponen (kluster), perkhidmatan mikro boleh dilancarkan secara berasingan, termasuk diedarkan merentasi nod yang berbeza. Interaksi komponen dalam
mod berbilang komponen dijalankan menggunakan API dan platform HTTP dalaman Apache Kafka.

Pembangunan dijalankan berdasarkan spesifikasi protokol Matrix dan menggunakan dua suite ujian - ujian biasa untuk Synapse sytest dan set baru Pelengkap. Pada peringkat pembangunan semasa, Dendrite melepasi 56% ujian API Pelayan-Pelanggan dan 77% ujian API Federation, manakala liputan fungsi sebenar dianggarkan pada 70% untuk API Pelayan-Pelanggan dan 95% untuk API Persekutuan.

Peringkat ujian beta menunjukkan bahawa Dendrite bersedia untuk pelaksanaan awal dan peralihan kepada pembangunan dengan keluaran baharu dibentuk secara berkala. Di antara keluaran, skema storan data dalam pangkalan data kini akan dikemas kini (tidak seperti memasang kepingan daripada repositori, kandungan pangkalan data tidak akan hilang selepas kemas kini). Perubahan yang memecahkan keserasian ke belakang, mengubah struktur pangkalan data atau memerlukan perubahan konfigurasi hanya akan ditawarkan dalam keluaran utama. Dendrite kini disyorkan untuk digunakan dalam mod monolitik bersama-sama dengan DBMS PostgreSQL untuk mencipta pelayan rumah kecil dan nod P2P. Penggunaan SQLite belum lagi disyorkan kerana isu yang tidak dapat diselesaikan dengan pengendalian operasi serentak.

Ciri yang masih belum dilaksanakan dalam Dendrite termasuk pengesahan penerimaan mesej, tanda baca, pemberitahuan tolak, OpenID, pengikatan e-mel, carian sisi pelayan, direktori pengguna, senarai abaikan pengguna, mencipta kumpulan dan komuniti, menilai kehadiran dalam talian pengguna, input tetamu, interaksi dengan rangkaian pihak ketiga.

Tersedia untuk digunakan ialah fungsi asas untuk bilik sembang (penciptaan, jemputan, peraturan pengesahan), cara persekutuan peserta dalam bilik, penyegerakan acara selepas kembali dari luar talian, akaun, profil, petunjuk dail, memuat turun dan memuat naik fail (Media API), menyunting mesej, ACL, mengikat teg dan bekerja dengan senarai peranti dan kunci untuk penyulitan hujung ke hujung.

Mari kita ingat bahawa platform untuk mengatur komunikasi terpencar Matrix menggunakan HTTPS+JSON sebagai pengangkutan dengan keupayaan untuk menggunakan WebSockets atau protokol berdasarkan TAPAK+Bunyi. Sistem ini dibentuk sebagai komuniti pelayan yang boleh berinteraksi antara satu sama lain dan disatukan menjadi rangkaian terdesentralisasi yang sama. Mesej direplikasi merentas semua pelayan yang mana peserta pemesejan disambungkan. Mesej disebarkan merentasi pelayan dengan cara yang sama seperti komit disebarkan antara repositori Git. Sekiranya berlaku gangguan pelayan sementara, mesej tidak hilang, tetapi dihantar kepada pengguna selepas pelayan menyambung semula operasi. Pelbagai pilihan ID pengguna disokong, termasuk e-mel, nombor telefon, akaun Facebook, dsb.

Tiada satu pun titik kegagalan atau kawalan mesej di seluruh rangkaian. Semua pelayan yang diliputi oleh perbincangan adalah sama antara satu sama lain.
Mana-mana pengguna boleh menjalankan pelayan mereka sendiri dan menyambungkannya ke rangkaian biasa. Ia adalah mungkin untuk mencipta pintu masuk untuk interaksi Matriks dengan sistem berdasarkan protokol lain, contohnya, disediakan perkhidmatan untuk menghantar mesej dua hala ke IRC, Facebook, Telegram, Skype, Hangouts, E-mel, WhatsApp dan Slack. Selain pemesejan teks segera dan sembang, sistem ini boleh digunakan untuk memindahkan fail, menghantar pemberitahuan,
menganjurkan telesidang, membuat panggilan suara dan video. Ia juga menyokong ciri lanjutan seperti pemberitahuan menaip, penilaian kehadiran dalam talian pengguna, pengesahan baca, pemberitahuan tolak, carian sebelah pelayan, penyegerakan sejarah dan status pelanggan.

Sumber: opennet.ru

Tambah komen