'n Eksperimentele kliënt is vrygestel Oproer P2P.
Oproer - oorspronklik 'n kliënt vir 'n gefedereerde netwerk Matrix. Die P2P-wysiging voeg 'n bedienerimplementering en federasie by die kliënt sonder om 'n gesentraliseerde DNS deur integrasie te gebruik libp2p, wat ook gebruik word in IPFS. Dit is die eerste weergawe van die kliënt wat die sessie stoor na 'n bladsy herlaai, maar in die volgende groot opdaterings (byvoorbeeld, 0.2.0) sal die data steeds uitgevee word. Daarom word dit nie aanbeveel om die kliënt vir enigiets belangrik te gebruik nie.
Die kliënt implementeer federasie, kamerskepping en vertoon van 'n globale (bedienerlose!) katalogus van kamers.
Die hoof Matrix-netwerk wat DNS gebruik en die Matrix-netwerk op libp2p kan egter nog nie federeer en met mekaar kommunikeer nie.
Om die kliënt te gebruik, klik net op die aanmeldknoppie, waarna jy 'n gegenereerde ID op die netwerk sal ontvang. Data-uitvoer word nog nie gesteun nie.
Aangesien dit 'n onstabiele aanbieding van 'n moontlike konsep is, kan u probleme ondervind:
- Jy sal nie by jou rekening kan aanmeld of met ander kliënte kan kommunikeer as die bediener wat as 'n dienswerker loop, deur die blaaier doodgemaak word wanneer dit uittel nie. So 'n probleem op Firefox opgemerk, wat dit doen na 30 sekondes se onaktiwiteit].
- Op die libp2p-netwerkvlak is daar tydsbeperkings op die aantal aksies wat uitgevoer kan word, wat probleme met federasie kan veroorsaak.
Die begin van werk aan die P2P-weergawe van Matrix was te danke aan die begeerte van die ontwikkelaars om meer vryheid aan hul gebruikers te gee. Ontkoppeling van die sentrale bediener maak dit moontlik om kommunikasie binne plaaslike en maasnetwerke te fasiliteer, en in die algemeen, in toestande waar toegang tot die eksterne netwerk beperk of afwesig is. Dit het ook 'n positiewe uitwerking op privaatheid, as gevolg van die minimalisering van oorgedra metadata, wat in hierdie scenario slegs deur die deelnemers in die korrespondensie gestoor word. Uiteindelik lei dit 'n mens om te oorweeg om huidige Matrix-konsepte te herfaktoreer om groter oordraagbaarheid en sekuriteit te bereik.
Implementering van die bediener-API word bereik deur bedienersamestelling dendriet in WebAssembly-kode, wat gelyktydig met die kliënt in die vorm van 'n Service Worker loop, met behulp van IndexedDB en SQLite om data plaaslik te stoor, in die geval van die webweergawe en die Electron-omhulsel.
Dendrite is 'n "tweedegenerasie" Matrix-bediener in Go wat ontwikkel word en is ontwerp om volledig modulêr te wees en kan ook monolities gebruik word. In 'n modulêre vorm word Apache Kafka gebruik vir interaksie tussen mikrodienste, en in 'n monolitiese vorm - Naffka. Dokumentasie vir die bou van die P2P-weergawe van Dendrite kan gevind word op GitHub.
Dendrite was oorspronklik bedoel om 'n algemene bediener te wees wat bedoel was om 'n direkte vervanging te wees Sinaps, geskryf in Python, wat probleme met prestasie en skaalbaarheid het. Maar as gevolg van die behoefte aan ondersteuning en groot herfaktorering van Synapse, het Dendriet-ontwikkeling langs die pad geval. Uiteindelik het ontwikkeling hervat, maar hulle het besluit om die bestaande kodebasis nie in 'n algemene konteks te ontwikkel nie, maar om te fokus op aanpassing vir inbedding in draagbare en laekrag-kliënttoestelle, soos blaaiers en fone.
Die huidige Dendrite-implementering is nog in sy vroeë stadiums van ontwikkeling, maar dit is reeds voldoende vir 'n eenvoudige federasie:
Kliënt-bediener API's: 34% (227/672 toetse) - op vanaf 33%
Federasie API's: 34% (35/103 toetse) - op vanaf 27%
Dit is nie die eerste poging om P2P te implementeer nie. Voorheen was daar 'n inisiatief om te skep CoAP-instaanbediener na die Yggdrasil-netwerk vir Synapse.
Die ontwikkelaars van die Matrix-protokol is nie op federasie alleen gefokus nie en eksperimenteer met gereedskap vir selfs groter desentralisasie. Byvoorbeeld, 'n eksperiment is uitgevoer om koste op vervoervlak te verminder. 'n Demoon ontwikkel pantalaimon - 'n instaanbediener waaraan enige kliënt sonder enkripsie-ondersteuning kan koppel en interaksie met geënkripteerde boodskappe kan hê. Alle inisiatiewe wat onderneem word, is daarop gemik om dit in die toekoms te verseker ontslae te raak van login-binding aan die bediener, elimineer MXID, interaksie met die netwerk deur 'n publieke sleutel te gebruik, wat reeds gedeeltelik in Riot P2P geïmplementeer is.
Jy kan meer gedetailleerde inligting oor die konsepte van beplande implementering vind in die FOSDEM 2020-aanbieding op YouTube и onlangse blogpos.
Daar is ook 'n Riot P2P-opsie vir Android, gebaseer op die kode van die ou toepassing. In die toekoms is daar planne om dit na die huidige een oor te skakel. RiotX.
Verder
-
Projek aangebied Tardis (Time Agnostic Room DAG Inspection Service) is 'n lineêre gebeurtenisgrafiek (DAG) ontfouter vir Matrix-kamers gebaseer op Riot P2P.
-
In projek Conduit ('n gemeenskap-ontwikkelde bediener in Rust) is nou enkripsie en aanhangsels geïmplementeer.
-
'n Eksperimentele bediener in Scala het verskyn - Mascarene.
Bron: linux.org.ru
