Die erste Version des Peer-to-Peer-Clients des föderierten Netzwerks Matrix

Eine experimentelle Client-Version ist erschienen Riot P2P.


Riot, — ursprünglich ein Client für das föderierte Netzwerk Matrix. Die P2P-Modifikation fügt dem Client eine Serverimplementation und Föderation hinzu, ohne eine zentrale DNS zu verwenden, durch die Integration von libp2p, welches auch in IPFSverwendet wird. Dies ist die erste Version des Clients, die die Sitzung nach einem Seitenneuladen speichert, jedoch werden in zukünftigen Hauptversionen (z. B. 0.2.0) die Daten trotzdem gelöscht. Daher wird nicht empfohlen, den Client für wichtige Aufgaben zu verwenden.

Im Client sind Föderation, Raumerstellung und die Anzeige eines globalen (serverlosen!) Raumerverzeichnisses implementiert.

Die Hauptnetzwerk Matrix, die DNS verwendet, und das Matrix-Netzwerk auf libp2p können derzeit nicht föderiert werden und können nicht miteinander interagieren.

Um den Client zu nutzen, reicht es aus, die Anmeldetaste zu drücken. Danach erhalten Sie eine generierte ID im Netzwerk. Der Export von Daten wird derzeit nicht unterstützt.

Da dies eine instabile Präsentation eines möglichen Konzepts ist, könnten Ihnen Schwierigkeiten begegnen:

  • Sie können sich nicht in Ihr Konto einloggen oder mit anderen Kunden interagieren, wenn der als Service Worker ausgeführte Server vom Browser nach Ablauf des Zeitlimits beendet wird. Ein solches Problem wurde in Firefox, der dies nach 30 Sekunden Inaktivität tut].
  • Auf Netzwerkebene gibt es Einschränkungen bezüglich der Anzahl der pro Zeit ausgeführten Aktionen in libp2p, was zu Problemen mit der Föderation führen kann.

Die Arbeit an der P2P-Version von Matrix begann aus dem Wunsch der Entwickler, den Nutzern mehr Freiheit zu geben. Die Entkopplung vom zentralen Server erleichtert die Kommunikation in lokalen und Mesh-Netzwerken, insbesondere in Situationen, in denen der Zugang zum externen Netzwerk eingeschränkt oder nicht vorhanden ist. Außerdem hat dies positive Auswirkungen auf die Privatsphäre, da die übermittelten Metadaten minimiert werden, die in einem solchen Szenario nur von den Beteiligten der Unterhaltung gespeichert werden. Letztendlich regt dies dazu an, die aktuellen Konzepte von Matrix zu überdenken, um eine größere Portabilität und Sicherheit zu erreichen.

Die Implementierung der Server-API erfolgt durch die Kompilierung des Servers Dendrite in WebAssembly-Code, der gleichzeitig mit dem Client in Form eines Service Workers ausgeführt wird, der IndexedDB und SQLite zur lokalen Datenspeicherung verwendet, sofern es sich um die Webversion oder die Electron-Hülle handelt.
Dendrite ist ein entwickelter "Server der zweiten Generation" für Matrix, geschrieben in Go, der auf vollständige Modularität ausgerichtet ist und auch in monolithischer Form verwendet werden kann. Im modularen Format wird Apache Kafka für die Interaktion der Mikrodienste verwendet, während im monolithischen Format Naffka. Die Dokumentation zum Build der P2P-Version von Dendrite finden Sie auf GitHub.

Dendrite wurde ursprünglich als allgemeiner Server konzipiert, der eine direkte Alternative zu Synapse, geschrieben in Python, darstellen sollte, das Leistungs- und Skalierungsprobleme aufweist. Aufgrund des Bedarfs an Unterstützung und einem umfassenden Refactoring von Synapse trat die Entwicklung von Dendrite zunächst in den Hintergrund. Schließlich wurde die Entwicklung wieder aufgenommen, jedoch wurde beschlossen, den bestehenden Code nicht im Kontext der allgemeinen Nutzung weiterzuentwickeln, sondern sich auf die Anpassung für die Integration in tragbare und ressourcenschwache Clientgeräte wie Browser und Telefone zu konzentrieren.

Die aktuelle Umsetzung von Dendrite befindet sich noch in einem frühen Entwicklungsstadium, doch sie reicht bereits für eine einfache Föderation aus:

Client-Server APIs: 34 % (227/672 Tests) — ein Anstieg von 33 %
Föderation APIs: 34 % (35/103 Tests) — ein Anstieg von 27 %

Dies ist nicht der erste Versuch, P2P umzusetzen. Zuvor gab es eine Initiative zur Schaffung eines CoAP-Proxys im Yggdrasil-Netzwerk für Synapse..


Die Entwickler des Matrix-Protokolls konzentrieren sich nicht nur auf Föderation, sondern experimentieren auch mit Werkzeugen für eine noch stärkere Dezentralisierung. Zum Beispiel wurde ein Experiment durchgeführt zur Senkung der Transportkosten.Es entwickelt sich ein Daemon Pantalaimon — ein Proxy, mit dem sich jeder Client ohne Unterstützung für Verschlüsselung verbinden und mit verschlüsselten Nachrichten interagieren kann. Alle durchgeführten Initiativen zielen darauf ab, in Zukunft die Bindung von Logins an Server zu beseitigen,indem MXID abgeschafft wird und die Interaktion mit dem Netzwerk über einen öffentlichen Schlüssel erfolgt, was bereits teilweise in Riot P2P umgesetzt ist.


Weitere Informationen zu den Konzepten der geplanten Umsetzungen finden Sie in der FOSDEM 2020-Präsentation auf YouTube und in einem kürzlich veröffentlichten Blogbeitrag..

Es gibt auch eine Android-Version von Riot P2P, die auf dem Code der alten Anwendung basiert. Zukünftig ist eine Übertragung auf die aktuelle Version geplant. RiotX.

Darüber hinaus

  • Das Projekt wurde präsentiert TARDIS (Time Agnostic Room DAG Inspection Service) – ein Debugger für gerichtete azyklische Graphen (DAG) für Matrix-Räume, basierend auf Riot P2P.

  • Im Projekt Conduit (ein von der Community entwickelter Server in Rust) sind nun Verschlüsselung und Anhänge implementiert..

  • Ein experimenteller Server in Scala ist verfügbar – Mascarene.

Quelle: linux.org.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster