První vydání Matrix Federated Network Peer-to-Peer klienta

Byl uvolněn experimentální klient Riot P2P.


Výtržnost - původně klient pro federovanou síť Matice. Modifikace P2P přidává klientovi implementaci a federaci serveru bez použití centralizovaného DNS prostřednictvím integrace libp2p, který se také používá v IPFS. Toto je první verze klienta, která ukládá relaci po opětovném načtení stránky, ale v dalších velkých aktualizacích (například 0.2.0) budou data stále odstraněna. Proto se použití klienta na cokoliv důležitého nedoporučuje.

Klient implementuje federaci, vytvoření místností a zobrazení globálního (bezserverového!) katalogu místností.

Hlavní síť Matrix využívající DNS a síť Matrix na libp2p se však zatím nemohou vzájemně federovat a interagovat.

Pro použití klienta stačí kliknout na tlačítko přihlášení, po kterém obdržíte vygenerované ID v síti. Export dat zatím není podporován.

Protože se jedná o nestabilní prezentaci možného konceptu, můžete narazit na potíže:

  • Nebudete se moci přihlásit ke svému účtu ani komunikovat s jinými klienty, pokud je server spuštěný jako Service Worker po vypršení časového limitu prohlížečem ukončen. Takový problém spatřen ve Firefoxu, který to provede po 30 sekundách nečinnosti].
  • Na úrovni sítě libp2p existují časové limity na počet akcí, které lze provést, což může způsobit problémy s federací.

Začátek práce na P2P verzi Matrixu byl způsoben touhou vývojářů dát více svobody svým uživatelům. Odpojení od centrálního serveru umožňuje usnadnit komunikaci v rámci lokálních a mesh sítí a obecně v podmínkách, kdy je omezený nebo chybějící přístup k externí síti. To má pozitivní vliv i na soukromí, a to z důvodu minimalizace přenášených metadat, která v tomto scénáři ukládají pouze účastníci korespondence. Nakonec to vede k úvahám o refaktorizaci současných konceptů Matrix, aby bylo dosaženo větší přenositelnosti a bezpečnosti.

Implementace serverového API je dosaženo prostřednictvím kompilace serveru Dendrit do kódu WebAssembly, který běží současně s klientem ve formě Service Worker, pomocí IndexedDB a SQLite k lokálnímu ukládání dat, v případě webové verze a Electron wrapperu.
Dendrite je Matrix server "druhé generace" v Go, který se vyvíjí a je navržen tak, aby byl plně modulární a mohl být také používán monoliticky. V modulární formě se Apache Kafka používá pro interakci mezi mikroslužbami a v monolitické formě - Naffka. Dokumentaci pro sestavení P2P verze Dendrite lze nalézt na GitHub.

Dendrite byl původně zamýšlen jako server pro všeobecné použití, který měl být přímou náhradou Synapse, napsaný v Pythonu, který má problémy s výkonem a škálovatelností. Ale kvůli potřebě podpory a zásadní refaktoringu Synapse se vývoj Dendritu dostal na vedlejší kolej. Nakonec se vývoj obnovil, ale rozhodli se vyvinout stávající kódovou základnu nikoli v obecném kontextu, ale zaměřit se na přizpůsobení pro zabudování do přenosných a nízkoenergetických klientských zařízení, jako jsou prohlížeče a telefony.

Současná implementace Dendrite je stále v rané fázi vývoje, ale pro jednoduchou federaci je již dostačující:

Klient-Server API: 34 % (227/672 testů) – nárůst z 33 %
Federační API: 34 % (35/103 testů) – nárůst z 27 %

Není to první pokus o implementaci P2P. Dříve byla iniciativa k vytvoření CoAP proxy do sítě Yggdrasil pro Synapse.


Vývojáři protokolu Matrix se nezaměřují pouze na federaci a experimentují s nástroji pro ještě větší decentralizaci. Byl například proveden experiment snížit náklady na úrovni dopravy. Démon se vyvíjí Pantalaimon - proxy, ke které se může připojit jakýkoli klient bez podpory šifrování a pracovat s šifrovanými zprávami. Všechny podniknuté iniciativy směřují k tomu, aby to bylo v budoucnu zajištěno zbavit se přihlašovací vazby na server, odstranění MXID, interakce se sítí pomocí veřejného klíče, který je již částečně implementován v Riot P2P.


Podrobnější informace o konceptech plánovaných realizací naleznete v prezentaci FOSDEM 2020 na YouTube и nedávný příspěvek na blogu.

Existuje také varianta Riot P2P pro Android, založená na kódu ze staré aplikace. Do budoucna se plánuje její převedení na současnou. RiotX.

Navíc

  • Projekt předložen TARDIS (Time Agnostic Room DAG Inspection Service) je ladicí program pro lineární graf událostí (DAG) pro místnosti Matrix založený na Riot P2P.

  • V projektu Potrubí (server vyvinutý komunitou v Rustu) je nyní implementováno šifrování a přílohy.

  • Objevil se experimentální server ve Scale - Maskaréna.

Zdroj: linux.org.ru

Přidat komentář