Eerste release van Peer-to-Peer-client voor het federatieve Matrix-netwerk

Er is een experimentele client vrijgegeven Rel P2P.


rel - oorspronkelijk een client voor een federatief netwerk Matrix. De P2P-modificatie voegt een serverimplementatie en federatie toe aan de client zonder gebruik te maken van een gecentraliseerde DNS door middel van integratie libp2p, die ook wordt gebruikt IPFs. Dit is de eerste versie van de client die de sessie opslaat na het opnieuw laden van de pagina, maar bij de volgende grote updates (bijvoorbeeld 0.2.0) worden de gegevens nog steeds verwijderd. Daarom wordt het gebruik van de client voor iets belangrijks niet aanbevolen.

De klant implementeert federatie, het maken van kamers en het weergeven van een wereldwijde (serverloze!) catalogus van kamers.

Het belangrijkste Matrix-netwerk dat DNS gebruikt en het Matrix-netwerk op libp2p kunnen echter nog niet met elkaar federeren en communiceren.

Om de client te gebruiken, klikt u eenvoudig op de login-knop, waarna u een gegenereerde ID op het netwerk ontvangt. Gegevensexport wordt nog niet ondersteund.

Aangezien dit een onstabiele presentatie is van een mogelijk concept, kunt u in de problemen komen:

  • U kunt niet inloggen op uw account of communiceren met andere clients als de server die als servicemedewerker draait, door de browser wordt uitgeschakeld wanneer er een time-out optreedt. Zo'n probleem gespot op Firefox, die dit doet na 30 seconden inactiviteit].
  • Op libp2p-netwerkniveau zijn er tijdslimieten voor het aantal acties dat kan worden uitgevoerd, wat problemen met federatie kan veroorzaken.

De start van de werkzaamheden aan de P2P-versie van Matrix was te wijten aan de wens van de ontwikkelaars om hun gebruikers meer vrijheid te geven. Het ontkoppelen van de centrale server maakt het mogelijk om de communicatie binnen lokale en mesh-netwerken te vergemakkelijken, en in het algemeen in omstandigheden waarin de toegang tot het externe netwerk beperkt of afwezig is. Dit heeft ook een positief effect op de privacy, vanwege de minimalisering van verzonden metadata, die in dit scenario alleen door de deelnemers aan de correspondentie wordt opgeslagen. Uiteindelijk leidt dit ertoe dat men overweegt de huidige Matrix-concepten te herstructureren om een ​​grotere draagbaarheid en veiligheid te bereiken.

Implementatie van de server-API wordt bereikt door middel van servercompilatie dendrite in WebAssembly-code, die gelijktijdig met de client draait in de vorm van een Service Worker, waarbij IndexedDB en SQLite worden gebruikt om gegevens lokaal op te slaan, in het geval van de webversie en de Electron-wrapper.
Dendrite is een "tweede generatie" Matrix-server in Go die in ontwikkeling is en ontworpen is om volledig modulair te zijn en ook monolithisch te gebruiken. In modulaire vorm wordt Apache Kafka gebruikt voor interactie tussen microservices, en in monolithische vorm - Naffka. Documentatie voor het bouwen van de P2P-versie van Dendrite is te vinden op GitHub.

Dendrite was oorspronkelijk bedoeld als een server voor algemeen gebruik die bedoeld was als directe vervanging Synaps, geschreven in Python, dat prestatie- en schaalbaarheidsproblemen heeft. Maar vanwege de behoefte aan ondersteuning en ingrijpende refactoring van Synapse viel de ontwikkeling van Dendrite buiten de boot. Uiteindelijk werd de ontwikkeling hervat, maar ze besloten de bestaande codebasis niet in een algemene context te ontwikkelen, maar zich te concentreren op aanpassing voor insluiting in draagbare en energiezuinige clientapparaten, zoals browsers en telefoons.

De huidige Dendrite-implementatie bevindt zich nog in de beginfase van ontwikkeling, maar is al voldoende voor een eenvoudige federatie:

Client-Server API's: 34% (227/672 tests) – gestegen van 33%
Federatie-API's: 34% (35/103 tests) – gestegen van 27%

Dit is niet de eerste poging om P2P te implementeren. Eerder was er een initiatief om te creëren CoAP-proxy naar het Yggdrasil-netwerk voor Synapse.


De ontwikkelaars van het Matrix-protocol zijn niet alleen op federatie gericht en experimenteren met tools voor nog grotere decentralisatie. Er werd bijvoorbeeld een experiment uitgevoerd om de kosten op transportniveau te verlagen. Er evolueert een demon Pantalaimon - een proxy waarmee elke client zonder ondersteuning voor encryptie verbinding kan maken en kan communiceren met gecodeerde berichten. Alle ondernomen initiatieven zijn erop gericht dit in de toekomst te garanderen verwijder de login-binding met de server, waardoor MXID wordt geëlimineerd en interactie met het netwerk plaatsvindt met behulp van een openbare sleutel, die al gedeeltelijk is geïmplementeerd in Riot P2P.


U kunt meer gedetailleerde informatie vinden over de concepten van geplande implementaties in de FOSDEM 2020-presentatie op YouTube и recente blogpost.

Er is ook een Riot P2P-variant voor Android, gebaseerd op de code uit de oude app. In de toekomst is het de bedoeling om het over te dragen naar het huidige. RiotX.

Bovendien

  • Project gepresenteerd TARDIS (Time Agnostic Room DAG Inspection Service) is een lineaire gebeurtenisgrafiek (DAG) debugger voor Matrix-kamers op basis van Riot P2P.

  • Op projectbasis Leiding (een door de gemeenschap ontwikkelde server in Rust) is nu encryptie en bijlagen geïmplementeerd.

  • Er is een experimentele server in Scala verschenen - Mascareen.

Bron: linux.org.ru

Voeg een reactie