A Peer-to-Peer kliens első kiadása a Matrix egyesített hálózathoz

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

Hozzászólás