Katselus eksperimentaalsest kliendist Riot P2P.
Riot — algselt klient föderaalses võrgus Matrix. P2P-muudatus toob kliendi sisse serveri ja föderatsiooni ilma tsentraliseeritud DNS-i kasutamiseta integratsiooni kaudu libp2p, mida kasutatakse samuti IPFS. See on esimene kliendi versioon, mis säilitab sessiooni pärast lehe uuesti laadimist, kuid tulevastes suuremates uuendustes (näiteks 0.2.0) andmed siiski kustutatakse. Seetõttu ei soovitata klienti kasutada oluliste asjade jaoks.
Kliendis on rakendatud föderatsioon, ruumide loomine ja globaalne (serverita!) ruumide kataloog.
Samal ajal ei saa põhivõrk Matrix, mis kasutab DNS-i, ja Matrix libp2p-l mitte födereeruda ega omavahel suhelda.
Kliendi kasutamiseks piisab sisenemisnupu vajutamisest, pärast mida saate genereeritud ID võrgu jaoks. Andmete eksportimine ei ole praegu toetatud.
Kuna see on ebastabiilne konseptsiooni esitlus, võite kohtuda probleemidega:
- Te ei saa sisse logida oma kontole ega suhelda teiste klientidega, kui brauser lõpetab Service Workerina töötava serveri pärast ooteaja möödumist. Sellist probleem on täheldatud Firefoxis, mis teeb seda pärast 30-minutilist tegevusetust].
- Võrgutasandil kehtivad libp2p-s ajaga seonduvad piirangud, mis võivad põhjustada föderatsiooni probleeme.
P2P-versiooni arendamine Matrixis on tingitud arendajate soovist anda kasutajatele rohkem vabadust. Keskserverist sõltumatuse tagamine lihtsustab suhtlemist kohalikes ja mesh-võrkudes, samuti olukordades, kus juurdepääs välisele võrgule on piiratud või puudub. See mõjutab positiivselt privaatsust, vähendades edastatavaid metaandmeid, mis antud stsenaariumis kuuluvad ainult suhtlusele osalejatele. Lõppkokkuvõttes paneb see mõtlema Matrixi praeguste kontseptsioonide ümberkujundamisele suurema ülekantavuse ja turvalisuse saavutamiseks.
Serveri API rakendamine saavutatakse serveri kompileerimise kaudu Dendrite WebAssembly koodiks, mis töötab samaaegselt kliendi kõrval Service Workerina, kasutades andmete kohalikuks salvestamiseks IndexedDB-d ja SQLite-d, veebiversiooni ja Electron-i pakendi puhul.
Dendrite on arendatav "teise põlvkonna" Matrix server, mis on kirjutatud Go keeles, keskendudes täielikule modulariteedile, mida on võimalik kasutada ka monoliitses vormis. Moodulite versiooni jaoks, et mikroteenuseid omavahel ühendada, kasutatakse Apache Kafka-d, monoliitses vormis — Naffka. Dendrite P2P versiooni kokkupanekuks on dokumentatsioon saadaval GitHub'is.
Dendrite mõeldi algselt välja kui üldotstarbeline server, mis pidanuks olema otsene asendaja Synapse, Pythonis kirjutatud, millel on jõudluse ja skaleeritavuse probleemid. Kuid vajaduse tõttu toe ja tõsise refaktorimise järele Synapse'is lükkus Dendrite arendus teisejärguliseks. Lõpuks arendus taas käivitati, kuid otsustati, et juba olemasolevat koodibaasi arendatakse mitte üldotstarbelisena, vaid keskendudes kohandamisele kaasaskantavatele ja madala võimsusega kliendiseadmetele, nagu brauserid ja telefonid.
Praegune Dendrite rakendus on endiselt arendamise varases etapis, kuid juba piisav lihtsaks föderatsiooniks:
Klient-serveri API-d: 34% (227/672 testi) — tõusnud 33%-lt
Föderatsiooni API-d: 34% (35/103 testi) — tõusnud 27%-lt
See ei ole esimene katse P2P rakendamiseks. Varasemalt on olnud algatus CoAP-proksi Yggdrasili võrgus Synapse'i jaoks.
Matrix protokolli arendajad ei piira end ainult föderatsiooniga, vaid katsetavad tööriistu veelgi suurema detsentraliseerimise saavutamiseks. Näiteks viidi läbi katse transporditasandi kulude vähendamiseks. Arendatakse deemonit Pantalaimon — proksi, millega saab ühenduda mistahes kliendiga ilma krüptimise toeta ning suhelda krüpteeritud sõnumitega. Kõik algatatud ettevõtmised on suunatud tulevikus login'i serveriga sidumise kaotamisele, kaotades MXID, suheldes võrguga avaliku võtme kaudu, mis on juba osaliselt rakendatud Riot P2P-s.
Detailsemaid teavet kavandatud rakenduste kontseptsioonide kohta leiate FOSDEM 2020 esitluses YouTube'is ja hiljuti ilmunud blogipostitusest.
On olemas ka Riot P2P variant Androidile, mis põhineb vana rakenduse koodil. Tulevikus on plaanis see ajakohasele RiotX.
Lisaks
-
Esitletud projekt TARDIS (Ajavahetuses Habra DAG-i Inspektsiooniteenus) — Matrix-toa (DAG) sündmuste lineaarse graafi tõrkeotsinguteenuse tööriist, mis põhineb Riot P2P-l.
-
Projektis Conduit (ühiskonna arendatud server Rusti keeles) on nüüd rakendatud krüpteerimine ja manused.
-
Eksperimentaalne server Scala peal on nüüd saadaval — Mascarene.
Allikas: linux.org.ru
