Rilis pisanan klien Peer-to-Peer kanggo jaringan federasi Matrix

Klien eksperimen wis dirilis Rerusuh P2P.


Riot - Originally klien kanggo jaringan federasi Matrix. Modifikasi P2P nambah implementasi server lan federasi menyang klien tanpa nggunakake DNS terpusat liwat integrasi libp2p, sing uga digunakake ing IPFS. Iki minangka versi pisanan saka klien sing nyimpen sesi sawise kaca maneh, nanging ing nganyari utama sabanjuré (contone, 0.2.0) data isih bakal dibusak. Mulane, nggunakake klien kanggo apa wae sing penting ora dianjurake.

Klien ngleksanakake federasi, nggawe kamar lan tampilan global (serverless!) Katalog kamar.

Nanging, jaringan Matrix utama nggunakake DNS lan jaringan Matrix ing libp2p durung bisa nggabungake lan sesambungan.

Kanggo nggunakake klien, mung klik tombol login, sawise sampeyan bakal nampa ID kui ing jaringan. Ekspor data durung didhukung.

Amarga iki minangka presentasi konsep sing ora stabil, sampeyan bisa ngalami masalah:

  • Sampeyan ora bakal bisa mlebu menyang akun utawa sesambungan karo klien liyane yen server sing mlaku minangka Service Worker dipateni dening browser nalika wis entek. Masalah kuwi katon ing Firefox, sing nindakake iki sawise 30 detik ora aktif].
  • Ing tingkat jaringan libp2p, ana watesan wektu babagan jumlah tumindak sing bisa ditindakake, sing bisa nyebabake masalah karo federasi.

Miwiti karya ing versi P2P Matrix amarga kepinginan para pangembang kanggo menehi kebebasan luwih akeh kanggo pangguna. Decoupling saka server tengah ndadekake iku bisa kanggo nggampangake komunikasi ing jaringan lokal lan bolong, lan ing umum, ing kahanan ngendi akses menyang jaringan external diwatesi utawa absen. Iki uga duwe efek positif ing privasi, amarga minimalake metadata sing dikirim, sing ing skenario iki mung disimpen dening peserta ing korespondensi. Wekasanipun, iki ndadékaké siji kanggo nimbang refactoring konsep Matrix saiki kanggo entuk portabilitas lan keamanan luwih.

Implementasi API server digayuh liwat kompilasi server Dendrit menyang kode WebAssembly, sing mlaku bebarengan karo klien ing wangun Service Worker, nggunakake IndexedDB lan SQLite kanggo nyimpen data sacara lokal, ing kasus versi web lan bungkus Electron.
Dendrite minangka server Matrix "generasi kapindho" ing Go sing lagi dikembangake lan dirancang kanthi modular lan uga bisa digunakake kanthi monolitik. Ing wangun modular, Apache Kafka digunakake kanggo interaksi antarane layanan mikro, lan ing wangun monolitik - Naffka. Dokumentasi kanggo mbangun versi P2P Dendrite bisa ditemokake ing GitHub.

Dendrite wiwitane dimaksudake minangka server tujuan umum sing dimaksudake minangka panggantos langsung Synapse, ditulis ing Python, sing nduweni masalah kinerja lan skalabilitas. Nanging amarga perlu kanggo dhukungan lan refactoring utama Synapse, pangembangan Dendrite tiba ing pinggir dalan. Pungkasane, pangembangan diterusake, nanging dheweke mutusake kanggo ngembangake basis kode sing ana ora ing konteks tujuan umum, nanging fokus ing adaptasi kanggo semat ing piranti klien portabel lan kurang daya, kayata browser lan telpon.

Implementasi Dendrite saiki isih ing tahap awal pembangunan, nanging wis cukup kanggo federasi prasaja:

API Klien-Server: 34% (227/672 tes) - munggah saka 33%
API Federasi: 34% (35/103 tes) - munggah saka 27%

Iki dudu upaya pertama kanggo ngetrapake P2P. Sadurunge, ana inisiatif kanggo nggawe Proksi CoAP menyang jaringan Yggdrasil kanggo Synapse.


Pengembang protokol Matrix ora mung fokus ing federasi lan nyoba alat kanggo desentralisasi sing luwih gedhe. Contone, eksperimen ditindakake kanggo ngurangi biaya ing tingkat transportasi. A setan berkembang Pantalaimon - proxy sing klien tanpa dhukungan enkripsi bisa nyambung lan sesambungan karo pesen sing dienkripsi. Kabeh inisiatif sing ditindakake dituju kanggo mesthekake yen ing mangsa ngarep njaluk nyisihaken saka mlebu naleni menyang server, ngilangi MXID, sesambungan karo jaringan nggunakake kunci umum, sing wis sebagian dileksanakake ing Riot P2P.


Sampeyan bisa nemokake informasi sing luwih rinci babagan konsep implementasi sing direncanakake ing presentasi FOSDEM 2020 ing YouTube и kirim blog anyar.

Ana uga varian Riot P2P kanggo Android, adhedhasar kode saka app lawas. Ing mangsa ngarep wis direncanakake kanggo nransfer menyang saiki. RiotX.

Kajaba iku

  • Project presented TARDIS (Layanan Inspeksi DAG Kamar Agnostik Wektu) minangka debugger grafik acara linier (DAG) kanggo kamar Matrix adhedhasar Riot P2P.

  • Ing proyek Conduit (server sing dikembangake komunitas ing Rust) saiki enkripsi lan lampiran dileksanakake.

  • Server eksperimen ing Scala wis muncul - Mascarene.

Source: linux.org.ru

Add a comment