Rilis pertama klien Peer-to-Peer untuk jaringan federasi Matrix

Klien eksperimental telah dirilis Kerusuhan P2P.


kerusuhan - awalnya klien untuk jaringan gabungan Matriks. Modifikasi P2P menambahkan implementasi server dan federasi ke klien tanpa menggunakan DNS terpusat melalui integrasi libp2p, yang juga digunakan di IPFS. Ini adalah versi klien pertama yang menyimpan sesi setelah memuat ulang halaman, tetapi pada pembaruan besar berikutnya (misalnya, 0.2.0) data akan tetap dihapus. Oleh karena itu, tidak disarankan menggunakan klien untuk hal penting.

Klien mengimplementasikan federasi, pembuatan ruangan, dan tampilan katalog ruangan global (tanpa server!).

Namun jaringan Matrix utama yang menggunakan DNS dan jaringan Matrix di libp2p belum dapat melakukan federasi dan berinteraksi satu sama lain.

Untuk menggunakan klien, cukup klik tombol login, setelah itu Anda akan menerima ID yang dihasilkan di jaringan. Ekspor data belum didukung.

Karena ini adalah presentasi konsep yang mungkin tidak stabil, Anda mungkin mengalami masalah:

  • Anda tidak akan bisa masuk ke akun Anda atau berinteraksi dengan klien lain jika server yang berjalan sebagai Service Worker dimatikan oleh browser saat waktu habis. Masalah seperti itu terlihat di Firefox, yang melakukan ini setelah 30 detik tidak aktif].
  • Pada tingkat jaringan libp2p, terdapat batasan waktu pada jumlah tindakan yang dapat dilakukan, yang dapat menyebabkan masalah pada federasi.

Dimulainya pengerjaan Matrix versi P2P disebabkan oleh keinginan para pengembang untuk memberikan lebih banyak kebebasan kepada penggunanya. Pemisahan dari server pusat memungkinkan untuk memfasilitasi komunikasi dalam jaringan lokal dan mesh, dan secara umum, dalam kondisi di mana akses ke jaringan eksternal terbatas atau tidak ada. Hal ini juga berdampak positif pada privasi, karena minimalisasi metadata yang dikirimkan, yang dalam skenario ini hanya disimpan oleh peserta korespondensi. Pada akhirnya, hal ini mengarahkan seseorang untuk mempertimbangkan pemfaktoran ulang konsep Matrix saat ini untuk mencapai portabilitas dan keamanan yang lebih baik.

Implementasi API server dicapai melalui kompilasi server Dendrit ke dalam kode WebAssembly, yang berjalan secara bersamaan dengan klien dalam bentuk Service Worker, menggunakan IndexedDB dan SQLite untuk menyimpan data secara lokal, dalam hal versi web dan pembungkus Electron.
Dendrite adalah server Matrix "generasi kedua" di Go yang sedang dikembangkan dan dirancang agar sepenuhnya modular dan juga dapat digunakan secara monolitik. Dalam bentuk modular, Apache Kafka digunakan untuk interaksi antar layanan mikro, dan dalam bentuk monolitik - Nafka. Dokumentasi untuk membuat Dendrite versi P2P dapat ditemukan di GitHub.

Dendrite pada awalnya dimaksudkan untuk menjadi server tujuan umum yang dimaksudkan sebagai pengganti langsung Sinaps, ditulis dengan Python, yang memiliki masalah kinerja dan skalabilitas. Namun karena kebutuhan akan dukungan dan pemfaktoran ulang Synapse secara besar-besaran, pengembangan Dendrite terhenti. Pada akhirnya, pengembangan dilanjutkan, tetapi mereka memutuskan untuk mengembangkan basis kode yang ada bukan dalam konteks tujuan umum, tetapi untuk fokus pada adaptasi untuk disematkan pada perangkat klien portabel dan berdaya rendah, seperti browser dan telepon.

Implementasi Dendrite saat ini masih dalam tahap awal pengembangan, namun sudah cukup untuk federasi sederhana:

API Klien-Server: 34% (227/672 pengujian) β€” naik dari 33%
API Federasi: 34% (35/103 pengujian) β€” naik dari 27%

Ini bukan upaya pertama untuk menerapkan P2P. Sebelumnya ada inisiatif untuk berkreasi Proksi CoAP ke jaringan Yggdrasil untuk Synapse.


Pengembang protokol Matrix tidak berfokus pada federasi saja dan sedang bereksperimen dengan alat untuk desentralisasi yang lebih besar. Misalnya, percobaan dilakukan untuk mengurangi biaya di tingkat transportasi. Setan berevolusi Pantalaimon - proksi dimana klien mana pun tanpa dukungan enkripsi dapat terhubung dan berinteraksi dengan pesan terenkripsi. Semua inisiatif yang dilakukan bertujuan untuk memastikan hal tersebut di masa depan singkirkan pengikatan login ke server, menghilangkan MXID, berinteraksi dengan jaringan menggunakan kunci publik, yang sebagian sudah diterapkan di Riot P2P.


Anda dapat menemukan informasi lebih rinci tentang konsep implementasi yang direncanakan dalam presentasi FOSDEM 2020 di YouTube ΠΈ postingan blog terbaru.

Ada juga varian Riot P2P untuk Android, berdasarkan kode dari aplikasi lama. Kedepannya direncanakan akan dialihkan ke yang sekarang. KerusuhanX.

Selain itu

  • Proyek disajikan TARDIS (Layanan Inspeksi DAG Ruang Agnostik Waktu) adalah debugger grafik peristiwa linier (DAG) untuk ruang Matriks berdasarkan Riot P2P.

  • Dalam proyek Kanal (server yang dikembangkan komunitas di Rust) sekarang enkripsi dan lampiran diterapkan.

  • Server eksperimental di Scala telah muncul - mascarene.

Sumber: linux.org.ru

Tambah komentar