Prvo izdanje Matrix Federated Network Peer-to-Peer Client

Eksperimentalni klijent je pušten Riot P2P.


pobuna - izvorno klijent za federalnu mrežu matrica. P2P modifikacija dodaje implementaciju servera i federaciju klijentu bez korištenja centraliziranog DNS-a kroz integraciju libp2p, koji se takođe koristi u IPFS. Ovo je prva verzija klijenta koja čuva sesiju nakon ponovnog učitavanja stranice, ali u sljedećim većim ažuriranjima (na primjer, 0.2.0) podaci će i dalje biti izbrisani. Stoga se ne preporučuje korištenje klijenta za bilo šta važno.

Klijent implementira federaciju, kreiranje sobe i prikaz globalnog (besserverskog!) kataloga soba.

Međutim, glavna Matrix mreža koja koristi DNS i Matrix mreža na libp2p još se ne mogu povezati i međusobno komunicirati.

Da biste koristili klijenta, samo kliknite na dugme za prijavu, nakon čega ćete dobiti generisani ID na mreži. Izvoz podataka još nije podržan.

Budući da je ovo nestabilna prezentacija mogućeg koncepta, možete naići na probleme:

  • Nećete moći da se prijavite na svoj nalog ili da komunicirate sa drugim klijentima ako server koji radi kao Service Worker bude ubijen od strane pretraživača kada istekne. Takav problem primećeno na Firefox-u, koji to radi nakon 30 sekundi neaktivnosti].
  • Na nivou libp2p mreže postoje vremenska ograničenja u pogledu broja akcija koje se mogu izvesti, što može uzrokovati probleme s federacijom.

Početak rada na P2P verziji Matrixa nastao je zbog želje programera da daju više slobode svojim korisnicima. Odvajanje od centralnog servera omogućava olakšavanje komunikacije unutar lokalnih i mesh mreža, i općenito, u uvjetima kada je pristup vanjskoj mreži ograničen ili odsutan. Ovo takođe pozitivno utiče na privatnost, zbog minimiziranja prenetih metapodataka, koje u ovom scenariju čuvaju samo učesnici u prepisci. Na kraju krajeva, ovo dovodi do razmatranja refaktoringa trenutnih Matrix koncepata kako bi se postigla veća prenosivost i sigurnost.

Implementacija serverskog API-ja se postiže kompilacijom servera Dendrite u WebAssembly kod, koji radi istovremeno s klijentom u obliku servisera, koristeći IndexedDB i SQLite za lokalno pohranjivanje podataka, u slučaju web verzije i Electron omotača.
Dendrite je "druga generacija" Matrix servera u Go-u koji se razvija i dizajniran je da bude potpuno modularan i može se koristiti i monolitno. U modularnom obliku, Apache Kafka se koristi za interakciju između mikroservisa, au monolitnom obliku - Naffka. Dokumentaciju za izgradnju P2P verzije Dendrite možete pronaći na GitHubu.

Dendrite je prvobitno zamišljen da bude server opšte namene koji je trebalo da bude direktna zamena Synapse, napisan u Pythonu, koji ima problema s performansama i skalabilnosti. Ali zbog potrebe za podrškom i velikog refaktoriranja Synapse-a, razvoj Dendrita je pao sa strane. Konačno, razvoj je nastavljen, ali su odlučili da razviju postojeću bazu koda ne u kontekstu opšte namene, već da se fokusiraju na prilagođavanje za ugradnju u prenosive i klijentske uređaje male potrošnje, kao što su pretraživači i telefoni.

Trenutna implementacija Dendrita je još uvijek u ranoj fazi razvoja, ali je već dovoljna za jednostavnu federaciju:

API-ji klijent-server: 34% (227/672 testa) — porast sa 33%
API-ji Federacije: 34% (35/103 testa) — porast sa 27%

Ovo nije prvi pokušaj implementacije P2P. Ranije je postojala inicijativa za stvaranje CoAP proxy za Yggdrasil mrežu za Synapse.


Programeri Matrix protokola nisu fokusirani samo na federaciju i eksperimentišu sa alatima za još veću decentralizaciju. Na primjer, sproveden je eksperiment smanjiti troškove na nivou transporta. Demon evoluira Pantalaimon - proxy na koji se svaki klijent bez podrške za šifriranje može povezati i komunicirati s šifriranim porukama. Sve preduzete inicijative imaju za cilj da to obezbede u budućnosti riješite se vezanja za prijavu na server, eliminišući MXID, interakciju sa mrežom koristeći javni ključ, koji je već delimično implementiran u Riot P2P.


Možete pronaći detaljnije informacije o konceptima planiranih implementacija u FOSDEM 2020 prezentaciji na YouTube-u и nedavna objava na blogu.

Postoji i Riot P2P varijanta za Android, zasnovana na kodu iz stare aplikacije. U budućnosti se planira prebaciti na sadašnju. RiotX.

Pored toga

  • Predstavljen projekat TARDIS (Time Agnostic Room DAG Inspection Service) je debager linearnog grafa događaja (DAG) za Matrix sobe baziran na Riot P2P.

  • U projektu cijev (server koji je razvila zajednica u Rustu) je sada implementirana enkripcija i prilozi.

  • Pojavio se eksperimentalni server u Scali - Mascarene.

izvor: linux.org.ru