Ensimmäinen Peer-to-Peer-asiakkaan julkaisu Matrix-federated-verkkoon

Kokeellinen asiakas on julkaistu Riot P2P.


Mellakka - alun perin hajautetun verkon asiakas Matriisi. P2P-muutos lisää palvelimen toteutuksen ja liittämisen asiakkaaseen ilman keskitettyä DNS:ää integroinnin kautta libp2p, jota käytetään myös IPFS. Tämä on ensimmäinen asiakasversio, joka tallentaa istunnon sivun uudelleenlatauksen jälkeen, mutta seuraavissa suurissa päivityksissä (esimerkiksi 0.2.0) tiedot silti poistetaan. Siksi asiakkaan käyttämistä mihinkään tärkeään ei suositella.

Asiakas toteuttaa liittämisen, huoneiden luomisen ja globaalin (palvelimettoman!) huoneluettelon näyttämisen.

DNS:ää käyttävä Matrix-pääverkko ja libp2p:n Matrix-verkko eivät kuitenkaan voi vielä liittoutua ja olla vuorovaikutuksessa keskenään.

Voit käyttää asiakasta napsauttamalla kirjautumispainiketta, jonka jälkeen saat verkkoon luodun tunnuksen. Tietojen vientiä ei vielä tueta.

Koska tämä on epävakaa esitys mahdollisesta konseptista, saatat joutua vaikeuksiin:

  • Et voi kirjautua tilillesi tai olla vuorovaikutuksessa muiden asiakkaiden kanssa, jos selain tappaa Service Workerina toimivan palvelimen sen aikakatkaisussa. Tällainen ongelma havaittu Firefoxissa, joka tekee tämän 30 sekunnin käyttämättömyyden jälkeen].
  • Libp2p-verkkotasolla on aikarajoituksia suoritettavien toimien määrälle, mikä voi aiheuttaa ongelmia liittämisessä.

Matrixin P2P-version työskentelyn alku johtui kehittäjien halusta antaa käyttäjilleen enemmän vapautta. Irrottaminen keskuspalvelimesta mahdollistaa yhteydenpidon helpottamiseksi paikallis- ja mesh-verkoissa ja yleensä olosuhteissa, joissa pääsy ulkoiseen verkkoon on rajoitettu tai puuttuu. Tällä on myös myönteinen vaikutus yksityisyyteen, koska siirrettävä metadata on minimoitu. Tässä skenaariossa vain kirjeenvaihtoon osallistujat tallentavat ne. Viime kädessä tämä johtaa siihen, että harkitaan nykyisten Matrix-konseptien uudelleenmuotoilua paremman siirrettävyyden ja turvallisuuden saavuttamiseksi.

Palvelimen API:n käyttöönotto tapahtuu palvelimen kääntämisellä dendrite WebAssembly-koodiin, joka toimii samanaikaisesti asiakkaan kanssa Service Workerina, joka käyttää IndexedDB:tä ja SQLitea tietojen tallentamiseen paikallisesti, kun kyseessä on verkkoversio ja Electron-kääre.
Dendrite on Go:n "toisen sukupolven" Matrix-palvelin, jota kehitetään ja joka on suunniteltu täysin modulaariseksi ja sitä voidaan käyttää myös monoliittisesti. Modulaarisessa muodossa Apache Kafkaa käytetään mikropalvelujen väliseen vuorovaikutukseen, ja monoliittisessa muodossa - Naffka. Asiakirjat Dendriten P2P-version rakentamiseen löytyvät GitHubissa.

Dendrite oli alun perin tarkoitettu yleiskäyttöiseksi palvelimeksi, joka oli tarkoitettu korvaamaan sen suoraan Synapse, kirjoitettu Pythonilla, jossa on suorituskyky- ja skaalautuvuusongelmia. Mutta Synapsen tuen ja suuren uudelleenjärjestelyn vuoksi dendriittien kehitys jäi sivuun. Lopulta kehitystä jatkettiin, mutta he päättivät kehittää olemassa olevaa koodipohjaa ei yleiskäyttöisessä kontekstissa, vaan keskittyä mukauttamiseen upotettaviksi kannettaviin ja vähän virtaa kuluttaviin asiakaslaitteisiin, kuten selaimiin ja puhelimiin.

Nykyinen Dendrite-toteutus on vielä kehitysvaiheessa, mutta se riittää jo yksinkertaiseen liittoon:

Asiakas-palvelin API:t: 34 % (227/672 testiä) – 33 %:sta
Federation API:t: 34 % (35/103 testiä) – 27 %:sta

Tämä ei ole ensimmäinen yritys toteuttaa P2P. Aiemmin oli aloite luoda CoAP-välityspalvelin Yggdrasil-verkkoon Synapselle.


Matrix-protokollan kehittäjät eivät ole keskittyneet pelkästään liittoutumiseen ja kokeilevat työkaluja entistä suurempaa hajauttamista varten. Esimerkiksi kokeilu on tehty vähentää kuljetuskustannuksia. Demoni kehittyy Pantalaimon - välityspalvelin, johon mikä tahansa asiakas ilman salaustukea voi muodostaa yhteyden ja olla vuorovaikutuksessa salattujen viestien kanssa. Kaikki tehdyt aloitteet tähtäävät tämän varmistamiseen tulevaisuudessa päästä eroon kirjautumisen sitomisesta palvelimeen, poistaa MXID:n, olla vuorovaikutuksessa verkon kanssa julkisella avaimella, joka on jo osittain toteutettu Riot P2P:ssä.


Löydät tarkempaa tietoa suunniteltujen toteutusten käsitteistä FOSDEM 2020 -esittelyssä YouTubessa и viimeisin blogikirjoitus.

Androidille on myös Riot P2P -versio, joka perustuu vanhan sovelluksen koodiin. Tulevaisuudessa se on tarkoitus siirtää nykyiseen. RiotX.

Lisäksi

  • Projekti esitelty TARDIS (Time Agnostic Room DAG Inspection Service) on lineaarinen tapahtumakaavio (DAG) -virheenkorjaus Matrix-huoneille, joka perustuu Riot P2P:hen.

  • Projektissa Putki (yhteisön kehittämä palvelin Rustissa) on nyt salaus ja liitteet toteutettu.

  • Scalaan on ilmestynyt kokeellinen palvelin - Mascarene.

Lähde: linux.org.ru

Lisää kommentti