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

De lancering van de experimentele client heeft plaatsgevonden Riot P2P.


Riot — oorspronkelijk een client voor het federatieve netwerk Matrix. De P2P-modificatie voegt een serverimplementatie en federatie aan de client toe zonder gebruik van gecentraliseerde DNS door middel van integratie libp2p, dat ook wordt gebruikt in IPFS. Dit is de eerste versie van de client die de sessie na het herladen van de pagina behoudt, maar in de volgende grote updates (bijvoorbeeld 0.2.0) zullen de gegevens nog steeds worden verwijderd. Daarom wordt het niet aanbevolen om de client voor iets belangrijks te gebruiken.

De client heeft federatie, kamercreatie en weergave van een wereldwijde (serverloze!) kamer catalogus geïmplementeerd.

De belangrijkste Matrix-netwerk, dat DNS gebruikt, en het Matrix-netwerk op libp2p kunnen tot nu toe nog niet federeren en met elkaar communiceren.

Om de client te gebruiken, is het voldoende om op de inlogknop te klikken, waarna je een gegenereerde ID in het netwerk ontvangt. Export van gegevens wordt vooralsnog niet ondersteund.

Aangezien dit een onbetrouwbare presentatie van een mogelijke concept is, kun je met problemen te maken krijgen:

  • Je kunt niet in je account inloggen of interactie hebben met andere clients als de server, uitgevoerd als een Service Worker, door de browser wordt beëindigd na de time-outperiode. Dit probleem is opgemerkt bij Firefox, die dit na 30 seconden inactiviteit doet].
  • Op het niveau van het libp2p-netwerk zijn er beperkingen op het aantal acties dat over tijd kan worden uitgevoerd, wat problemen met federatie kan veroorzaken.

De ontwikkeling van de P2P-versie van Matrix is voortgekomen uit de wens van de ontwikkelaars om meer vrijheid aan hun gebruikers te bieden. Ontkoppeling van de centrale server vergemakkelijkt communicatie binnen lokale en mesh-netwerken, en in het algemeen in situaties waarin toegang tot een extern netwerk beperkt of afwezig is. Dit heeft ook een positieve invloed op de privacy, door de minimalisering van de overgedragen metadata, die in dit scenario alleen door de deelnemers aan de conversatie worden opgeslagen. Uiteindelijk zet dit aan tot nadenken over het refactoren van de huidige concepten van Matrix om grotere overdraagbaarheid en veiligheid te bereiken.

De implementatie van de server API wordt bereikt door de server Dendrite te compileren naar WebAssembly-code, die gelijktijdig met de client loopt als een Service Worker, gebruikmakend van IndexedDB en SQLite voor het lokaal opslaan van gegevens, in het geval van de webversie en de Electron-wrapper.
Dendrite is een in ontwikkeling zijnde 'tweede generatie' Matrix-server, geschreven in Go, gericht op volledige modulariteit, die ook monolithisch kan worden gebruikt. In de modulaire opzet wordt Apache Kafka gebruikt voor de interactie tussen microservices, en in de monolithische opzet — Naffka. De documentatie voor het bouwen van de P2P-versie van Dendrite is te vinden op GitHub.

Dendrite was oorspronkelijk bedoeld als een algemene server die een directe vervanging moest zijn Synapse, geschreven in Python, dat prestatie- en schaalbaarheidsproblemen had. Maar vanwege de noodzaak voor ondersteuning en serieuze refactoring van Synapse, werd de ontwikkeling van Dendrite een tijdlang naar de achtergrond verschoven. Uiteindelijk werd de ontwikkeling hervat, maar de bestaande codebase besloot men niet verder te ontwikkelen voor algemene doeleinden, maar zich te concentreren op de aanpassing voor integratie in draagbare en energiezuinige cliëntapparaten, zoals browsers en telefoons.

De huidige implementatie van Dendrite bevindt zich nog in een vroeg ontwikkelingsstadium, maar is al voldoende voor eenvoudige federatie:

Client-Server APIs: 34% (227/672 tests) — omhoog van 33%
Federation APIs: 34% (35/103 tests) — omhoog van 27%

Dit is niet de eerste poging tot een P2P-implementatie. Eerder was er een initiatief om CoAP-proxy in het Yggdrasil-netwerk voor Synapse.


De ontwikkelaars van het Matrix-protocol richten zich niet alleen op federatie en experimenteren met instrumenten voor nog meer decentralisatie. Bijvoorbeeld, er is een experiment uitgevoerd om de kosten op het transportniveau te verlagen. Er wordt een daemon ontwikkeld Pantalaimon — een proxy waarmee elke cliënt zich kan verbinden zonder ondersteuning voor encryptie, en interactie kan hebben met versleutelde berichten. Alle uitgevoerde initiatieven zijn gericht op het in de toekomst de afhankelijkheid van de login aan de server te elimineren, door MXID af te schaffen en interactie met het netwerk te hebben via een publieke sleutel, wat al gedeeltelijk is gerealiseerd in Riot P2P.


Meer gedetailleerde informatie over de concepten van geplande implementaties kan worden gevonden in de presentatie van FOSDEM 2020 op YouTube en in een recent gepubliceerde blogpost.

Er is ook een Riot P2P-versie voor Android, gebaseerd op de code van de oude applicatie. In de toekomst is het de bedoeling om dit over te zetten naar de actuele RiotX.

Daarnaast

  • Project gepresenteerd TARDIS (Time Agnostic Room DAG Inspection Service) — een debugger voor het lineaire gebeurteniscijfer (DAG) voor Matrix-ruimten op basis van Riot P2P.

  • In het project Conduit (een server ontwikkeld door de gemeenschap in Rust) is nu versleuteling en bijlagen zijn geïmplementeerd.

  • Er is een experimentele server op Scala — Mascarene.

Bron: linux.org.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster