Thawj qhov tso tawm ntawm Peer-to-Peer tus neeg siv khoom rau Matrix federated network

Cov neeg siv khoom sim tau raug tso tawm Riot P2P.


Riot - Ameslikas tus neeg siv khoom rau lub koom haum sib koom tes Matrix. Kev hloov kho P2P ntxiv rau kev siv server thiab kev koom ua ke rau cov neeg siv khoom yam tsis siv lub hauv paus DNS los ntawm kev sib koom ua ke lib 2 p, uas kuj siv nyob rau hauv IPFS. Qhov no yog thawj version ntawm tus neeg siv khoom uas txuag qhov kev sib kho tom qab nplooj ntawv rov qab, tab sis hauv qhov hloov tshiab loj tom ntej (piv txwv li, 0.2.0) cov ntaub ntawv tseem yuav raug tshem tawm. Yog li ntawd, siv tus neeg siv khoom rau txhua yam tseem ceeb tsis pom zoo.

Tus neeg siv khoom siv lub koom haum, chav tsim thiab tso saib ntawm lub ntiaj teb (serverless!) catalog ntawm chav.

Txawm li cas los xij, lub ntsiab Matrix network siv DNS thiab Matrix network ntawm libp2p tseem tsis tuaj yeem koom nrog thiab cuam tshuam nrog ib leeg.

Txhawm rau siv tus neeg siv khoom, tsuas yog nyem lub pob nkag mus, tom qab ntawd koj yuav tau txais tus ID tsim tawm ntawm lub network. Cov ntaub ntawv xa tawm tseem tsis tau txais kev txhawb nqa.

Txij li qhov no yog qhov kev nthuav qhia tsis ruaj khov ntawm lub tswv yim ua tau, koj tuaj yeem ntsib teeb meem:

  • Koj yuav tsis tuaj yeem nkag mus rau hauv koj tus as-qhauj lossis cuam tshuam nrog lwm tus neeg siv yog tias lub server khiav raws li Tus Neeg Ua Haujlwm Pabcuam raug tua los ntawm browser thaum nws tawm sijhawm. Qhov teeb meem zoo li no pom hauv Firefox, uas ua qhov no tom qab 30 vib nas this ntawm inactivity].
  • Nyob rau theem libp2p network, muaj cov sijhawm txwv ntawm cov haujlwm uas tuaj yeem ua tau, uas tuaj yeem ua rau muaj teeb meem nrog tsoomfwv.

Kev pib ua haujlwm ntawm P2P version ntawm Matrix yog vim muaj kev xav tau ntawm cov neeg tsim khoom kom muaj kev ywj pheej ntau dua rau lawv cov neeg siv. Decoupling los ntawm lub hauv paus neeg rau zaub mov ua rau nws muaj peev xwm los pab txhawb kev sib txuas lus nyob rau hauv lub zos thiab mesh tes hauj lwm, thiab feem ntau, nyob rau hauv tej yam kev mob uas nkag mus rau sab nraud network yog txwv los yog tsis. Qhov no kuj muaj txiaj ntsig zoo rau kev ceev ntiag tug, vim qhov txo qis ntawm kev xa tawm metadata, uas nyob rau hauv qhov xwm txheej no tsuas yog khaws cia los ntawm cov neeg koom nrog hauv kev sau ntawv. Thaum kawg, qhov no ua rau ib tus xav txog kev hloov kho cov ntsiab lus Matrix tam sim no kom ua tiav kev txav mus los thiab kev nyab xeeb dua.

Kev nqis tes ua ntawm tus neeg rau zaub mov API tau ua tiav los ntawm kev muab tso ua ke server Dendrite rau hauv WebAssembly code, uas khiav ib txhij nrog tus neeg siv khoom hauv daim ntawv ntawm Tus Neeg Ua Haujlwm Pabcuam, siv IndexedDB thiab SQLite los khaws cov ntaub ntawv hauv zos, nyob rau hauv rooj plaub ntawm lub vev xaib thiab Electron wrapper.
Dendrite yog ib tug "thib ob-tiam" Matrix neeg rau zaub mov hauv Go uas tab tom tsim thiab tsim los ua kom tag nrho modular thiab tseem tuaj yeem siv monolithically. Hauv daim ntawv hloov pauv, Apache Kafka yog siv rau kev sib cuam tshuam ntawm microservices, thiab hauv daim ntawv monolithic - Naffka. Cov ntaub ntawv tsim kho P2P version ntawm Dendrite tuaj yeem pom ntawm GitHub.

Dendrite yog Ameslikas tsim los ua ib lub hom phiaj dav dav rau cov neeg siv khoom uas tau npaj los hloov pauv ncaj qha synapse, sau hauv Python, uas muaj teeb meem kev ua tau zoo thiab scalability. Tab sis vim qhov xav tau kev txhawb nqa thiab kev hloov pauv loj ntawm Synapse, Dendrite txoj kev loj hlob poob ntawm txoj kev. Thaum kawg, kev txhim kho tau rov pib dua, tab sis lawv tau txiav txim siab los tsim cov cai hauv paus uas twb muaj lawm tsis yog nyob rau hauv cov ntsiab lus dav dav, tab sis tsom rau kev hloov kho rau embedding hauv portable thiab low-power client devices, xws li browsers thiab xov tooj.

Kev siv Dendrite tam sim no tseem nyob hauv nws cov theem pib ntawm kev txhim kho, tab sis nws twb txaus rau lub koom haum yooj yim:

Client-Server APIs: 34% (227/672 xeem) - nce los ntawm 33%
Federation APIs: 34% (35/103 xeem) - nce los ntawm 27%

Qhov no tsis yog thawj zaug sim siv P2P. Yav dhau los, muaj kev pib tsim CoAP npe rau Yggdrasil network rau Synapse.


Cov neeg tsim tawm ntawm Matrix raws tu qauv tsis yog tsom rau kev koom nrog ib leeg thiab tab tom sim nrog cov cuab yeej rau kev faib tawm ntau dua. Piv txwv li, ib qho kev sim tau ua kom txo cov nqi ntawm kev thauj mus los. Ib tug dab evolve Pantalaimon - lub npe uas tus neeg siv khoom tsis muaj kev txhawb nqa encryption tuaj yeem txuas thiab cuam tshuam nrog cov lus zais. Txhua qhov kev pib ua tiav yog txhawm rau ua kom ntseeg tau tias yav tom ntej tshem tawm ntawm tus ID nkag mus khi rau lub server, tshem tawm MXID, cuam tshuam nrog lub network siv tus yuam sij pej xeem, uas twb tau ua ib feem hauv Riot P2P.


Koj tuaj yeem nrhiav cov ncauj lus kom ntxaws ntxiv ntawm cov ntsiab lus ntawm kev npaj ua tiav hauv FOSDEM 2020 kev nthuav qhia hauv YouTube ΠΈ tsis ntev los no blog ncej.

Kuj tseem muaj Riot P2P variant rau Android, raws li cov cai los ntawm lub qub app. Nyob rau hauv lub neej yav tom ntej nws yog npaj yuav hloov nws mus rau tam sim no. RiotX.

Tsis tas li ntawd

  • Qhov project nthuav tawm TARDIS (Lub Sijhawm Agnostic Room DAG Kev Tshawb Fawb Kev Pabcuam) yog kab xwm txheej kab teeb tsa (DAG) debugger rau Matrix chav raws li Riot P2P.

  • Hauv qhov project yeeb nkab (lub zej zog-tsim server hauv Rust) yog tam sim no encryption thiab attachments siv.

  • Ib qho kev sim server hauv Scala tau tshwm sim - Mascarene.

Tau qhov twg los: linux.org.ru ua

Ntxiv ib saib