Primeira versión do cliente Peer-to-Peer para a rede federada de Matrix

Lanzouse un cliente experimental Riot P2P.


Tumulto - orixinalmente un cliente para unha rede federada matriz. A modificación P2P engade unha implementación e federación do servidor ao cliente sen utilizar un DNS centralizado mediante a integración libp2p, que tamén se usa en IPFS. Esta é a primeira versión do cliente que garda a sesión despois dunha recarga da páxina, pero nas próximas actualizacións importantes (por exemplo, 0.2.0) os datos aínda se eliminarán. Polo tanto, non se recomenda usar o cliente para calquera cousa importante.

O cliente implementa a federación, a creación de salas e a visualización dun catálogo global (sen servidor!) de salas.

Non obstante, a rede Matrix principal que utiliza DNS e a rede Matrix en libp2p aínda non poden federarse e interactuar entre si.

Para usar o cliente, só tes que facer clic no botón de inicio de sesión, despois do cal recibirás un ID xerado na rede. Aínda non se admite a exportación de datos.

Dado que esta é unha presentación inestable dun posible concepto, pode ter problemas:

  • Non poderás iniciar sesión na túa conta nin interactuar con outros clientes se o servidor que se executa como Service Worker é eliminado polo navegador cando se esgota. Tal problema detectado en Firefox, que fai isto despois de 30 segundos de inactividade].
  • A nivel de rede libp2p, hai límites de tempo no número de accións que se poden realizar, o que pode causar problemas coa federación.

O inicio dos traballos na versión P2P de Matrix debeuse ao desexo dos desenvolvedores de dar máis liberdade aos seus usuarios. O desacoplamento do servidor central permite facilitar a comunicación dentro de redes locais e de malla, e en xeral, en condicións nas que o acceso á rede externa é limitado ou ausente. Isto tamén ten un efecto positivo na privacidade, debido á minimización dos metadatos transmitidos, que neste escenario só almacenan os participantes na correspondencia. En definitiva, isto leva a considerar a refactorización dos conceptos actuais de Matrix para acadar unha maior portabilidade e seguridade.

A implementación da API do servidor conséguese mediante a compilación do servidor Dendrite en código WebAssembly, que se executa simultaneamente co cliente en forma de Service Worker, utilizando IndexedDB e SQLite para almacenar datos localmente, no caso da versión web e do envoltorio Electron.
Dendrite é un servidor Matrix de "segunda xeración" en Go que se está a desenvolver e está deseñado para ser totalmente modular e tamén se pode usar de forma monolítica. Nunha forma modular, Apache Kafka úsase para a interacción entre microservizos e nunha forma monolítica: Naffka. Pódese atopar documentación para construír a versión P2P de Dendrite en github.

Dendrita foi orixinalmente destinado a ser un servidor de propósito xeral que estaba destinado a ser un substituto directo Sinapse, escrito en Python, que ten problemas de rendemento e escalabilidade. Pero debido á necesidade de apoio e unha importante refactorización de Synapse, o desenvolvemento de dendrita quedou no camiño. Finalmente, retomouse o desenvolvemento, pero decidiron desenvolver a base de código existente non nun contexto de propósito xeral, senón centrarse na adaptación para a súa incorporación en dispositivos cliente portátiles e de baixo consumo, como navegadores e teléfonos.

A implementación actual de Dendrite aínda está nas súas primeiras fases de desenvolvemento, pero xa é suficiente para unha simple federación:

API cliente-servidor: 34 % (227/672 probas) - máis do 33 %
APIs da federación: 34 % (35/103 probas) - máis que o 27 %

Este non é o primeiro intento de implementar P2P. Anteriormente, había unha iniciativa para crear Proxy CoAP para a rede Yggdrasil para Synapse.


Os desenvolvedores do protocolo Matrix non se centran só na federación e están experimentando con ferramentas para unha descentralización aínda maior. Por exemplo, realizouse un experimento para reducir custos a nivel de transporte. Un demo evoluciona Pantalaimon - un proxy ao que calquera cliente sen soporte de cifrado pode conectarse e interactuar con mensaxes cifradas. Todas as iniciativas emprendidas están dirixidas a garantir iso no futuro desfacerse da vinculación de inicio de sesión ao servidor, eliminando MXID, interactuando coa rede mediante unha chave pública, que xa está parcialmente implementada en Riot P2P.


Podes atopar información máis detallada sobre os conceptos de implementacións planificadas na presentación de FOSDEM 2020 en YouTube и publicación recente do blog.

Tamén hai unha variante Riot P2P para Android, baseada no código da antiga aplicación. No futuro está previsto trasladalo ao actual. RiotX.

Ademais

  • Proxecto presentado TARDIS (Servicio de inspección DAG de salas de tempo agnóstico) é un depurador de gráficos de eventos lineais (DAG) para salas Matrix baseado en Riot P2P.

  • En proxecto Conducto (un servidor desenvolvido pola comunidade en Rust) é agora cifrado e anexos implementados.

  • Apareceu un servidor experimental en Scala - Mascareña.

Fonte: linux.org.ru

Engadir un comentario