Esimene vÀljaanne Peer-to-Peer kliendist föderatiivses Matrix-vÔrgustikus

Ilmus katse klient Riot P2P.


Riot — algselt föderatiivse vĂ”rgu klient Matrix. P2P-muudatus lisab kliendile serveri ja föderatsiooni rakenduse, ilma et oleks vaja tsentraliseeritud DNS-i, integreerides libp2p, mida kasutatakse ka IPFS. See on esimene klient, mis salvestab seansi pĂ€rast lehe vĂ€rskendamist, kuid tulevastes suuremates vĂ€rskendustes (nĂ€iteks 0.2.0) andmed siiski kustutatakse. SeetĂ”ttu ei soovitata klienti oluliste ĂŒlesannete jaoks kasutada.

Kliendis on rakendatud föderatsioon, ruumide loomine ja globaalset (serveriteta!) ruumide katalooge kuvamine.

Siiski ei saa Matrixi peamine vÔrk, mis kasutab DNS-i, ja Matrixi vÔrk libp2p jaoks veel föderatsiooni luua ega omavahel suhelda.

Kliendi kasutamiseks piisab sisenemisnupu vajutamisest, pÀrast mida saate genereeritud ID vÔrgu sees. Andmete eksportimine pole hetkel toetatud.

Kuna see on ebastabiilne esitlus vÔimalikust kontseptsioonist, vÔite kohtuda probleemidega:

  • Te ei saa oma kontole sisse logida ega teiste klientidega suhelda, kui teenuse töötajana kĂ€ivitatud server katkestatakse brauseri poolt ooteaja lĂ”ppemisel. Selline probleem on tĂ€heldatud Firefoxis, mis teeb seda pĂ€rast 30 sekundi pikkust tegevusetust].
  • VĂ”rgu tasandil rakendavad libp2p ajaliselt teostatavate toimingute arvu piiranguid, mis vĂ”ivad tekitada probleeme föderatsiooniga.

P2P-versiooni vĂ€lja arendamine Matrixi jaoks on tingitud arendajate soovist anda oma kasutajatele rohkem vabadust. Keskserverist vabastamine vĂ”imaldab hĂ”lbustada suhtlust kohalikes ja mesh-vĂ”rkudes, ning ĂŒldiselt, olukordades, kus juurdepÀÀs vĂ€lisele vĂ”rgule on piiratud vĂ”i puudub. See mĂ”jutab positiivselt ka privaatsust, vĂ€hendades edastatavate metaandmete hulka, mis selles stsenaariumis jÀÀvad ainult vestluse osalejateni. LĂ”puks paneb see mĂ”tlema Matrixi praeguste kontseptsioonide refaktorimisele suurema kaasaskantavuse ja turvalisuse saavutamiseks.

Serveri API rakendamine saavutatakse serveri koostamise kaudu Dendrite WebAssembly koodi, mis kĂ€ivitub samal ajal kliendiga teenuse töötajana, kasutades kohalike andmete salvestamiseks IndexedDB-d ja SQLite-d, veebiversiooni ja Electron-ĂŒmbrise korral.
Dendrite on vĂ€lja töötatav Matrixi „teise pĂ”lvkonna” server, mis on kirjutatud Go keeles ja mille eesmĂ€rgiks on tĂ€ielik modulaarsus, vĂ”imaldades seda kasutada ka monoliitselt. Modulaarses vormis suhtlevad mikroteenused Apache Kafka abil, monoliitses vormis — Naffka. Dendrite P2P versiooni koostamise dokumentatsiooni leiate GitHubis.

Dendrite, mis kavandati algselt universaalse serverina, mille eesmĂ€rk oli olla otsene asendus Synapse, Pythonis kirjutatud versioonile, millel on jĂ”udlus- ja skaleeritavusprobleemid. Kuid vajadus toetuse jĂ€rele ja Synapse'i tĂ”sine refaktoreerimine tĂ”ukas Dendrite arenduse tagaplaanile. LĂ”puks arendust taastati, kuid olemasolevat koodibaasi otsustati arendada mitte ĂŒldise eesmĂ€rgiga, vaid keskenduda kohandamisele kaasaskantavatele ja madala vĂ”imsusega kliendi seadmetele, nagu brauserid ja telefonid.

Dendrite praegune teostus on veel varajases arendusfaasis, kuid seda on piisavalt lihtsaks föderatsiooniks:

Kliendi-serveri API-d: 34% (227/672 testi) — ĂŒles 33%-lt
Föderatsiooni API-d: 34% (35/103 testi) — ĂŒles 27%-lt

See ei ole esimene katse P2P rakendamiseks. Varem oli ettepanek luua CoAP-proksi Yggdrasili vÔrku Synapse'i jaoks.


Matrixi protokolli arendajad ei piira end ainult föderatsiooniga ning katsetavad tööriistadega veelgi suurema detsentraliseerimise nimel. NĂ€iteks viidi lĂ€bi katse transporttasude vĂ€hendamiseks. Areneb deemon Pantalaimon — proksi, millega saab ĂŒhendada iga kliendi ilma krĂŒptimise toeta ja suhelda krĂŒpteeritud sĂ”numitega. KĂ”ik ellu viidud algatused on suunatud sellele, et tulevikus vabaneda kasutajatunnuse sidumisest serveriga, kĂ”rvaldades MXID, suheldes vĂ”rguga avaliku vĂ”tme kaudu, mis on juba osaliselt rakendatud Riot P2P-s.


Rohkem teavet kavandatud rakenduste kontseptsioonide kohta leiate FOSDEM 2020 esitlusest YouTube'is ja hiljuti ilmunud blogipostitusest.

On olemas ka Riot P2P variant Androidile, mis pÔhineb vana rakenduse koodil. Tulevikus on plaanis seda tÀiendada kaasaegse RiotX.

Lisaks

  • Esitletud projekt TARDIS (Time Agnostic Room DAG Inspection Service) — Matrixi ruumide lineaarse sĂŒndmusgraafi (DAG) silumisteenus Riot P2P pĂ”hjal.

  • Projektis Conduit (kogukonna poolt arendatav Rusti keeles kirjutatud server) on nĂŒĂŒd rakendatud on krĂŒpteerimine ja manused.

  • KĂ€ivitati eksperimentaalne server Scala - Mascarene.

Allikas: linux.org.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster