Kiadtak egy kísérleti klienst Riot P2P.
Zendülés - eredetileg egyesített hálózat kliense Mátrix. A P2P módosítás kiszolgáló implementációt és összevonást ad az ügyfélhez anélkül, hogy az integráció révén központi DNS-t használna libp2p, amelyet szintén használnak IPFS. Ez a kliens első verziója, amely elmenti a munkamenetet az oldal újratöltése után, de a következő nagyobb frissítéseknél (például 0.2.0) az adatok továbbra is törlődnek. Ezért nem ajánlott az ügyfelet semmi fontosra használni.
Az ügyfél megvalósítja a szobák összevonását, helyiségek létrehozását és globális (szerver nélküli!) katalógus megjelenítését.
A DNS-t használó fő Matrix hálózat és a libp2p-n lévő Matrix hálózat azonban még nem tud egyesülni és kölcsönhatásba lépni egymással.
A kliens használatához csak kattintson a bejelentkezés gombra, amely után egy generált azonosítót kap a hálózaton. Az adatexportálás még nem támogatott.
Mivel ez egy lehetséges koncepció instabil bemutatása, bajba kerülhet:
- Nem tud majd bejelentkezni a fiókjába, és nem tud kapcsolatba lépni más ügyfelekkel, ha a Service Workerként futó kiszolgálót a böngésző leállítja, amikor lejár. Ilyen probléma Firefoxon észlelték, amely ezt 30 másodpercnyi inaktivitás után teszi meg].
- A libp2p hálózati szinten időkorlátok vannak a végrehajtható műveletek számára, ami problémákat okozhat az összevonásban.
A Matrix P2P verzióján való munka megkezdése a fejlesztők azon vágya volt, hogy nagyobb szabadságot adjanak felhasználóiknak. A központi szerverről való leválasztás lehetővé teszi a kommunikációt a helyi és mesh hálózatokon belül, és általában olyan körülmények között, ahol a külső hálózathoz való hozzáférés korlátozott vagy hiányzik. Ez a magánéletre is pozitív hatással van, mivel minimalizálja a továbbított metaadatokat, amelyeket ebben a forgatókönyvben csak a levelezésben résztvevők tárolnak. Végső soron ez arra készteti az embert, hogy fontolja meg a jelenlegi Matrix-koncepciók átdolgozását a nagyobb hordozhatóság és biztonság érdekében.
A szerver API megvalósítása szerverfordítással történik dendrit WebAssembly kódba, amely a klienssel egyidejűleg fut Service Worker formájában, IndexedDB és SQLite segítségével az adatok helyi tárolására, webes verzió és az Electron wrapper esetén.
A Dendrite egy „második generációs” Matrix szerver a Go-ban, amelyet fejlesztés alatt áll, és úgy tervezték, hogy teljesen moduláris legyen, és monolitikusan is használható. Moduláris formában az Apache Kafka a mikroszolgáltatások közötti interakcióhoz, monolitikus formában pedig - Naffka. A Dendrite P2P verziójának elkészítéséhez szükséges dokumentáció megtalálható a GitHubon.
A Dendrite-et eredetileg általános célú szervernek szánták, amelyet közvetlen helyettesítésre szántak Szinapszis, Python nyelven íródott, amely teljesítmény- és méretezhetőségi problémákkal küzd. De a támogatás szükségessége és a Synapse jelentős átalakítása miatt a Dendrit fejlesztése félbemaradt. Végül a fejlesztés folytatódott, de úgy döntöttek, hogy a meglévő kódbázist nem általános célú kontextusban fejlesztik, hanem a hordozható és alacsony fogyasztású klienseszközökbe, például böngészőkbe és telefonokba való beágyazásra helyezik a hangsúlyt.
A jelenlegi Dendrite implementáció még a fejlesztés korai szakaszában van, de már elegendő egy egyszerű összevonáshoz:
Kliens-szerver API-k: 34% (227/672 teszt) – 33% helyett
Összevonási API-k: 34% (35/103 teszt) – 27% helyett
Nem ez az első kísérlet a P2P megvalósítására. Korábban volt kezdeményezés létrehozására CoAP proxy az Yggdrasil hálózathoz a Synapse számára.
A Matrix protokoll fejlesztői nem csak az összevonásra koncentrálnak, hanem a még nagyobb decentralizációt szolgáló eszközökkel kísérleteznek. Például egy kísérletet végeztek a költségek csökkentése a szállítás szintjén. Egy démon fejlődik Pantalaimon - egy proxy, amelyhez bármely titkosítási támogatás nélküli kliens csatlakozhat, és titkosított üzenetekkel kommunikálhat. Minden kezdeményezés célja ennek biztosítása a jövőben megszabadulni a szerverhez való bejelentkezési kötődéstől, az MXID kiküszöbölése, a hálózattal való interakció nyilvános kulcs használatával, ami már részben implementálva van a Riot P2P-ben.
A tervezett megvalósítások koncepcióiról bővebben tájékozódhat a FOSDEM 2020 prezentációban a YouTube-on и legutóbbi blogbejegyzés.
Van egy Riot P2P változat Androidra is, a régi alkalmazás kódja alapján. A jövőben a tervek szerint áthelyezik a jelenlegire. RiotX.
Ráadásul
-
Projekt bemutatása TARDIS (Time Agnostic Room DAG Inspection Service) egy lineáris eseménygrafikon (DAG) hibakereső a Riot P2P-n alapuló Matrix szobákhoz.
-
Projektben Vezeték (egy közösség által fejlesztett szerver a Rustban) most titkosítás és mellékletek implementálva.
-
Megjelent egy kísérleti szerver a Scalában - Mascarene.
Forrás: linux.org.ru