Es wurde ein experimenteller Client veröffentlicht Riot P2P.
Riot — ursprünglich ein Client für das föderierte Netzwerk Matrix. Die P2P-Modifikation fügt dem Client eine Serverimplementierung und Föderation ohne Verwendung von zentralisiertem DNS durch Integration hinzu libp2p, das auch in IPFS. Dies ist die erste Version des Clients, die die Sitzung nach einem Seitenneuladung speichert, aber in den folgenden Hauptupdates (z. B. 0.2.0) werden die Daten dennoch gelöscht. Daher wird empfohlen, den Client nicht für wichtige Dinge zu verwenden.
Im Client sind Föderation, Erstellung von Räumen und Anzeige eines globalen (serverlosen!) Verzeichnisses von Räumen implementiert.
Die Hauptnetzwerk Matrix, das DNS verwendet, und das Matrix-Netzwerk auf libp2p können bisher nicht föderiert werden und interagieren nicht miteinander.
Um den Client zu nutzen, reicht es aus, auf die Anmeldetaste zu klicken, nach der Sie eine generierte ID im Netzwerk erhalten. Der Export von Daten wird derzeit nicht unterstützt.
Da dies eine instabile Präsentation eines möglichen Konzepts ist, können Sie auf Probleme stoßen:
- Sie können sich nicht in Ihr Konto einloggen oder mit anderen Clients interagieren, wenn der als Service Worker ausgeführte Server vom Browser nach Ablauf der Wartezeit beendet wird. Ein solches Problem wurde bei Firefox, das dies nach 30 Sekunden Inaktivität tut].
- Auf der Netzwerkebene gibt es Einschränkungen für die Anzahl der gleichzeitig ausgeführten Aktionen, die Probleme mit der Föderation verursachen können.
Der Beginn der Arbeit an der P2P-Version von Matrix ist durch den Wunsch der Entwickler motiviert, ihren Nutzern mehr Freiheit zu geben. Die Abkopplung vom zentralen Server erleichtert die Kommunikation innerhalb lokaler und Mesh-Netzwerke, insbesondere in Situationen, in denen der Zugang zum externen Netzwerk eingeschränkt oder nicht vorhanden ist. Dies hat auch positive Auswirkungen auf die Privatsphäre, da die übertragenden Metadaten in einem solchen Szenario nur von den Teilnehmern der Konversation gespeichert werden. Letztendlich wirft dies die Frage auf, ob die aktuellen Konzepte von Matrix überarbeitet werden sollten, um höhere Portabilität und Sicherheit zu erreichen.
Die Implementierung der Server-API wird durch die Kompilierung des Servers erreicht Dendrite in den WebAssembly-Code, der gleichzeitig mit dem Client in Form eines Service Workers ausgeführt wird, der IndexedDB und SQLite zur lokalen Datenspeicherung nutzt, im Fall der Webversion und der Electron-Hülle.
Dendrite ist ein entwickelter 'Server der zweiten Generation' von Matrix in Go, der auf vollständige Modularität ausgerichtet ist und auch im monolithischen Format verwendet werden kann. Im modularen Format wird Apache Kafka für die Interaktion von Mikrodiensten verwendet, während im monolithischen - Naffka. Die Dokumentation zum Build der P2P-Version von Dendrite ist zu finden auf GitHub.
Dendrite wurde ursprünglich als universeller Server gedacht, der eine direkte Alternative zu Synapse, geschrieben in Python, das Leistungs- und Skalierbarkeitsprobleme aufweist. Aufgrund des Bedarfs an Unterstützung und ernsthaftem Refactoring von Synapse wurde die Entwicklung von Dendrite zunächst in den Hintergrund gedrängt. Letztendlich wurde die Entwicklung jedoch wieder aufgenommen, wobei beschlossen wurde, die bestehende Codebasis nicht im Hinblick auf die Universelle Verwendung weiterzuentwickeln, sondern sich auf die Anpassung für die Integration in tragbare und leistungsschwache Client-Geräte wie Browser und Telefone zu konzentrieren.
Die aktuelle Implementierung von Dendrite befindet sich noch in einem frühen Entwicklungsstadium, aber das reicht bereits für eine einfache Föderation:
Client-Server APIs: 34% (227/672 Tests) - ein Anstieg von 33%
Föderations-APIs: 34% (35/103 Tests) - ein Anstieg von 27%
Dies ist nicht der erste Versuch, P2P umzusetzen. Zuvor gab es die Initiative zur Erstellung CoAP-Proxy im Yggdrasil-Netzwerk für Synapse.
Die Entwickler des Matrix-Protokolls konzentrieren sich nicht nur auf die Föderation, sondern experimentieren auch mit Werkzeugen zur weiteren Dezentralisierung. Beispielsweise wurde ein Experiment durchgeführt um die Transportkosten zu senken. Es entwickelt sich ein Daemon Pantalaimon — ein Proxy, mit dem sich jeder Client ohne Unterstützung von Verschlüsselung verbinden und mit verschlüsselten Nachrichten interagieren kann. Alle durchgeführten Initiativen zielen darauf ab, in Zukunft die Bindung des Logins an den Server abzuschaffen, 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 geplanter Umsetzungen finden Sie in der FOSDEM 2020-Präsentation auf YouTube und in einem kürzlich veröffentlichten Blogbeitrag.
Es gibt auch eine Riot P2P-Option für Android, die auf dem Code der alten Anwendung basiert. In Zukunft ist geplant, es auf das aktuelle RiotX.
überführt werden. Zudem
-
Das Projekt wurde vorgestellt 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 jetzt Verschlüsselung und Anhänge implementiert.
-
Ein experimenteller Server in Scala ist erschienen — Mascarene.
Quelle: linux.org.ru
