Primer llançament de Matrix Federated Network Peer-to-Peer Client

S'ha llançat un client experimental Riot P2P.


Riot - originalment un client per a una xarxa federada matriu. La modificació P2P afegeix una implementació de servidor i una federació al client sense utilitzar un DNS centralitzat mitjançant la integració libp2p, que també s'utilitza a IPFS. Aquesta és la primera versió del client que desa la sessió després d'una recàrrega de la pàgina, però en les properes actualitzacions importants (per exemple, 0.2.0) les dades encara se suprimiran. Per tant, no es recomana utilitzar el client per a qualsevol cosa important.

El client implementa la federació, la creació de sales i la visualització d'un catàleg global (sense servidor!) de sales.

Tanmateix, la xarxa principal de Matrix que utilitza DNS i la xarxa Matrix a libp2p encara no poden federar-se i interactuar entre elles.

Per utilitzar el client, només cal que feu clic al botó d'inici de sessió, després del qual rebreu un identificador generat a la xarxa. L'exportació de dades encara no és compatible.

Com que es tracta d'una presentació inestable d'un possible concepte, és possible que tingueu problemes:

  • No podreu iniciar la sessió al vostre compte ni interactuar amb altres clients si el servidor que s'executa com a Service Worker és matat pel navegador quan s'esgota el temps. Un problema així detectat al Firefox, que ho fa després de 30 segons d'inactivitat].
  • A nivell de xarxa libp2p, hi ha límits de temps pel que fa al nombre d'accions que es poden realitzar, cosa que pot provocar problemes amb la federació.

L'inici dels treballs en la versió P2P de Matrix es va deure al desig dels desenvolupadors de donar més llibertat als seus usuaris. El desacoblament del servidor central permet facilitar la comunicació dins de les xarxes locals i de malla, i en general, en condicions en què l'accés a la xarxa externa és limitat o absent. Això també té un efecte positiu en la privadesa, a causa de la minimització de les metadades transmeses, que en aquest escenari només s'emmagatzemen els participants en la correspondència. En definitiva, això porta a considerar la refactorització dels conceptes actuals de Matrix per aconseguir una major portabilitat i seguretat.

La implementació de l'API del servidor s'aconsegueix mitjançant la compilació del servidor Dendrita en codi WebAssembly, que s'executa simultàniament amb el client en forma de Service Worker, utilitzant IndexedDB i SQLite per emmagatzemar dades localment, en el cas de la versió web i l'embolcall d'Electron.
Dendrite és un servidor Matrix de "segona generació" a Go que s'està desenvolupant i està dissenyat per ser totalment modular i també es pot utilitzar de manera monolítica. En una forma modular, Apache Kafka s'utilitza per a la interacció entre microserveis, i en una forma monolítica: Naffka. Es pot trobar documentació per crear la versió P2P de Dendrite a GitHub.

Dendrita va ser originalment pensat per ser un servidor de propòsit general que pretenia ser un reemplaçament directe Synapse, escrit en Python, que té problemes de rendiment i escalabilitat. Però a causa de la necessitat de suport i d'una important refactorització de Synapse, el desenvolupament de la dendrita va quedar en el camí. Finalment, es va reprendre el desenvolupament, però van decidir desenvolupar la base de codi existent no en un context de propòsit general, sinó centrar-se en l'adaptació per incrustar-se en dispositius client portàtils i de baix consum, com ara navegadors i telèfons.

La implementació actual de Dendrite encara es troba en les seves primeres etapes de desenvolupament, però ja és suficient per a una simple federació:

API client-servidor: 34% (227/672 proves), més que el 33%
API de la federació: 34% (35/103 proves), més del 27%

Aquest no és el primer intent d'implementar P2P. Abans, hi havia una iniciativa per crear Proxy CoAP a la xarxa Yggdrasil per a Synapse.


Els desenvolupadors del protocol Matrix no es centren només en la federació i estan experimentant amb eines per a una descentralització encara més gran. Per exemple, es va fer un experiment per reduir costos a nivell de transport. Un dimoni evoluciona pantalaimon - un servidor intermediari al qual qualsevol client sense suport de xifratge es pot connectar i interactuar amb missatges xifrats. Totes les iniciatives que es duen a terme tenen com a objectiu garantir-ho en el futur desfer-se de l'enllaç d'inici de sessió al servidor, eliminant MXID, interactuant amb la xarxa mitjançant una clau pública, que ja està parcialment implementada a Riot P2P.


Podeu trobar informació més detallada sobre els conceptes d'implementacions planificades a la presentació de FOSDEM 2020 a YouTube и publicació recent al blog.

També hi ha una variant Riot P2P per a Android, basada en el codi de l'aplicació antiga. En un futur està previst traslladar-lo a l'actual. RiotX.

Per altra banda

  • Projecte presentat TARDIS (Servei d'inspecció del DAG de la sala agnòstica del temps) és un depurador de gràfics d'esdeveniments lineals (DAG) per a sales Matrix basat en Riot P2P.

  • En projecte Conducte (un servidor desenvolupat per la comunitat a Rust) és ara xifratge i fitxers adjunts implementats.

  • Ha aparegut un servidor experimental a Scala - Mascarena.

Font: linux.org.ru

Afegeix comentari