Numri i parë i klientit Peer-to-Peer të rrjetit federativ Matrix

U lansua klienti eksperimental Riot P2P.


Riot — fillimisht klient për rrjetin e federuar Matrix. Modifikimi P2P shton në klient realizimin e serverit dhe federatën pa përdorimin e DNS-it të centralizuar përmes integrimit libp2p, i cili përdoret gjithashtu në IPFS. Kjo është versioni i parë i klientit që ruan seancën pas rinisjes së faqes, por në përditësimet e ardhshme kryesore (p.sh., 0.2.0) të dhënat megjithatë do të fshihen. Prandaj, nuk rekomandohet të përdorni klientin për diçka të rëndësishme.

Në klient është realizuar federata, krijimi i dhomave dhe shfaqja e një katalogu global (pa server!) të dhomave.

Megjithatë, rrjeti kryesor Matrix, që përdor DNS, dhe rrjeti Matrix në libp2p për momentin nuk mund të federohen dhe të ndërveprojnë me njëri-tjetrin.

Për të përdorur klientin, mjafton të klikoni butonin për t'u futur, pas së cilës do të merrni një ID të gjeneruar në rrjet. Eksporti i të dhënave aktualisht nuk mbështetet.

Duke qenë një prezantim i paqëndrueshëm i një koncepti të mundshëm, mund të përballeni me disa vështirësi:

  • Nuk do të mund të hyni në llogarinë tuaj ose të ndërveproni me klientët e tjerë nëse serveri, i cili është aktivizuar si një Service Worker, ndalet nga shfletuesi pas skadimit të kohës. Ky problem është vënë re te Firefox, i cili e bën këtë pas 30 sekondash pasiviteti].
  • Në nivelin e rrjetit, libp2p ka kufij për numrin e veprimeve që kryhen në kohë, çka mund të shkaktojë probleme me federatën.

Fillimi i punës për versionin P2P të Matrix është motivuar nga dëshira e zhvilluesve për të ofruar më shumë liri për përdoruesit e tyre. Shkëputja nga serveri qendror lejon lehtësimin e komunikimit brenda rrjeteve lokale dhe mesh, dhe në përgjithësi, në kushte ku dalja në rrjetin e jashtëm është e kufizuar ose mungon. Kjo gjithashtu ndihmon pozitivisht në privatësi, për shkak të minimizimit të metadatat e transmetuara, të cilat në këtë skenar ruhen vetëm nga pjesëmarrësit e bisedës. Në fund, kjo nxit të mendosh për rifaktorizimin e koncepteve aktuale të Matrix për të arritur një portabilitet dhe siguri më të madhe.

Implementimi i API-së serverike arrihet përmes kompilimit të serverit Dendrite në kodin WebAssembly, i cili ekzekutohet në mënyrë të njëkohshme me klientin si një Shërbim Punonjës, duke përdorur IndexedDB dhe SQLite për ruajtjen e të dhënave lokalisht, në rastin e versionit në internet dhe të mbështjellësit Electron.
Dendrite — është një "server i gjeneratës së dytë" Matrix që zhvillohet në gjuhën Go, i orientuar drejt modularitetit të plotë, i cili gjithashtu mund të përdoret në një formë monolite. Në formën modulare për ndërveprimin e mikroshërbimeve përdoret Apache Kafka, ndërsa në monolitin — Naffka. Dokumentacioni për ndërtimin e versionit P2P të Dendrite mund të gjendet në GitHub.

Dendrite fillimisht u konceptua si një server me qëllim të përgjithshëm, i cili duhej të ishte një zëvendësim i drejtpërdrejtë Synapse, i shkruar në Python, i cili ka probleme me performancën dhe shkallëzimin. Por për shkak të nevojës për mbështetje dhe një ristrukturim të rëndësishëm të Synapse, zhvillimi i Dendrite u tërhoq në plan të dytë. Në fund, zhvillimi u rinis, megjithatë vendosën të zhvillojnë bazën e kodit ekzistuese jo në kontekstin e qëllimit të përgjithshëm, por të fokusohet në adaptimin për integrimin në pajisje të portative dhe me kapacitet të ulët, si shfletuesit dhe telefonat.

Implementimi aktual i Dendrite është ende në fazën e hershme të zhvillimit, por kjo është e mjaftueshme për një federatë të thjeshtë:

API-të Client-Server: 34% (227/672 teste) — një rritje nga 33%
API-të e Federatës: 34% (35/103 teste) — një rritje nga 27%

Kjo nuk është përpjekja e parë për të realizuar P2P. Më parë ka pasur një iniciativë për të krijuar proxy CoAP në rrjetin Yggdrasil për Synapse.


Zhvilluesit e protokollit Matrix nuk përqendrohen vetëm në federatë dhe eksperimentojnë me mjete për decentralizim të mëtejshëm. Për shembull, është zhvilluar një eksperiment për të reduktuar kostot në nivelin e transportit. Po zhvillohet demon Pantalaimon — një proxy, të cilit mund t’i lidhet çdokund klient pa mbështetje për enkriptim dhe të ndërveprojë me mesazhet e enkriptuara. Të gjitha iniciativat e kryera kanë si qëllim që në të ardhmen të eliminojnë lidhjen e login-it me serverin, duke hequr MXID, duke ndërvepruar me rrjetin përmes çelësit publik, që tashmë është realizuar pjesërisht në Riot P2P.


Informacione më të detajuara mbi konceptet e realizimeve të planifikuara mund të gjenden në prezantimin FOSDEM 2020 në YouTube dhe në një postim të fundit në blog.

Ka është gjithashtu një variant Riot P2P për Android, i bazuar në kodin e aplikacionit të vjetër. Në të ardhmen planifikohet të përkthehet në aktualin RiotX.

Për më tepër

  • Është paraqitur projekti TARDIS (Shërbimi i Inspektimit të DAG me Koha Agnostike) - një debugger për grafikun e linjës së ngjarjeve (DAG) për dhomat Matrix të bazuara në Riot P2P.

  • Në projektin Conduit (server i zhvilluar nga komuniteti në gjuhën Rust) tani janë realizuar enkriptimi dhe ngarkesat.

  • Doli një server eksperimental në Scala - Mascarene.

Burimi: linux.org.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster