Den experimentella klienten har slÀppts Riot P2P.
Riot â ursprungligen en klient för det federativa nĂ€tverket Matrix. P2P-modifikationen lĂ€gger till en serverimplementering och federation utan att anvĂ€nda en centraliserad DNS genom integrationen av libp2p, som Ă€ven anvĂ€nds i IPFS. Detta Ă€r den första versionen av klienten som behĂ„ller sessionen efter att sidan har omladdats, men i kommande större uppdateringar (t.ex. 0.2.0) kommer data likvĂ€l att raderas. DĂ€rför rekommenderas det inte att anvĂ€nda klienten för nĂ„got viktigt.
Klienten har implementerat federation, rumsskapande och visning av en global (serverslös!) katalog över rum.
Den huvudsakliga Matrix-nÀtverket, som anvÀnder DNS, och Matrix-nÀtverket pÄ libp2p kan för nÀrvarande inte federeras eller interagera med varandra.
För att anvÀnda klienten rÀcker det att trycka pÄ inloggningsknappen, varefter du fÄr ett genererat ID i nÀtverket. Export av data stöds för nÀrvarande inte.
Eftersom detta Àr en instabil presentation av en möjlig koncept kan du stötas pÄ problem:
- Du kan inte logga in pÄ ditt konto eller interagera med andra klienter om servern, som körs som en Service Worker, dödas av webblÀsaren efter timeout. Detta problem har observerats i Firefox, som gör detta efter 30 sekunders inaktivitet].
- PÄ libp2p-nivÄ finns det begrÀnsningar för antalet ÄtgÀrder som kan utföras över tid, vilket kan orsaka problem med federation.
Arbetet med P2P-versionen av Matrix har inletts av utvecklarnas önskan att ge sina anvÀndare mer frihet. Att koppla bort frÄn den centrala servern underlÀttar kommunikationen inom lokala och mesh-nÀtverk, och i allmÀnhet i situationer dÀr tillgÄngen till externa nÀtverk Àr begrÀnsad eller saknas. Detta har ocksÄ en positiv effekt pÄ sekretessen, eftersom det minimerar de överförda metadata som i detta scenario hÄlls endast av deltagarna i konversationen. I slutÀndan fÄr detta oss att tÀnka pÄ att refaktorera de nuvarande koncepten för Matrix för att uppnÄ större portabilitet och sÀkerhet.
Implementeringen av server-API uppnÄs genom kompilering av servern Dendrite till WebAssembly-koden som körs parallellt med klienten som en Service Worker, som anvÀnder IndexedDB och SQLite för lokal datalagring, i fallet med webversionen och Electron-wrappern.
Dendrite Ă€r en utvecklad "andra generations" Matrix-server skriven i Go, fokuserad pĂ„ full modulĂ€ritet, som ocksĂ„ kan anvĂ€ndas i en monolitisk form. I modulĂ€r form anvĂ€nds Apache Kafka för kommunikation mellan mikrotjĂ€nster, medan det i monolitisk form â Naffka. Dokumentationen för att bygga P2P-versionen av Dendrite finns tillgĂ€nglig pĂ„ GitHub.
Dendrite var ursprungligen tÀnkt som en allmÀn server som skulle vara en direkt ersÀttning för Synapse, skriven i Python som har prestanda- och skalbarhetsproblem. Men pÄ grund av behovet av support och omfattande refaktorisering av Synapse, kom utvecklingen av Dendrite i andra hand. I slutÀndan Äterupptogs utvecklingen, men den befintliga kodbasen valdes att utvecklas inte i kontext av allmÀnt syfte, utan fokusera pÄ anpassning för integration i bÀrbara och strömsnÄla klientenheter, som webblÀsare och telefoner.
Den nuvarande implementeringen av Dendrite Àr fortfarande i ett tidigt utvecklingsstadium, men den Àr tillrÀcklig för enkel federation:
Client-Server APIs: 34% (227/672 tester) â upp frĂ„n 33%
Federation APIs: 34% (35/103 tester) â upp frĂ„n 27%
Detta Àr inte första försöket pÄ att implementera P2P. Tidigare fanns det en initiativ för att skapa CoAP-proxy till Yggdrasil-nÀtverket för Synapse.
Utvecklarna av Matrix-protokollet fokuserar inte bara pĂ„ federation och experimenterar med verktyg för Ă€nnu större decentralisering. Till exempel gjordes ett experiment för att minska kostnaderna pĂ„ transportnivĂ„n. En demon utvecklas Pantalaimon â en proxy som kan anslutas till av vilken klient som helst utan stöd för kryptering och interagera med krypterade meddelanden. Alla genomförda initiativ syftar till att i framtiden frigöra inloggningen frĂ„n servern, vilket eliminerar MXID och interagerar med nĂ€tverket med hjĂ€lp av en offentlig nyckel, vilket redan delvis har realiserats i Riot P2P.
Mer information om koncepten för planerade implementeringar kan hittas i FOSDEM 2020-presentationen pÄ YouTube och i ett nyligen publicerat blogginlÀgg.
Det finns ocksÄ en variant av Riot P2P för Android, baserad pÄ koden av den gamla appen. I framtiden planeras det att bygga om den till den aktuella RiotX.
Dessutom
-
Projektet har presenterats TARDIS (Time Agnostic Room DAG Inspection Service) â en debugger för en linjĂ€r hĂ€ndelsegraf (DAG) för Matrix-rum baserat pĂ„ Riot P2P.
-
I projektet Conduit (en server som utvecklas av gemenskapen i Rust) har nu implementerat kryptering och bilagor.
-
Det har kommit en experimentell server i Scala â Mascarene.
KĂ€lla: linux.org.ru
