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
