TON: Telegram Open Network. Vaega 2: Blockchains, sharding

TON: Telegram Open Network. Vaega 2: Blockchains, sharding

O lenei tusitusiga o se faʻaauauina o se faasologa o tala o loʻo ou suʻesuʻeina ai le fausaga o le (atonu) faʻasalalau fesoʻotaʻiga Telegram Open Network (TON), lea o loʻo sauniuni mo le faʻamalolo i lenei tausaga. IN vaega muamua Na ou faamatalaina lona tulaga sili ona faavae - o le auala e fegalegaleai ai nodes ma isi.

Naʻo le tulaga, seʻi ou faamanatu atu ia te oe e leai saʻu mea e fai i le atinaʻeina o lenei fesoʻotaʻiga ma mea uma na aoina mai se punaoa tatala (e ui lava e leʻi faʻamaonia) - pepa (o loʻo iai foʻi se faʻatasi polosiua, o loo otootoina puupuu ai manatu autū), lea na aliali mai i le faaiʻuga o le tausaga ua teʻa. O le aofaʻi o faʻamatalaga i lenei pepa, i loʻu manatu, o loʻo faʻaalia ai lona moni, e ui lava e leai se faʻamaoniga aloaia o lenei mea.

O aso nei o le a tatou tilotilo i le vaega autu o le TON - le poloka poloka.

Faʻamatalaga autu

teugatupe (tala). Se seti o faʻamatalaga faʻamaonia e se numera 256-bit account_id (o le tele o taimi o le ki lautele lea a lē e ona le teugatupe). I le tulaga faavae (vaai i lalo leai se filifili galuega), o lenei faʻamatalaga e faʻatatau i le paleni a le tagata faʻaoga. "Occupy" patino account_id soo se tasi e mafai, ae o lona tau e mafai ona suia e tusa ai ma nisi tulafono.

Konekarate atamai (atamai-konekarate). O le mea moni, o se tulaga fa'apitoa o se teugatupe, fa'aopoopo i le tulafono fa'akonekarate atamai ma le teuina o ana fesuiaiga. Afai i le tulaga o se "atotupe" e mafai ona e teuina ma aveese tupe mai ai e tusa ai ma tulafono faigofie ma muaʻi fuafuaina, ona i ai lea i le tulaga o se konekarate atamai o loʻo tusia nei tulafono i le tulaga o lona code (i totonu o se tasi Turing-maea. gagana polokalame).

Malo Blockchain (tulaga o poloka poloka). Le seti o setete o faʻamatalaga uma / konekarate atamai (i se uiga faʻapitoa, o se laulau hash, lea o ki o faʻamatalaga faʻamatalaga ma o tau o faʻamaumauga o loʻo teuina i totonu o faʻamatalaga).

feʻau (feʻau). I luga na ou faʻaaogaina le faʻamatalaga "tupe aitalafu ma aitalafu" - o se faʻataʻitaʻiga faʻapitoa lea o se feʻau ("transfer N kalama mai tala account_1 e tali atu account_2"). E manino lava, e na'o le node o lo'o i ai le ki fa'apitoa a le teugatupe e mafai ona lafo se fe'au fa'apea account_1 - ma mafai ona faʻamaonia lenei mea i se saini. O le iʻuga o le tuʻuina atu o ia feʻau i se teugatupe masani o se faʻaopoopoga i lona paleni, ma o le taunuuga o le konekarate atamai o le faʻatinoina lea o lana code (lea o le a faʻagasolo ai le mauaina o le feʻau). O le mea moni, o isi fe'au e mafai fo'i (fa'aliliuina e le o ni aofa'iga tau tupe, ae fa'amaonia fa'amatalaga i le va o konekarate atamai).

Feuaiga (feuiaiga faapisinisi). O le mea moni o se feʻau e tuʻuina atu e taʻua o se fefaʻatauaiga. O fefaʻatauaiga e suia ai le tulaga o le poloka poloka. O fefaʻatauaiga (faʻamaumauga tuʻuina atu o feʻau) o loʻo fausia ai poloka i le poloka poloka. I lenei tulaga, e mafai ona e mafaufau i le tulaga o le poloka poloka o se faʻamaumauga faʻaopoopo - o poloka uma o "eseesega" e manaʻomia ona faʻaogaina faʻasolosolo ina ia maua ai le tulaga o loʻo iai nei o le database. O faʻamatalaga patino o le afifiina o nei "eseesega" (ma toe faʻafoʻisia le tulaga atoa mai ia i latou) o le a talanoaina i le isi mataupu.

Blockchain i TON: o le a le mea ma aisea?

E pei ona taʻua i le mataupu ua mavae, poloka poloka o se fausaga faʻamaumauga, o elemene (poloka) o loʻo faʻatonuina i totonu o se "filifilia", ma o poloka taʻitasi mulimuli ane o le filifili o loʻo i ai se hash o le muamua.. O faʻamatalaga na fesiligia ai le fesili: aisea tatou te manaʻomia ai se faʻatulagaga faʻamaumauga pe a uma ona i ai se DHT - se laulau faʻasalalau tufatufa? E manino lava, o nisi faʻamatalaga e mafai ona teuina i le DHT, ae naʻo le talafeagai lea mo faʻamatalaga e le "maaleale". Cryptocurrency paleni e le mafai ona teuina i le DHT - muamua ona o le leai o se siaki i luga amio sa'o. O le mea moni, o le lavelave atoa o le fausaga poloka poloka e tupu aʻe ina ia taofia ai le faʻalavelave i faʻamaumauga o loʻo teuina i totonu.

Ae ui i lea, o le poloka poloka i TON e foliga mai e sili atu ona faigata nai lo le tele o isi faiga tufatufaina - ma mo mafuaaga e lua. Muamua o le manaʻo e faʻaitiitia le manaʻomia tui. I tupe faʻaleaganuʻu masani, o faʻamaufaʻailoga uma o loʻo faʻatulagaina i le tulaga muamua ma soʻo se taumafaiga e suia i latou e taʻitaʻia moni lava i le tulaʻi mai o se "vaaiga cryptocurrency vaʻaia." O le mafuaaga lona lua o le lagolago mo le nutimomoia (vaevaega, vaevaega) poloka poloka. Blockchain o se fausaga e le mafai ona laʻititi i le taimi; ma e masani lava o node taʻitasi e nafa ma le faʻaogaina o le fesoʻotaʻiga e faʻamalosia e teuina atoa. I faiga fa'ale-aganu'u (fa'atotonugalemu), o lo'o fa'aaogaina le sharding e foia ai ia fa'afitauli: o nisi o fa'amaumauga i totonu o fa'amaumauga o lo'o i luga o le tasi server, o nisi i le isi, ma isi. I le tulaga o cryptocurrencies, o ia gaioiga e seasea lava - ae maise, ona o le mea moni e faigata ona faʻaopoopo le sharding i se faiga e leʻi fuafuaina muamua.

E fa'apefea ona fuafua le TON e fo'ia fa'afitauli uma e lua o lo'o i luga?

Polokalama mataupu. filifili galuega.

TON: Telegram Open Network. Vaega 2: Blockchains, sharding

Muamua lava, sei o tatou talanoa e uiga i mea o loʻo fuafua e teuina i totonu ole poloka poloka. O le setete o faʻamatalaga ("atotupe" i le mataupu faavae) ma konekarate atamai o le a teuina iina (mo le faʻafaigofie, o le a tatou manatu e tutusa lenei ma tala). O le mea moni, o le a avea lea ma se laulau hash masani - o ki i totonu o le a avea ma faʻamatalaga account_id, ma tau o faʻamaumauga o faʻamaumauga o loʻo i ai mea e pei o:

  • paleni;
  • tulafono fa'akonekarate atamai (na'o konekarate atamai);
  • teuina fa'amaumauga o konekarate atamai (mo na'o konekarate atamai);
  • fa'amaumauga;
  • (filifiliga) ki lautele mo fesiitaiga mai le teugatupe, e ala i le faaletonu account_id;
  • laina o fe'au i fafo (o lo'o fa'auluina mo le tu'uina atu i le tagata e mauaina);
  • se lisi o fe'au lata mai na tu'uina atu i lenei tala.

E pei ona taʻua i luga, o poloka lava ia e aofia ai fefaʻatauaiga - feʻau na tuʻuina atu i tala eseese account_id. Ae ui i lea, faʻaopoopo i le account_id, o feʻau o loʻo i ai foi se fanua 32-bit workchain_id — ua ta'ua o le faailoa filifili galuega (filifili galuega, galue poloka poloka). Ole mea lea e mafai ai e oe ona maua ni poloka poloka e tutoatasi mai le tasi ma le isi ma faʻasalalauga eseese. I lenei tulaga, workchain_id = 0 ua manatu o se mataupu faapitoa, leai se filifili galuega - o paleni i totonu o le a fetaui ma le TON (Grams) cryptocurrency. E foliga mai, i le taimi muamua, o isi filifili galuega o le a leai lava.

Fa'atauga. Fa'ata'ita'iga Fa'asoa e le I'u.

Ae o le tuputupu aʻe i le numera o poloka poloka e le gata iina. Sei o tatou feagai ma sharding. Sei o tatou mafaufau o tala taitasi (account_id) o loʻo tuʻufaʻatasia lana lava poloka poloka - o loʻo i ai uma feʻau e oʻo mai i ai - ma o setete uma ia poloka poloka o loʻo teuina i luga o nodes eseese.

O le mea moni, o lenei mea e matua maumau: e foliga mai, i nei mea taʻitasi filifili u'amea (filifili fasimea, poloka poloka poloka) o fefaʻatauaiga o le a seasea oʻo mai, ma o le a manaʻomia le tele o nodes mamana (vaʻai i luma, ou te matauina e le naʻo tatou talanoa e uiga i tagata faʻatau i luga o telefoni feaveaʻi - ae e uiga i 'auʻaunaga ogaoga).

O le mea lea, e tuʻufaʻatasia e shardchains tala e ala i faʻamaufaʻailoga binary o latou faʻamatalaga: afai o se shardchain ei ai le prefix o le 0110, ona aofia ai lea o fefaʻatauaiga o account_ids uma e amata i nei numera. Lenei shard_prefix e mafai ona umi mai le 0 i le 60 bits - ma o le mea autu e mafai ona suia malosi.

TON: Telegram Open Network. Vaega 2: Blockchains, sharding

O le taimi lava e amata ai ona maua e se tasi o shardchains le tele o fefaʻatauaiga, o loʻo galue i luga, e tusa ai ma tulafono faʻatulagaina, "vaelua" i ni tamaiti se lua - o latou prefix o le a sili atu le umi (ma mo se tasi oi latou o le a avea lenei vaega. tutusa ma le 0, ae mo le isi - 1). Faataitaiga, shard_prefix = 0110b o le a vaeluaina i 01100b ma 01101b. I le isi itu, afai e amata ona lagona le toafimalie e lua "tuaoi" shardchains (mo sina taimi), o le a toe tuʻufaʻatasia.

O le mea lea, o le faʻavasegaina e faia "mai le pito i lalo" - matou te manatu o tala taʻitasi e iai lana lava faʻailoga, ae mo le taimi nei o loʻo "faʻapipiʻi faʻatasi" e ala i prefix. O lona uiga lea Fa'ata'ita'iga Fa'asoa e le I'u (paradigm sharding e le gata).

Tuʻueseese, ou te fia faʻamamafaina o filifili galuega e naʻo toetoe lava - i le mea moni, workchain_id o se vaega o le faʻamatalaga o se shardchain patino. I faaupuga aloaia, o shardchain taitasi e faauigaina i se pea numera (workchain_id, shard_prefix).

Fa'asa'oga sese. poloka poloka tūsa'o.

I le masani ai, soʻo se fefaʻatauaiga i luga o se poloka poloka e manatu e "faʻatutu i le maʻa." Ae ui i lea, i le tulaga o le TON, e mafai ona "toe tusi talafaasolopito" - i le tulaga o se tasi (o le mea ua taʻua. nonoa faifaiva) o le a faʻamaonia ai o se tasi o poloka na saini sese. I lenei tulaga, o se poloka faʻasaʻo faʻapitoa e faʻaopoopoina i le shardchain tutusa, o loʻo i ai le hash o le poloka lava ia o loʻo faʻasaʻoina (ae le o le poloka mulimuli i le shardchain). Mafaufau i le shardchain e pei o se filifili poloka o loʻo faʻataʻatia faʻalava, e mafai ona tatou fai atu o le poloka faʻasaʻo o loʻo faʻapipiʻi i le poloka sese e le o le taumatau, ae mai luga - o lea ua manatu ai e avea o se vaega o se tamai "blockchain vertical" . O lea, e mafai ona tatou fai atu o shardchains e poloka poloka e lua.

TON: Telegram Open Network. Vaega 2: Blockchains, sharding

Afai, pe a maeʻa se poloka sese, o suiga na faia e ia na faʻasinoina e poloka mulimuli ane (o lona uiga, o fefaʻatauaiga fou na faia e faʻavae i luga o mea le aoga), o mea faʻasaʻo e faʻaopoopoina foi i nei poloka "i luga". Afai o poloka e leʻi aʻafia ai faʻamatalaga "aʻafia", o nei "galu faʻasaʻo" e le faʻaaogaina ia i latou. Mo se faʻataʻitaʻiga, i le faʻataʻitaʻiga o loʻo i luga, o le fefaʻatauaiga o le poloka muamua, faʻateleina le paleni o le teugatupe C, na iloa e le saʻo - o le mea lea, o le fefaʻatauaiga e faʻaitiitia ai le paleni o lenei teugatupe i le poloka lona tolu e tatau foi ona faʻaumatia, ma se poloka faʻasaʻo. e tatau ona tuʻuina i luga o le poloka lava ia.

E tatau ona maitauina e ui lava o poloka faʻasaʻo o loʻo faʻaalia o loʻo i luga "luga" o mea muamua, o le mea moni o le a faʻaopoopoina i le pito o le poloka poloka (lea e tatau ona faʻatulagaina faʻasologa). O le nofoaga e lua-ituaiga na o le faʻaalia o le mea i totonu o le poloka poloka o le a latou "sootai" (e ala i le hash o le uluai poloka o loʻo i totonu ia i latou).

E mafai ona e faʻavasega faʻapitoa e uiga i le lelei o le filifiliga e "suia le taimi ua tuanaʻi". E foliga mai afai tatou te ioeina le avanoa o se poloka sese e aliali mai i le shardchain, ona le mafai lea ona tatou aloese mai le ono aliali mai o se poloka faʻasaʻo sese. O iinei, i le mea e mafai ona ou iloa, o le eseesega o loʻo i le numera o nodes e tatau ona oʻo i le maliega i luga o poloka fou - o le ai ai se numera toʻaitiiti o tagata e galulue i shardchain taʻitasi.kulupu galulue» nodes (lea e suia ai lona tuufaatasiga i taimi uma), ma o le faʻaofiina o poloka faʻasaʻo e manaʻomia ai le faʻatagaga a tagata uma. nodes fa'amaonia. O le a ou talanoa atili e uiga i tagata faʻamaonia, vaega faigaluega, ma isi matafaioi node i le isi tusiga.

Tasi poloka poloka e pulea uma ai

E tele faʻamatalaga o loʻo lisiina i luga e uiga i ituaiga eseese o poloka poloka, lea e tatau foi ona teuina i se mea. Aemaise lava, o loʻo matou talanoa e uiga i faʻamatalaga nei:

  • e uiga i numera ma faʻatulagaga o filifili galuega;
  • e uiga i le numera o filifili ma o latou prefix;
  • e uiga i nodes o loʻo nafa ma le shardchains;
  • fa'aputuga o poloka mulimuli e fa'aopoopoina i filifili uma.

E pei ona e mateina, o nei mea uma o loʻo faamaumauina i se isi poloka poloka - filifili sili (sili atu, matai poloka poloka). Ona o le i ai o hashes mai poloka o shardchains uma i totonu o ana poloka, e faʻapipiʻi ai le faiga. O lona uiga, faatasi ai ma isi mea, o le fausiaina o se poloka fou i le masterchain o le a tupu vave lava pe a maeʻa le fausiaina o poloka i shardchains - e faʻamoemoeina o poloka i shardchains o le a faʻaalia toetoe lava tutusa i le 5 sekone, ma le isi poloka i le masterchain - se lua pe a uma lena.

Ae o ai o le a nafa ma le faʻatinoina o nei galuega titanic uma - mo le lafoina o feʻau, faʻataunuʻuina konekarate atamai, fausia poloka i shardchains ma le masterchain, ma e oʻo lava i le siakiina o poloka mo mea sese? O le a faia faalilolilo nei mea uma e telefoni a le faitau miliona o tagata faʻaoga ma le Telegram client faʻapipiʻiina i luga ia i latou? Pe, masalo, o le a lafoaʻi e le au Durov manatu o le tuʻufaʻatasia ma o latou 'auʻaunaga o le a faia i le auala tuai?

O le mea moni, e leai se tasi po o le isi tali e saʻo. Ae o pito o lenei tusiga e vave ona alu ese, o lea o le a tatou talanoa e uiga i matafaioi eseese o nodes (atonu ua uma ona e matauina le taʻua o nisi oi latou), faʻapea foʻi ma le faʻainisinia o la latou galuega, i le isi vaega.

puna: www.habr.com

Faaopoopo i ai se faamatalaga