Prezentácia experimentálneho klienta sa uskutočnila. Riot P2P.
Riot — pôvodne klient pre federovanú sieť. Matrix. P2P-modifikácia pridáva do klienta implementáciu servera a federáciu bez použitia centralizovaného DNS prostredníctvom integrácie. libp2p, ktorá sa tiež používa v IPFS. Toto je prvá verzia klienta, ktorá udržuje reláciu po reštartovaní stránky, ale v nasledujúcich hlavných aktualizáciách (napríklad 0.2.0) budú údaje aj tak odstránené. Preto sa neodporúča používať klienta na niečo dôležité.
Klient implementuje federáciu, vytváranie miestností a zobrazenie globálneho (bezserverového!) katalógu miestností.
Hlavná sieť Matrix, ktorá používa DNS, a sieť Matrix na libp2p sa zatiaľ nemôžu federovať a vzájomne interagovať.
Na používanie klienta stačí stlačiť tlačidlo prihlásenia, po čom dostanete vygenerované ID v sieti. Export údajov zatiaľ nie je podporovaný.
Keďže ide o nestabilnú prezentáciu možnej koncepcie, môžete naraziť na nepríjemnosti:
- Nebudete sa môcť prihlásiť do svojho účtu ani interagovať s inými klientmi, ak server spustený vo forme Service Worker bude zabitý prehliadačom po uplynutí časového limitu. Tento problém bol zaznamenaný vo Firefoxe, ktorý to robí po 30 sekundách nečinnosti.]
- Na úrovni siete libp2p existujú obmedzenia počtu vykonávaných akcií v čase, čo môže spôsobiť problémy s federáciou.
Začiatok práce na P2P-verzii Matrix je spôsobený túžbou vývojárov poskytnúť viac slobody svojim používateľom. Odstránenie závislosti od centrálneho servera uľahčuje komunikáciu v rámci lokálnych a mesh-sietí, a celkovo v podmienkach, keď je výstup do externej siete obmedzený alebo neexistuje. Taktiež to pozitívne ovplyvňuje súkromie, vďaka minimalizácii prenášaných metadát, ktoré sú v takomto scenári uložené iba účastníkmi konverzácie. Nakoniec to núti zamyslieť sa nad refaktoringom súčasných konceptov Matrix za účelom dosiahnutia väčšej prenosnosti a bezpečnosti.
Implementácia serverového API je dosiahnutá kompiláciou servera Dendrite do kódu WebAssembly, ktorý beží súčasne s klientom vo forme Service Worker a používa IndexedDB a SQLite na miestne ukladanie údajov, pokiaľ ide o webovú verziu a Electron-obal.
Dendrite je vyvíjaný „druhý generácia“ Matrix server na jazyku Go, zameraný na úplnú modularitu, ktorý je možné využiť aj v monolitickej podobe. V modulárnom formáte zdieľania mikroslužieb sa používa Apache Kafka, zatiaľ čo v monolitickej — Naffka. Dokumentáciu k zostaveniu P2P verzie Dendrite nájdete na GitHub.
Dendrite bol pôvodne navrhnutý ako server všeobecného určenia, ktorý mal byť priamou náhradou Synapse, napísaného v Pythone, ktorý má problémy s výkonom a škálovateľnosťou. Ale kvôli potrebe udržiavať a zásadnému refaktoringu Synapse sa vývoj Dendrite dostal do pozadia. Nakoniec sa vývoj obnovil, avšak už existujúcu kódovú základňu sa rozhodli rozvíjať nie v kontexte všeobecného určenia, ale sústrediť sa na adaptáciu pre integráciu do prenosných a nízkoenergetických zariadení, ako sú prehliadače a telefóny.
Aktuálna implementácia Dendrite je stále v raných fázach vývoja, ale už to stačí na jednoduchú federáciu:
Client-Server APIs: 34% (227/672 testov) — nárast z 33%
Federation APIs: 34% (35/103 testov) — nárast z 27%
Nie je to prvý pokus o implementáciu P2P. Predtým sa objavila iniciatíva na vytvorenie CoAP-proxy do siete Yggdrasil pre Synapse.
Vývojári protokolu Matrix sa nezameriavajú len na federáciu a experimentujú s nástrojmi pre ešte väčšiu decentralizáciu. Napríklad bol vykonaný experiment na zníženie nákladov na transportnú úroveň. Rozvíja sa démon Pantalaimon — proxy, ku ktorému sa môže pripojiť ktorýkoľvek klient bez podpory šifrovania a komunikovať so šifrovanými správami. Všetky realizované iniciatívy sú zamerané na to, aby sa v budúcnosti zbavili viazanosti prihlasovacího mena na server, zrušiť MXID, a komunikovať so sieťou prostredníctvom verejného kľúča, čo už čiastočne implementovali v Riot P2P.
Podrobnejšie informácie k plánovaným realizáciám môžete nájsť v prezentácii FOSDEM 2020 na YouTube a v nedávnom blogovom príspevku.
Existuje aj verzia Riot P2P pre Android, postavená na kóde staršej aplikácie. V budúcnosti plánujeme previesť ju na aktuálny RiotX.
Okrem toho
-
Bol predstavený projekt TARDIS (Time Agnostic Room DAG Inspection Service) — debugger lineárneho grafu udalostí (DAG) pre Matrix izby založený na Riot P2P.
-
V projekte Conduit (server vyvíjaný komunitou v jazyku Rust) teraz boli implementované šifrovanie a prílohy.
-
Prišiel experimentálny server na Scale — Mascarene.
Zdroj: linux.org.ru
