I-TON: I-Telegram Open Network. Ingxenye 2: Ama-blockchains, sharding

I-TON: I-Telegram Open Network. Ingxenye 2: Ama-blockchains, sharding

Lo mbhalo uwukuqhutshwa kochungechunge lwezihloko lapho ngihlola khona ukwakheka kwenethiwekhi (okungenzeka) esabalalisiwe yeTelegram Open Network (TON), elungiselelwa ukukhululwa kulo nyaka. IN ingxenye edlule Ngichaze izinga layo eliyisisekelo - indlela ama-node axhumana ngayo.

Uma kwenzeka, ake nginikhumbuze ukuthi angihlangene nokuthuthukiswa kwale nethiwekhi futhi zonke izinto ezibonakalayo ziqoqwe emthonjeni ovulekile (nakuba ungaqinisekisiwe) - idokhumenti (kukhona futhi okuhambisanayo incwajana, echaza kafushane amaphuzu ayinhloko), avela ekupheleni konyaka odlule. Inani lolwazi kulo mbhalo, ngokubona kwami, libonisa ubuqiniso bayo, nakuba kungekho ukuqinisekiswa okusemthethweni kwalokhu.

Namuhla sizobheka ingxenye eyinhloko ye-TON - i-blockchain.

Imiqondo eyisisekelo

-Akhawunti (i-akhawunti). Isethi yedatha ekhonjwe ngenombolo ye-256-bit account_id (isikhathi esiningi lona ukhiye osesidlangalaleni womnikazi we-akhawunti). Esimweni esiyisisekelo (bona ngezansi zero workchain), le datha isho ibhalansi yomsebenzisi. "Occupy" ethize account_id noma ubani angakwazi, kodwa inani layo lingashintshwa kuphela ngokuvumelana nemithetho ethile.

Inkontileka ehlakaniphile (inkontileka ehlakaniphile). Empeleni, kuyindaba ekhethekile ye-akhawunti, ehambisana nekhodi yenkontileka ehlakaniphile nokugcinwa kwezinto eziguquguqukayo. Uma esimweni "isikhwama" ungafaka futhi ukhiphe imali kuso ngokuvumelana nemithetho elula futhi enqunywe kusengaphambili, khona-ke esimweni senkontileka ehlakaniphile le mithetho ibhalwa ngendlela yekhodi yayo (ku-Turing-complete ethile. ulimi lokuhlela).

I-Blockchain State (isimo se-blockchain). Iqoqo lezifunda zawo wonke ama-akhawunti/izinkontileka ezihlakaniphile (ngomqondo ongaqondakali, ithebula le-hashi, lapho okhiye kuyizihlonzi ze-akhawunti futhi amanani kuyidatha egcinwe kuma-akhawunti).

Umlayezo (umlayezo). Ngenhla ngisebenzise isisho esithi β€œimali yesikweletu nedebhithi” - lesi isibonelo esithile somlayezo (β€œtransfer N amagremu kusuka ku-akhawunti i-akhawunti_1 ukulandisa i-akhawunti_2"). Ngokusobala, i-node kuphela engumnikazi wokhiye oyimfihlo we-akhawunti engathumela umlayezo onjalo i-akhawunti_1 - futhi ukwazi ukuqinisekisa lokhu ngesiginesha. Umphumela wokuletha imilayezo enjalo ku-akhawunti evamile ukukhuphuka kwebhalansi yayo, futhi umphumela wenkontileka ehlakaniphile uwukwenziwa kwekhodi yayo (ezocubungula ukwamukelwa komlayezo). Vele, eminye imilayezo ingenzeka (akudluliswa amanani emali, kodwa idatha engafanele phakathi kwezinkontileka ezihlakaniphile).

ukuthengiselana (ukuthengiselana). Iqiniso lokuthi umlayezo ulethiwe kubizwa ngokuthi ukuthengiselana. Ukuthengiselana kushintsha isimo se-blockchain. Ukuthengiselana (amarekhodi okuthumela umlayezo) okwenza amabhlogo ku-blockchain. Kulokhu, ungacabanga ngesimo se-blockchain njengesizindalwazi esikhulayo - wonke amabhulokhi "ahlukile" okudingeka asetshenziswe ngokulandelana ukuze uthole isimo samanje sesizindalwazi. Imininingwane yokupakisha lezi "zihlukanisiwe" (nokubuyisela isimo esigcwele kuzo) kuzoxoxwa ngakho esihlokweni esilandelayo.

I-Blockchain ku-TON: kuyini futhi kungani?

Njengoba kushiwo esihlokweni esandulele, I-blockchain iyisakhiwo sedatha, izakhi (amabhulokhi) azo ahlelwe "eketheni", futhi ibhulokhi ngayinye elandelayo yeketanga iqukethe i-hash yangaphambilini.. Amazwana abuze umbuzo: kungani sidinga isakhiwo sedatha nhlobo sibe sesivele sine-DHT - ithebula le-hashi elisabalalisiwe? Ngokusobala, enye idatha ingagcinwa ku-DHT, kodwa lokhu kulungele kuphela ulwazi "olubucayi" kakhulu. Amabhalansi e-Cryptocurrency awakwazi ukugcinwa e-DHT - ngokuyinhloko ngenxa yokuntuleka kwamasheke ubuqotho. Eqinisweni, yonke inkimbinkimbi yesakhiwo se-blockchain ikhula ukuze kuvinjelwe ukuphazamiseka kwedatha egcinwe kuyo.

Kodwa-ke, i-blockchain ku-TON ibukeka iyinkimbinkimbi kakhulu kunezinye izinhlelo eziningi ezisabalalisiwe - futhi ngenxa yezizathu ezimbili. Okokuqala isifiso sokunciphisa isidingo izimfoloko. Emalini ye-crypto evamile, yonke imingcele isethwe esigabeni sokuqala futhi noma yimuphi umzamo wokuyishintsha empeleni iholela ekuveleni "kwenye indawo yendawo ye-cryptocurrency." Isizathu sesibili ukwesekwa kokuchotshozwa (ukuhlukanisa, ukuhlukanisa) blockchain. I-Blockchain iyisakhiwo esingakwazi ukuba sincane ngokuhamba kwesikhathi; futhi ngokuvamile i-node ngayinye enesibopho sokusebenza kwenethiwekhi iphoqeleka ukuyigcina ngokuphelele. Ezinhlelweni zendabuko (ezimaphakathi), i-sharding isetshenziselwa ukuxazulula izinkinga ezinjalo: amanye amarekhodi ku-database atholakala kuseva eyodwa, amanye kwenye, njll. Endabeni ye-cryptocurrencies, ukusebenza okunjalo kuseyivelakancane - ikakhulukazi, ngenxa yokuthi kunzima ukwengeza sharding ohlelweni lapho bekungahleliwe khona ekuqaleni.

I-TON ihlela kanjani ukuxazulula zombili lezi zinkinga ezingenhla?

Okuqukethwe kweBlockchain. Amaketango okusebenza.

I-TON: I-Telegram Open Network. Ingxenye 2: Ama-blockchains, sharding

Okokuqala, ake sikhulume ngalokho okuhlelwe ukugcinwa ku-blockchain. Izifunda zama-akhawunti (β€œizikhwama zemali” ku-base case) nezinkontileka ezihlakaniphile zizogcinwa lapho (ukuze kube lula, sizocabanga ukuthi lokhu kuyafana nama-akhawunti). Empeleni, lokhu kuzoba itafula le-hashi elivamile - okhiye abakulo bazoba izihlonzi account_id, futhi amanani ayizakhiwo zedatha eziqukethe izinto ezifana nalezi:

  • ibhalansi;
  • ikhodi yenkontileka ehlakaniphile (yezinkontileka ezihlakaniphile kuphela);
  • ukugcinwa kwedatha yenkontileka ehlakaniphile (yezinkontileka ezihlakaniphile kuphela);
  • izibalo;
  • (ngokuzithandela) ukhiye osesidlangalaleni wokudluliselwa kusuka ku-akhawunti, ngokuzenzakalelayo account_id;
  • umugqa wemilayezo ephumayo (lapha ifakiwe ukuze idluliselwe kumamukeli);
  • uhlu lwemilayezo yakamuva kule akhawunti.

Njengoba kushiwo ngenhla, amabhulokhi ngokwawo ahlanganisa ukuthengiselana - imilayezo elethwa kuma-akhawunti e-account_id ahlukahlukene. Nokho, ngaphezu kwe-account_id, imilayezo futhi iqukethe inkambu ye-32-bit workchain_id - okuthiwa isihlonzi i-workchain (i-workchain, umsebenzi blockchain). Lokhu kukuvumela ukuthi ube nama-blockchains amaningana azimele kusuka komunye nomunye ngokucushwa okuhlukile. Kulokhu, i-workchain_id = 0 ithathwa njengecala elikhethekile, zero workchain - yizilinganiso ezikuyo ezizohambisana ne-TON (Grams) cryptocurrency. Ngokunokwenzeka, ekuqaleni, amanye amaketango okusebenza ngeke abe khona nhlobo.

Ama-Shardchains. Infinite Sharding Paradigm.

Kodwa ukukhula kwenani lama-blockchains akugcini lapho. Masibhekane nokwahlukanisa. Ake sicabange ukuthi i-akhawunti ngayinye (i-akhawunti_id) yabelwe i-blockchain yayo - iqukethe yonke imilayezo eza kuyo - futhi izifunda zawo wonke ama-blockchain anjalo agcinwa ezindaweni ezihlukene.

Yiqiniso, lokhu kuwukumosha kakhulu: cishe, ngayinye yalezi amaketango (i-shardchain, i-blockchain eqinile) ukuthengiselana kuzofika kuyaqabukela, futhi kuzodingeka ama-node amaningi anamandla (ukubheka phambili, ngiyaqaphela ukuthi asikhulumi nje ngamaklayenti kumakhalekhukhwini - kodwa ngamaseva angathΓ­ sina).

Ngakho-ke, ama-shardchain ahlanganisa ama-akhawunti ngeziqalo kanambambili zezihlonzi zawo: uma i-shardchain inesiqalo esingu-0110, izofaka phakathi ukuthengiselana kwawo wonke ama-account_ids aqala ngalezi zinombolo. Lokhu shard_prefix ingaba nobude obusuka ku-0 kuye ku-60 bits - futhi into esemqoka ukuthi ingashintsha ngokuguqukayo.

I-TON: I-Telegram Open Network. Ingxenye 2: Ama-blockchains, sharding

Lapho nje enye ye-shardchains iqala ukuthola ukuthengiselana okuningi kakhulu, ama-node asebenza kuyo, ngokwemithetho enqunywe kusengaphambili, "ihlukanise" ibe izingane ezimbili - iziqalo zabo zizoba yinde kancane (futhi komunye wabo lokhu kuzoba ilingana no-0, kanti enye - 1). Ngokwesibonelo, shard_prefix = 0110b uzohlukana phakathi 01100b kanye 01101b. Ngokulandelayo, uma ama-shardchains amabili "omakhelwane" eqala ukuzizwa ekhululekile ngokwanele (isikhathi esithile), azophinde ahlangane.

Ngakho-ke, ukuhlukanisa kwenziwa "kusuka phansi kuya phezulu" - sicabanga ukuthi i-akhawunti ngayinye ine-shard yayo, kodwa okwamanje "ihlanganiswe ndawonye" yiziqalo. Yilokhu elikushoyo Infinite Sharding Paradigm (infinite sharding paradigm).

Ngokwehlukana, ngithanda ukugcizelela ukuthi amaketanga okusebenza akhona kuphela - empeleni, workchain_id iyingxenye yesikhombi se-shardchain ethile. Ngokwemigomo esemthethweni, i-shardchain ngayinye ichazwa ngezinombolo ezimbili (workchain_id, shard_prefix).

Ukulungisa iphutha. Ama-blockchains aqondile.

Ngokwesiko, noma yikuphi ukuthengiselana ku-blockchain kuthathwa ngokuthi "kubekwe etsheni." Kodwa-ke, endabeni ye-TON, kungenzeka "ukubhala kabusha umlando" - uma kwenzeka othile (okuthiwa. ifindo labadobi) izofakazela ukuthi elinye lamabhulokhi lisayinwe ngokungalungile. Kulesi simo, i-block yokulungiswa ekhethekile yengezwa ku-shardchain ehambisanayo, equkethe i-hash ye-block ngokwayo elungiswayo (hhayi ibhulokhi yokugcina ku-shardchain). Uma sicabanga nge-shardchain njengochungechunge lwamabhulokhi abekwe ngokuvundlile, singasho ukuthi ibhulokhi yokulungisa inamathiselwe kubhulokhi eyiphutha hhayi kwesokudla, kepha kusuka phezulu - ngakho-ke kubhekwa ukuthi iba yingxenye "ye-blockchain eqondile" encane . Ngakho-ke, singasho ukuthi ama-shardchains anjalo ama-blockchain anezinhlangothi ezimbili.

I-TON: I-Telegram Open Network. Ingxenye 2: Ama-blockchains, sharding

Uma, ngemva kokuvinjelwa okunephutha, izinguquko ezenziwe yilo zazibhekiselwa kumabhulokhi alandelayo (okungukuthi, ukuthengiselana okusha kwenziwa ngokusekelwe kokungavumelekile), okulungisiwe nakho kwengezwa kulawa mabhulokhi "phezulu". Uma amabhulokhi engazange athinte ulwazi "oluthintekile", lawa "magagasi okulungisa" awasebenzi kuwo. Isibonelo, emfanekisweni ongenhla, ukuthengiselana kwebhulokhi yokuqala, okwandisa ibhalansi ye-akhawunti C, kwaqashelwa njengokungalungile - ngakho-ke, ukuthengiselana okunciphisa ibhalansi yale akhawunti kubhulogi lesithathu kufanele kukhanselwe, kanye nebhulokhi yokulungisa. kufanele izinikele phezu kwe-block ngokwayo.

Kumele kuqashelwe ukuthi nakuba amabhulokhi okulungisa eboniswa njengakho β€œngenhla” kwawangempela, empeleni azokwengezwa ekugcineni kwe-blockchain ehambisanayo (lapho kufanele alandelelane khona isikhathi). Indawo enezinhlangothi ezimbili ibonisa kuphela ukuthi yiliphi iphuzu ku-blockchain lapho "bazoxhunywa khona" (nge-hashi yebhulokhi yokuqala etholakala kuyo).

Ungakwazi ngokwehlukana ifilosofi yokuthi sihle kangakanani isinqumo "sokushintsha okwedlule". Kungase kubonakale sengathi uma sivuma ukuthi kungenzeka ukuthi i-block engalungile ivele ku-shardchain, ngakho-ke asikwazi ukugwema ukuthi kungenzeka ukuthi kuvele ibhulokhi yokulungisa eyiphutha. Lapha, ngokwazi kwami, umehluko usenani lama-node okufanele afinyelele ukuvumelana kumabhulokhi amasha - kuzoba nenani elincane labantu abasebenza ku-shardchain ngayinye."iqembu elisebenzayoΒ» ama-node (ashintsha ukwakheka kwawo kaningi), kanye nokwethulwa kwamabhulokhi okulungisa kuzodinga imvume yawo wonke umuntu. ama-validator nodes. Ngizokhuluma kabanzi mayelana nama-validators, amaqembu okusebenza, nezinye izindima ze-node esihlokweni esilandelayo.

I-blockchain eyodwa ukuze ibuse bonke

Kunolwazi oluningi olubalwe ngenhla mayelana nezinhlobo ezahlukene ze-blockchains, yona ngokwayo okufanele futhi igcinwe endaweni ethile. Ikakhulukazi, sikhuluma ngolwazi olulandelayo:

  • mayelana nenombolo nokucushwa kwamaketanga okusebenza;
  • mayelana nenani lamaketango neziqalo zawo;
  • mayelana nokuthi yimaphi ama-node okwamanje anesibopho sokuthi yimaphi ama-shardchains;
  • ama-hashe wamabhulokhi wokugcina angezwe kuwo wonke ama-shardchain.

Njengoba ubungase uqagele, zonke lezi zinto ziqoshwa kwesinye isitoreji se-blockchain - masterchain (masterchain, master blockchain). Ngenxa yokuba khona kwama-hashes avela emabhuloki awo wonke ama-shardchains emabhuloki awo, kwenza uhlelo luxhumeke kakhulu. Lokhu kusho, phakathi kwezinye izinto, ukuthi ukukhiqizwa kwebhulokhi entsha ku-masterchain kuzokwenzeka ngokushesha ngemuva kokukhiqizwa kwamabhulokhi kuma-shardchains - kulindeleke ukuthi amabhlogo kuma-shardchains azovela cishe ngasikhathi sinye cishe njalo ngemizuzwana emi-5, kanti ibhulokhi elandelayo ku masterchain - okwesibili ngemva kwalokho.

Kodwa ubani ozoba nesibopho sokuqaliswa kwawo wonke lo msebenzi we-titanic - ukuthumela imilayezo, ukwenza izinkontileka ezihlakaniphile, ukwenza amabhlogo kuma-shardchains kanye ne-masterchain, ngisho nokuhlola amabhulokhi amaphutha? Ngabe konke lokhu kuzokwenziwa ngasese yizingcingo zezigidi zabasebenzisi ezineklayenti leTelegram elifakwe kuzo? Noma, mhlawumbe, ithimba le-Durov lizoyishiya imibono yokusabalalisa futhi amaseva abo azokwenza ngendlela yakudala?

Eqinisweni, ayikho impendulo eyodwa noma enye elungile. Kodwa imingcele yalesi sihloko isheshe iphele, ngakho-ke sizokhuluma ngezindima ezihlukahlukene zama-node (kungenzeka ukuthi usuvele ubonile okushiwo abanye babo), kanye nemishini yomsebenzi wabo, engxenyeni elandelayo.

Source: www.habr.com

Engeza amazwana