Matrix sare federaturako Peer-to-Peer bezeroaren lehen bertsioa

Bezero esperimental bat kaleratu da Riot P2P.


Riot - jatorriz sare federatu baterako bezeroa Matrix. P2P aldaketak zerbitzariaren ezarpena eta federazioa gehitzen dizkio bezeroari, integrazioaren bidez DNS zentralizaturik erabili gabe libp2purtean ere erabiltzen dena IPFS. Hau da orrialdea birkargatu ondoren saioa gordetzen duen bezeroaren lehen bertsioa, baina hurrengo eguneratze nagusietan (adibidez, 0.2.0) datuak oraindik ezabatuko dira. Hori dela eta, ez da gomendagarria bezeroa ezer garrantzitsuetarako erabiltzea.

Bezeroak federazioa, gelak sortzea eta gelen katalogo globala (zerbitzaririk gabekoa!) bistaratzen ditu.

Hala ere, DNS erabiltzen duen Matrix sare nagusiak eta libp2p-en Matrix sareak ezin dira oraindik federatu eta elkarren artean elkarreragin.

Bezeroa erabiltzeko, egin klik saioa hasteko botoian, eta ondoren sarean sortutako ID bat jasoko duzu. Datuen esportazioa ez da onartzen oraindik.

Hau kontzeptu posible baten aurkezpen ezegonkorra denez, arazoak izan ditzakezu:

  • Ezin izango duzu zure kontuan saioa hasi edo beste bezero batzuekin elkarreragin, zerbitzu-langile gisa exekutatzen ari den zerbitzaria denbora igarotzen denean arakatzaileak hiltzen badu. Halako arazoa Firefox-en ikusi da, 30 segundo inaktibitatearen ondoren egiten duena].
  • Libp2p sare mailan, egin daitezkeen ekintza kopuruan denbora mugak daude, eta horrek arazoak sor ditzake federazioarekin.

Matrix-en P2P bertsioaren lanen hasiera garatzaileek erabiltzaileei askatasun gehiago emateko nahia izan zen. Zerbitzari zentraletik desakoplatzeak sare lokal eta sareen barruan komunikazioa erraztea ahalbidetzen du, eta, oro har, kanpoko sarerako sarbidea mugatua edo ez dagoen baldintzetan. Horrek pribatutasunean ere eragin positiboa du, transmititutako metadatuak minimizatu direlako, agertoki honetan korrespondentziako parte-hartzaileek soilik gordetzen dituztenak. Horrek, azken finean, Matrix-en egungo kontzeptuak birfaktorizatzea aztertzera eramaten du eramangarritasun eta segurtasun handiagoa lortzeko.

Zerbitzariaren APIaren ezarpena zerbitzariaren konpilazioaren bidez lortzen da Dendrite WebAssembly kodean, bezeroarekin aldi berean exekutatzen dena Service Worker moduan, IndexedDB eta SQLite erabiliz datuak lokalean gordetzeko, web bertsioaren eta Electron wrapper-aren kasuan.
Dendrite "bigarren belaunaldiko" Matrix zerbitzaria da Go-n, garatzen ari dena eta guztiz modularra izateko diseinatuta dago eta monolitikoki ere erabil daiteke. Forma modular batean, Apache Kafka mikrozerbitzuen arteko elkarrekintzarako erabiltzen da, eta forma monolitikoan - Naffka. Dendriten P2P bertsioa eraikitzeko dokumentazioa aurki daiteke GitHub-en.

Dendrite jatorriz helburu orokorreko zerbitzari bat izan nahi zuen, ordezkapen zuzena izan nahi zuena Sinapsis, Python-en idatzia, errendimendu eta eskalagarritasun arazoak dituena. Baina Synapse-ren laguntza eta birfaktorizazio handia behar zela eta, Dendriten garapena bide bazterrean geratu zen. Azken finean, garapena berriro hasi zen, baina lehendik zegoen kode-oinarria ez helburu orokorreko testuinguru batean garatzea erabaki zuten, baizik eta gailu eramangarrietan eta potentzia gutxiko bezeroen gailuetan txertatzeko egokitzapenean zentratzea, arakatzaileak eta telefonoak adibidez.

Egungo Dendrite inplementazioa garapenaren hasierako fasean dago oraindik, baina nahikoa da jada federazio soil baterako:

Bezero-Zerbitzariaren APIak: % 34 (227/672 proba) - % 33tik gora
Federazioaren APIak: % 34 (35/103 probak) - % 27tik gora

Hau ez da P2P ezartzeko lehen saiakera. Aurretik, sortzeko ekimena zegoen CoAP proxy Yggdrasil sarerako Synapse-rako.


Matrix protokoloaren garatzaileak ez daude federaziora bakarrik bideratzen eta are deszentralizazio handiagoa lortzeko tresnekin esperimentatzen ari dira. Adibidez, esperimentu bat egin zen garraio mailan kostuak murrizteko. Deabru bat eboluzionatzen da Pantalaimon - enkriptazio-laguntzarik gabeko edozein bezero konektatu eta enkriptatutako mezuekin elkarreragin dezakeen proxy bat. Egindako ekimen guztiak etorkizunean hori bermatzea dute helburu kendu zerbitzariari saio-hasiera lotzea, MXID ezabatuz, sarearekin elkarreraginean gako publiko bat erabiliz, dagoeneko partzialki inplementatuta dagoen Riot P2P-n.


Aurreikusitako ezarpenen kontzeptuei buruzko informazio zehatzagoa aurki dezakezu YouTube-n FOSDEM 2020 aurkezpenean ΠΈ blogeko azken argitalpena.

Androiderako Riot P2P aldaera bat ere badago, aplikazio zaharreko kodean oinarrituta. Etorkizunean oraingora pasatzea aurreikusten da. RiotX.

Gainera

  • Aurkeztutako proiektua TARDIS (Time Agnostic Room DAG Inspection Service) Riot P2P-n oinarritutako Matrix geletarako gertaeren grafiko lineal (DAG) arazketa da.

  • Proiektuan kanala (Komunitateak Garatutako zerbitzaria Rust-en) da orain enkriptatzea eta eranskinak ezarrita.

  • Scala-n zerbitzari esperimental bat agertu da - Mascarene.

Iturria: linux.org.ru

Gehitu iruzkin berria