Erste Veröffentlichung des Peer-to-Peer-Clients für das Matrix-Verbundnetzwerk

Ein experimenteller Client wurde veröffentlicht Riot P2P.


Aufruhr - ursprünglich ein Client für ein Verbundnetzwerk Matrix. Die P2P-Modifikation fügt dem Client eine Serverimplementierung und einen Verbund hinzu, ohne ein zentralisiertes DNS durch Integration zu verwenden libp2p, das auch in verwendet wird IPFS. Dies ist die erste Version des Clients, die die Sitzung nach einem Neuladen der Seite speichert, aber bei den nächsten größeren Updates (z. B. 0.2.0) werden die Daten weiterhin gelöscht. Daher wird davon abgeraten, den Client für wichtige Zwecke zu verwenden.

Der Client implementiert die Föderation, Raumerstellung und Anzeige eines globalen (serverlosen!) Raumkatalogs.

Allerdings können das Haupt-Matrix-Netzwerk, das DNS verwendet, und das Matrix-Netzwerk auf libp2p noch keinen Verbund bilden und miteinander interagieren.

Um den Client zu nutzen, klicken Sie einfach auf die Anmeldeschaltfläche. Anschließend erhalten Sie eine generierte ID im Netzwerk. Der Datenexport wird noch nicht unterstützt.

Da es sich hierbei um eine instabile Darstellung eines möglichen Konzepts handelt, kann es zu Problemen kommen:

  • Sie können sich nicht bei Ihrem Konto anmelden oder mit anderen Clients interagieren, wenn der als Service Worker ausgeführte Server bei einer Zeitüberschreitung vom Browser beendet wird. So ein Problem entdeckt auf Firefox, was dies nach 30 Sekunden Inaktivität tut].
  • Auf der libp2p-Netzwerkebene gibt es zeitliche Beschränkungen für die Anzahl der Aktionen, die ausgeführt werden können, was zu Problemen mit der Föderation führen kann.

Der Beginn der Arbeit an der P2P-Version von Matrix war auf den Wunsch der Entwickler zurückzuführen, ihren Benutzern mehr Freiheiten zu geben. Die Entkopplung vom zentralen Server ermöglicht die Erleichterung der Kommunikation innerhalb lokaler und Mesh-Netzwerke sowie allgemein unter Bedingungen, bei denen der Zugriff auf das externe Netzwerk eingeschränkt oder nicht möglich ist. Dies wirkt sich auch positiv auf die Privatsphäre aus, da die übermittelten Metadaten minimiert werden und in diesem Szenario nur von den an der Korrespondenz Beteiligten gespeichert werden. Letztendlich führt dies dazu, dass man darüber nachdenkt, aktuelle Matrix-Konzepte zu überarbeiten, um eine größere Portabilität und Sicherheit zu erreichen.

Die Implementierung der Server-API erfolgt durch Serverkompilierung Dendrit in WebAssembly-Code, der gleichzeitig mit dem Client in Form eines Service Workers ausgeführt wird und IndexedDB und SQLite verwendet, um Daten lokal zu speichern, im Fall der Webversion und des Electron-Wrappers.
Bei Dendrite handelt es sich um einen Matrix-Server der „zweiten Generation“ in Go, der vollständig modular aufgebaut ist und auch monolithisch genutzt werden kann. In modularer Form wird Apache Kafka für die Interaktion zwischen Microservices und in monolithischer Form verwendet – Naffka. Dokumentation zum Erstellen der P2P-Version von Dendrite finden Sie hier auf GitHub.

Dendrite war ursprünglich als Allzweckserver gedacht, der als direkter Ersatz dienen sollte Synapse, geschrieben in Python, das Leistungs- und Skalierbarkeitsprobleme aufweist. Aufgrund des Bedarfs an Unterstützung und einer umfassenden Umgestaltung von Synapse blieb die Entwicklung von Dendrite jedoch auf der Strecke. Letztlich wurde die Entwicklung wieder aufgenommen, aber man entschied sich dafür, die vorhandene Codebasis nicht in einem Allzweckkontext zu entwickeln, sondern sich auf die Anpassung für die Einbettung in tragbare und stromsparende Client-Geräte wie Browser und Telefone zu konzentrieren.

Die aktuelle Dendrite-Implementierung befindet sich noch in einem frühen Entwicklungsstadium, reicht aber bereits für eine einfache Föderation aus:

Client-Server-APIs: 34 % (227/672 Tests) – gegenüber 33 %
Föderations-APIs: 34 % (35/103 Tests) – gegenüber 27 %

Dies ist nicht der erste Versuch, P2P zu implementieren. Zuvor gab es eine Initiative zur Gründung CoAP-Proxy zum Yggdrasil-Netzwerk für Synapse.


Die Entwickler des Matrix-Protokolls konzentrieren sich nicht nur auf die Föderation und experimentieren mit Tools für eine noch stärkere Dezentralisierung. Beispielsweise wurde ein Experiment durchgeführt Kosten auf Transportebene zu senken. Ein Dämon entwickelt sich Pantalaimon – ein Proxy, mit dem sich jeder Client ohne Verschlüsselungsunterstützung verbinden und mit verschlüsselten Nachrichten interagieren kann. Alle ergriffenen Initiativen zielen darauf ab, dies auch in Zukunft sicherzustellen Beseitigen Sie die Anmeldebindung an den Server, Eliminierung von MXID, Interaktion mit dem Netzwerk über einen öffentlichen Schlüssel, der bereits teilweise in Riot P2P implementiert ist.


Nähere Informationen zu den Konzepten geplanter Umsetzungen finden Sie hier in der FOSDEM 2020-Präsentation auf YouTube и aktueller Blogbeitrag.

Es gibt auch eine Riot P2P-Variante für Android, die auf dem Code der alten App basiert. Zukünftig ist eine Übertragung auf das jetzige geplant. RiotX.

Zudem

  • Projekt vorgestellt TARDIS (Time Agnostic Room DAG Inspection Service) ist ein linearer Ereignisdiagramm-Debugger (DAG) für Matrix-Räume, der auf Riot P2P basiert.

  • Im Projekt Rohrleitung (ein von der Community entwickelter Server in Rust) ist jetzt Verschlüsselung und Anhänge implementiert.

  • Ein experimenteller Server in Scala ist erschienen - Maskaren.

Source: linux.org.ru

Kommentar hinzufügen