ʻO ka hoʻokuʻu mua ʻana o ka mea kūʻai aku Peer-to-Peer no ka pūnaewele hui ʻo Matrix

Ua hoʻokuʻu ʻia kahi mea kūʻai aku hoʻokolohua Huhū P2P.


ʻO Riot - he mea kūʻai mua no kahi pūnaewele hui mua. Hoʻohui ka hoʻololi P2P i kahi hoʻokō kikowaena a me ka hui ʻana i ka mea kūʻai aku me ka ʻole o ka hoʻohana ʻana i kahi DNS kikowaena ma o ka hoʻohui ʻana. libp2p, ka mea i hoohanaia ma IPFS. ʻO kēia ka mana mua o ka mea kūʻai aku e mālama i ke kau ma hope o ka hoʻouka hou ʻana o ka ʻaoʻao, akā i nā mea hou nui e hiki mai ana (no ka laʻana, 0.2.0) e holoi ʻia ka ʻikepili. No laila, ʻaʻole ʻōlelo ʻia ka hoʻohana ʻana i ka mea kūʻai aku no kekahi mea nui.

Hoʻokō ka mea kūʻai i ka hui, hana lumi a me ka hōʻike ʻana i kahi palapala honua (serverless!) o nā lumi.

Eia naʻe, ʻaʻole hiki i ka pūnaewele Matrix nui e hoʻohana ana i ka DNS a me ka pūnaewele Matrix ma libp2p ʻaʻole hiki ke hoʻohui a launa pū kekahi me kekahi.

No ka hoʻohana ʻana i ka mea kūʻai aku, kaomi wale i ka pihi login, a laila e loaʻa iā ʻoe kahi ID i hana ʻia ma ka pūnaewele. ʻAʻole kākoʻo ʻia ka lawe ʻana i ka ʻikepili.

No ka mea he hōʻike paʻa ʻole kēia o kahi manaʻo hiki, hiki iā ʻoe ke pilikia:

  • ʻAʻole hiki iā ʻoe ke komo i loko o kāu moʻokāki a i ʻole e launa pū me nā mea kūʻai aku inā ua pepehi ʻia ka server e holo ana ma ke ʻano he Service Worker e ka polokalamu kele pūnaewele i ka wā e pau ai. ʻO ia pilikia ʻike ʻia ma Firefox, e hana ana i keia ma hope o 30 kekona o ka hana ole].
  • Ma ka pae pūnaewele libp2p, aia nā palena manawa i ka helu o nā hana i hiki ke hana, hiki ke hoʻopilikia i ka hui.

ʻO ka hoʻomaka ʻana o ka hana ma ka P2P version o Matrix ma muli o ka makemake o nā mea hoʻomohala e hāʻawi i ke kūʻokoʻa i kā lākou mea hoʻohana. ʻO ka wehe ʻana mai ka kikowaena kikowaena e hiki ai ke hoʻomaʻamaʻa i ke kamaʻilio ʻana i loko o nā ʻoihana kūloko a me ka mesh, a ma ke ʻano maʻamau, i nā kūlana i kaupalena ʻia a i ʻole ʻole ke komo ʻana i ka pūnaewele waho. He hopena maikaʻi nō hoʻi kēia i ka pilikino, ma muli o ka hoʻemi ʻana o nā metadata i hoʻouna ʻia, i mālama ʻia i kēia ʻano e nā mea komo i ka leka. ʻO ka mea hope loa, alakaʻi kēia i kekahi e noʻonoʻo i ka refactoring i nā manaʻo Matrix o kēia manawa e hoʻokō i ka portability a me ka palekana.

Loaʻa ka hoʻokō ʻana i ka API kikowaena ma o ka hoʻopili ʻana o ka server ʻO Dendrite i loko o WebAssembly code, e holo like ana me ka mea kūʻai aku ma ke ʻano o ka Service Worker, me ka hoʻohana ʻana iā IndexedDB a me SQLite e mālama i ka ʻikepili ma ka ʻāina, i ka hihia o ka mana pūnaewele a me ka Electron wrapper.
ʻO Dendrite kahi kikowaena Matrix "ʻelua-hanauna" ma Go i kūkulu ʻia a hoʻolālā ʻia e hoʻololi piha a hiki ke hoʻohana monolithically. Ma kahi ʻano modular, hoʻohana ʻia ʻo Apache Kafka no ka launa pū ʻana ma waena o nā microservices, a ma kahi ʻano monolithic - Naffka. Hiki ke loaʻa nā palapala no ke kūkulu ʻana i ka mana P2P o Dendrite ma GitHub.

Ua manaʻo mua ʻia ʻo Dendrite e lilo i kikowaena kumu nui i manaʻo ʻia e lilo i pani pololei Synapse, i kākau ʻia ma Python, nona ka hana a me nā pilikia scalability. Akā ma muli o ka pono o ke kākoʻo a me ka refactoring nui o Synapse, hāʻule ka hoʻomohala Dendrite ma ke ala. I ka hopena, ua hoʻomaka hou ka hoʻomohala ʻana, akā ua hoʻoholo lākou e hoʻomohala i ka waihona code i loaʻa ʻaʻole i loko o kahi pōʻaiapili kumu nui, akā e kālele ana i ka hoʻololi ʻana no ka hoʻokomo ʻana i nā mea kūʻai aku a me ka mana haʻahaʻa, e like me nā mākaʻikaʻi a me nā kelepona.

ʻO ka hoʻokō ʻana o Dendrite i kēia manawa aia nō i ka wā mua o ka hoʻomohala ʻana, akā ua lawa ia no kahi hui maʻalahi:

Nā API Client-Server: 34% (227/672 hoʻāʻo) — piʻi mai 33%
Nā API Hui Pū ʻIa: 34% (35/103 hōʻike) — piʻi mai 27%

ʻAʻole kēia ka hoʻāʻo mua e hoʻokō i ka P2P. Ma mua, aia kahi hana e hana ai Kākoʻo CoAP i ka pūnaewele Yggdrasil no Synapse.


ʻAʻole pili nā mea hoʻomohala o ka protocol Matrix i ka federation wale nō a ke hoʻāʻo nei lākou me nā mea hana no ka decentralization ʻoi aku ka nui. No ka laʻana, ua hana ʻia kahi hoʻokolohua e hōʻemi i nā kumukūʻai ma ka pae lawe. Ke ulu nei ka daimonio Pantalaimon - kahi koho i hiki i kekahi mea kūʻai aku me ke kākoʻo hoʻopili ʻole ke hoʻopili a launa pū me nā memo i hoʻopili ʻia. ʻO nā hana a pau i hana ʻia e hōʻoia i ka wā e hiki mai ana e kāpae i ka hoʻopaʻa inoa ʻana i ke kikowaena, e hoʻopau ana i ka MXID, e launa pū me ka pūnaewele me ka hoʻohana ʻana i kahi kī lehulehu, kahi i hoʻokō ʻia ma Riot P2P.


Hiki iā ʻoe ke ʻike i ka ʻike kikoʻī e pili ana i nā manaʻo o nā hoʻokō i hoʻolālā ʻia i ka hōʻike FOSDEM 2020 ma YouTube и moʻomanaʻo moʻomanaʻo hou.

Aia kekahi ʻano Riot P2P no ka Android, e pili ana i ke code mai ka app kahiko. I ka wā e hiki mai ana ua hoʻolālā ʻia e hoʻoili i ka mea i kēia manawa. ʻO RiotX.

Eia kekahi mea

  • Hōʻike ʻia ka papahana TARDIS (Time Agnostic Room DAG Inspection Service) he linear event graph (DAG) debugger no nā lumi Matrix e pili ana i Riot P2P.

  • I ka papahana paipu (kahi kikowaena kaiaulu i kūkulu ʻia ma Rust) i kēia manawa hoʻopili ʻia a hoʻopili ʻia.

  • Ua puka mai kahi kikowaena hoʻokolohua ma Scala - Mascarene.

Source: linux.org.ru

Pākuʻi i ka manaʻo hoʻopuka