Prvo izdanje Peer-to-Peer klijenta za Matrix objedinjenu mrežu

Eksperimentalni klijent je pušten Riot P2P.


pobuna - izvorno klijent za sjedinjenu mrežu Matrica. Modifikacija P2P dodaje implementaciju poslužitelja i federaciju klijentu bez korištenja centraliziranog DNS-a putem integracije libp2p, koji se također koristi u IPFS. Ovo je prva verzija klijenta koja sprema sesiju nakon ponovnog učitavanja stranice, ali u sljedećim većim ažuriranjima (na primjer, 0.2.0) podaci će se i dalje brisati. Stoga se ne preporučuje korištenje klijenta za bilo što važno.

Klijent implementira federaciju, kreiranje soba i prikaz globalnog (bez poslužitelja!) kataloga soba.

Međutim, glavna Matrix mreža koja koristi DNS i Matrix mreža na libp2p još se ne mogu udružiti i komunicirati jedna s drugom.

Za korištenje klijenta samo kliknite gumb za prijavu, nakon čega ćete dobiti generirani ID na mreži. Izvoz podataka još nije podržan.

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

  • Nećete se moći prijaviti na svoj račun ili komunicirati s drugim klijentima ako poslužitelj koji radi kao Service Worker ugasi preglednik kada istekne vrijeme. Takav problem uočen na Firefoxu, koji to radi nakon 30 sekundi neaktivnosti].
  • Na libp2p mrežnoj razini, postoje vremenska ograničenja na broj 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 središnjeg poslužitelja omogućuje lakšu komunikaciju unutar lokalnih i mesh mreža te općenito u uvjetima kada je pristup vanjskoj mreži ograničen ili ga nema. To također ima pozitivan učinak na privatnost, zbog minimiziranja prenesenih metapodataka, koje u ovom scenariju pohranjuju samo sudionici u korespondenciji. U konačnici, ovo navodi na razmatranje refaktoriranja trenutnih koncepata Matrixa kako bi se postigla veća prenosivost i sigurnost.

Implementacija API-ja poslužitelja postiže se kompilacijom poslužitelja dendritima u WebAssembly kod, koji radi istovremeno s klijentom u obliku Service Workera, koristeći IndexedDB i SQLite za lokalno pohranjivanje podataka, u slučaju web verzije i Electron omotača.
Dendrite je "druga generacija" Matrix poslužitelja u Gou koji se razvija i dizajniran je da bude potpuno modularan te se također može koristiti monolitno. U modularnom obliku Apache Kafka služi za interakciju između mikroservisa, a u monolitnom obliku - Naffka. Dokumentacija za izgradnju P2P verzije Dendritea se može pronaći na GitHubu.

Dendrite je izvorno trebao biti poslužitelj opće namjene koji je trebao biti izravna zamjena Sinapsa, napisan u Pythonu, koji ima problema s performansama i skalabilnošću. Ali zbog potrebe za podrškom i velikim refaktoriranjem Synapsea, razvoj Dendritea je pao u vodu. Naposljetku, razvoj je nastavljen, ali su odlučili razviti postojeću bazu koda ne u kontekstu opće namjene, već da se usredotoče na prilagodbu za ugradnju u prijenosne i klijentske uređaje niske potrošnje, kao što su preglednici i telefoni.

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

API-ji klijent-poslužitelj: 34% (227/672 testa) — porast s 33%
Federacijski API-ji: 34% (35/103 testa) — porast s 27%

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


Programeri Matrix protokola nisu usredotočeni samo na federaciju i eksperimentiraju s alatima za još veću decentralizaciju. Na primjer, proveden je eksperiment smanjiti troškove na razini transporta. Demon se razvija Pantalaimona - proxy na koji se svaki klijent bez podrške za enkripciju može povezati i komunicirati s šifriranim porukama. Sve inicijative koje se poduzimaju usmjerene su na to da se to osigura iu budućnosti riješite se vezanja prijave za poslužitelj, uklanjanje MXID-a, interakcija s mrežom korištenjem javnog ključa, što je već djelomično implementirano u Riot P2P.


Detaljnije informacije o konceptima planiranih implementacija možete pronaći u prezentaciji FOSDEM 2020 na YouTubeu и nedavni post na blogu.

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

Štaviše

  • Predstavljen projekt TARDIS (Time Agnostic Room DAG Inspection Service) program je za ispravljanje pogrešaka linearnog grafa događaja (DAG) za Matrix sobe temeljen na Riot P2P.

  • U projektu Cjevovod (poslužitelj koji je razvila zajednica u Rustu) je sada implementirana enkripcija i prilozi.

  • Pojavio se eksperimentalni poslužitelj u Scali - Mascarene.

Izvor: linux.org.ru

Dodajte komentar