TON: Líonra Oscailte Telegram. Cuid 2: Blockchains, sharding

TON: Líonra Oscailte Telegram. Cuid 2: Blockchains, sharding

Leanann an téacs seo de shraith alt ina scrúdaíonn mé struchtúr an líonra dáilte (is dócha) Líonra Oscailte Telegram (TON), atá á ullmhú le haghaidh scaoileadh i mbliana. IN chuid roimhe Rinne mé cur síos ar a leibhéal is bunúsaí - an bealach a idirghníomhaíonn nóid lena chéile.

Ar eagla na heagla, cuirigí i gcuimhne duit nach bhfuil baint ar bith agam le forbairt an líonra seo agus gur bailíodh an t-ábhar ar fad ó fhoinse oscailte (cé nach bhfuil sé fíoraithe) - doiciméad (tá tionlacan ann freisin bróisiúr, ag cur síos go hachomair ar na príomhphointí), a tháinig chun solais ag deireadh na bliana seo caite. Léiríonn an méid faisnéise atá sa doiciméad seo, i mo thuairim, a bharántúlacht, cé nach bhfuil aon dheimhniú oifigiúil air seo.

Sa lá atá inniu beimid ag féachaint ar phríomh-chomhpháirt TON - an blockchain.

Coincheapa bunúsacha

Cuntas (cuntas). Sraith sonraí arna sainaithint ag uimhir 256-giotán cuntas_aitheantas (is minic gurb é seo eochair phoiblí úinéir an chuntais). Sa chás bonn (féach thíos náid workchain), tagraíonn na sonraí seo d'iarmhéid an úsáideora. "Áit" ar leith cuntas_aitheantas is féidir le duine ar bith, ach ní féidir a luach a athrú ach amháin de réir rialacha áirithe.

Conradh cliste (conradh cliste). Go bunúsach, is cás speisialta cuntas é, arna fhorlíonadh le cód conartha cliste agus stóráil a chuid athróg. Más rud é i gcás "sparán" is féidir leat airgead a thaisceadh agus a tharraingt siar uaidh de réir rialacha réasúnta simplí agus réamhshocraithe, ansin i gcás conartha cliste scríobhtar na rialacha seo i bhfoirm a chóid (i gceann áirithe Turing-comhlánaithe). teanga ríomhchlárúcháin).

Stát Blockchain (staid blockchain). Staid na gcuntas/na gconarthaí cliste go léir (i gciall teibí, tábla hais, áit ar aitheantóirí cuntais iad na heochracha agus is iad na luachanna na sonraí atá stóráilte sna cuntais).

Teachtaireacht (teachtaireacht). Thuas d’úsáid mé an abairt “airgead creidmheasa agus dochair” – is sampla ar leith é seo de theachtaireacht (“aistriú N gram as cuntas cuntas_1 chun cuntas cuntas_2"). Ar ndóigh, ní féidir ach leis an nód ar leis an eochair phríobháideach an chuntais teachtaireacht dá leithéid a sheoladh cuntas_1 - agus in ann é seo a dhearbhú le síniú. Is é an toradh a bhaineann le teachtaireachtaí den sórt sin a sheachadadh chuig cuntas rialta ná méadú ar a chothromaíocht, agus is é toradh an chonartha cliste ná a chód a fhorghníomhú (a phróiseálfaidh fáil na teachtaireachta). Ar ndóigh, tá teachtaireachtaí eile indéanta freisin (ní méideanna airgeadaíochta a aistriú, ach sonraí treallach idir conarthaí cliste).

Idirbheart (idirbheart). Tugtar idirbheart ar an bhfíric go seachadtar teachtaireacht. Athraíonn idirbhearta staid an blockchain. Is idirbhearta (taifid seachadta teachtaireachta) a chomhdhéanann na bloic sa blockchain. I dtaca leis seo, is féidir leat smaoineamh ar staid an blockchain mar bhunachar sonraí incriminteach - tá na bloic go léir "difreacha" a chaithfear a chur i bhfeidhm go seicheamhach chun staid reatha an bhunachair shonraí a fháil. Pléifear sa chéad alt eile na sonraí maidir le pacáistiú na “difreanna” seo (agus an stát iomlán a athbhunú uathu).

Blockchain in TON: cad é agus cén fáth?

Mar a luadh san alt roimhe seo, Is struchtúr sonraí é blockchain, a ndéantar na heilimintí (bloic) de a ordú ina “slabhra”, agus tá hash den cheann roimhe sin i ngach bloc den slabhra ina dhiaidh sin. Chuir na tuairimí an cheist: cén fáth a bhfuil struchtúr sonraí den sórt sin ag teastáil uainn ar chor ar bith nuair a bhíonn DHT againn cheana féin - tábla hash dáilte? Ar ndóigh, is féidir roinnt sonraí a stóráil in DHT, ach níl sé seo oiriúnach ach le haghaidh faisnéise nach bhfuil ró-íogair. Ní féidir iarmhéideanna Cryptocurrency a stóráil i DHT - go príomha mar gheall ar an easpa seiceálacha ar ionracas. I ndáiríre, fásann castacht iomlán an struchtúir blockchain chun cur isteach ar na sonraí atá stóráilte ann a chosc.

Mar sin féin, tá cuma níos casta fós ar an blockchain i TON ná i bhformhór na gcóras dáilte eile - agus ar dhá chúis. Is é an chéad cheann an fonn an gá atá le a íoslaghdú forcanna. I cryptocurrencies traidisiúnta, socraítear na paraiméadair go léir ag an gcéim tosaigh agus má dhéantar aon iarracht iad a athrú go dtiocfaidh "Cruinne cryptocurrency malartach" chun cinn. Is é an dara chúis ná tacaíocht do bhrú (bearradh, bearradh) blockchain. Is struchtúr é Blockchain nach féidir a bheith níos lú le himeacht ama; agus de ghnáth cuirtear iallach ar gach nód atá freagrach as oibriú an ghréasáin é a stóráil go hiomlán. I gcórais thraidisiúnta (lárnaithe), úsáidtear bearrtha chun fadhbanna den sórt sin a réiteach: tá cuid de na taifid sa bhunachar sonraí suite ar fhreastalaí amháin, cuid eile ar fhreastalaí, etc. I gcás cryptocurrencies, tá feidhmiúlacht den sórt sin fós sách annamh - go háirithe, mar gheall ar an bhfíric go bhfuil sé deacair sharding a chur le córas nach raibh sé beartaithe ar dtús.

Conas atá sé beartaithe ag TON an dá fhadhb thuas a réiteach?

Ábhar Blockchain. Slabhraí oibre.

TON: Líonra Oscailte Telegram. Cuid 2: Blockchains, sharding

Ar an gcéad dul síos, déanaimis labhairt faoi na rudaí atá beartaithe a stóráil sa blockchain. Stórálfar staid na gcuntas (“sparán” sa bhunchás) agus conarthaí cliste ann (ar mhaithe le simplíocht, glacfaimid leis gurb ionann é seo agus cuntais). Go bunúsach, beidh sé seo tábla hash rialta - aitheantóirí a bheidh sna heochracha ann cuntas_aitheantas, agus is struchtúir sonraí iad luachanna ina bhfuil rudaí mar:

  • cothromaíocht ;
  • cód conartha cliste (le haghaidh conarthaí cliste amháin);
  • stóráil sonraí conartha cliste (do chonarthaí cliste amháin);
  • staitisticí;
  • (roghnach) eochair phoiblí le haghaidh aistrithe ón gcuntas, de réir réamhshocraithe account_id;
  • scuaine de theachtaireachtaí amach (anseo a chuirtear isteach iad le cur ar aghaidh chuig an bhfaighteoir);
  • liosta de na teachtaireachtaí is déanaí a seachadadh chuig an gcuntas seo.

Mar a luadh thuas, is éard atá sna bloic iad féin ná idirbhearta - teachtaireachtaí a sheachadtar chuig cuntais éagsúla account_id. Mar sin féin, chomh maith le account_id, tá réimse 32-giotán sna teachtaireachtaí freisin workchain_id — aitheantóir mar a thugtar air slabhra oibre (slabhra oibre, blockchain oibre). Ligeann sé seo duit roinnt blockchains a bheith neamhspleách óna chéile le cumraíochtaí éagsúla. Sa chás seo, meastar gur cás speisialta é workchain_id = 0, náid workchain — is iad na hiarmhéideanna ann a chomhfhreagróidh don cryptocurrency TON (Grams). Is dócha, ar dtús, nach mbeidh slabhraí oibre eile ann ar chor ar bith.

Slabhraí. Paradigm Sharding gan teorainn.

Ach ní stopann an fás ar líon na blockchains ann. A ligean ar déileáil le sharding. Samhlóimid go leithdháiltear a blockchain féin ar gach cuntas (account_id) - tá na teachtaireachtaí go léir a thagann chuige ann - agus stóráiltear staid na blockchain ar fad den sórt sin ar nóid ar leith.

Ar ndóigh, tá sé seo an-cur amú: is dócha, i ngach ceann díobh seo shardchains (shardchain, blockchain shard) go dtiocfaidh idirbhearta an-annamh, agus beidh gá le go leor nóid chumhachtacha (ag breathnú amach romhainn, tugaim faoi deara nach bhfuil muid ag caint faoi chliaint ar fhóin phóca amháin - ach faoi fhreastalaithe tromchúiseacha).

Mar sin, comhcheanglaíonn shardchains cuntais de réir réimírí dénártha a n-aitheantóirí: má tá réimír 0110 ag shardchain, ansin áireofar ann idirbhearta gach account_ids a thosaíonn leis na huimhreacha seo. seo shard_prefix is féidir a bheith ar fad ó 0 go 60 giotán - agus is é an rud is mó gur féidir é a athrú go dinimiciúil.

TON: Líonra Oscailte Telegram. Cuid 2: Blockchains, sharding

Chomh luath agus a thosaíonn ceann de na shardchains ag fáil an iomarca idirbheart, déanann na nóid atá ag obair air, de réir rialacha réamhshocraithe, é a “roinnt” ina dhá leanbh - beidh a réimíreanna beagán níos faide (agus i gcás ceann amháin acu beidh an giotán seo. comhionann le 0, agus don cheann eile - 1). Mar shampla, shard_prefix = 0110scoiltfidh b isteach 01100b agus 01101b. Ina dhiaidh sin, má thosaíonn dhá shardchains “comharsanachta” ar a suaimhneas go leor (ar feadh tamaill), cumascfaidh siad arís.

Mar sin, déantar an bhearradh “ón mbun aníos” - glacaimid leis go bhfuil a shard féin ag gach cuntas, ach de thuras na huaire tá siad “gláite le chéile” le réimíreanna. Is é seo a chiallaíonn sé Paradigm Sharding gan teorainn (paradigm sharding gan teorainn).

Ar leithligh, ba mhaith liom a aibhsiú nach bhfuil slabhraí oibre ann ach beagnach - go deimhin, workchain_id is cuid den aitheantóir de shardchain ar leith é. I dtéarmaí foirmeálta, sainmhínítear gach shardchain le péire uimhreacha (workchain_id, shard_prefix).

Earráid a cheartú. Blockchains ingearach.

Go traidisiúnta, meastar go bhfuil aon idirbheart ar bhlocchain “suite i gcloch”. I gcás TON, áfach, is féidir “stair a athscríobh” - i gcás duine éigin (mar a thugtar air. snaidhm iascaire) cruthóidh sé gur síníodh ceann de na bloic go mícheart. Sa chás seo, cuirtear bloc ceartúcháin speisialta leis an shardchain comhfhreagrach, ina bhfuil hash an bhloc féin á cheartú (agus ní an bloc deireanach sa shardchain). Ag smaoineamh ar an shardchain mar shlabhra bloic atá leagtha amach go cothrománach, is féidir linn a rá go bhfuil an bloc ceartúcháin ceangailte leis an mbloc earráideach ní ar dheis, ach ó thuas - mar sin meastar go mbeidh sé mar chuid de "blockchain ingearach" beag. . Dá bhrí sin, is féidir linn a rá go bhfuil shardchains blockchain dhá-thoiseach.

TON: Líonra Oscailte Telegram. Cuid 2: Blockchains, sharding

Más rud é, tar éis bloc earráideach, go ndearnadh tagairt do na hathruithe a rinne sé sna bloic ina dhiaidh sin (i.e., rinneadh idirbhearta nua bunaithe ar chinn neamhbhailí), cuirtear cinn cheartaitheacha leis na bloic seo freisin “ar a bharr”. Mura raibh tionchar ag na bloic ar an bhfaisnéis “a raibh tionchar aige”, ní bhaineann na “tonnta ceartaitheacha” seo leo. Mar shampla, sa léaráid thuas, aithníodh go raibh idirbheart an chéad bhloc, ag méadú iarmhéid an chuntais C, mícheart - mar sin, ba cheart an t-idirbheart a laghdódh iarmhéid an chuntais seo sa tríú bloc a chur ar ceal freisin, agus bloc ceartaitheach ba chóir a bheith tiomanta ar bharr an bhloc féin.

Ba chóir a thabhairt faoi deara, cé go léirítear na bloic cheartaitheacha mar atá suite “os cionn” na cinn bhunaidh, go deimhin cuirfear iad go dtí deireadh na blockchain comhfhreagrach (áit ar cheart iad a bheith go croineolaíoch). Ní léiríonn an suíomh déthoiseach ach an pointe sa bhlocchain a mbeidh siad “nasctha” (trí hash an bhloic bhunaidh atá suite iontu).

Féadfaidh tú fealsúnacht a dhéanamh ar leithligh faoi cé chomh maith agus atá an cinneadh “an t-am atá thart a athrú”. Is cosúil, má admhaímid go bhféadfadh bloc mícheart a bheith le feiceáil sa shardchain, ansin ní féidir linn an fhéidearthacht go dtarlódh bloc ceartúcháin earráideach a sheachaint. Anseo, chomh fada agus is féidir liom a rá, tá an difríocht i líon na nóid a chaithfidh teacht ar chomhdhearcadh maidir le bloic nua - beidh líon réasúnta beag daoine ag obair ar gach shardchain."grúpa oibre» nóid (a athraíonn a chomhdhéanamh sách minic), agus chun bloic cheartaitheacha a thabhairt isteach beidh toiliú gach duine ag teastáil nóid bhailitheoir. Labhróidh mé níos mó faoi bhailitheoirí, grúpaí oibre, agus róil nód eile sa chéad alt eile.

Blockchain amháin chun iad go léir a rialú

Tá go leor faisnéise liostaithe thuas faoi na cineálacha éagsúla blockchain, ar chóir iad féin a stóráil áit éigin freisin. Go háirithe, táimid ag caint faoin bhfaisnéis seo a leanas:

  • faoi ​​líon agus cumraíochtaí na slabhraí oibre;
  • faoi ​​líon na shardchains agus a réimíreanna;
  • cad iad na nóid atá freagrach as na slabhraí shardchain faoi láthair;
  • hashes de na bloic deiridh a chuirtear le gach shardchains.

Mar a d’fhéadfadh a bheith déanta agat, déantar na rudaí seo go léir a thaifeadadh i stóras blockchain eile - máistirchain (máistirchain, máistir blockchain). Mar gheall ar láithreacht hashes ó na bloic shardchains go léir ina bloic, déanann sé an córas nasctha go mór. Ciallaíonn sé seo, i measc rudaí eile, go dtarlóidh giniúint bloc nua sa masterchain díreach tar éis bloic a ghiniúint i shardchains - táthar ag súil go mbeidh bloic i shardchains le feiceáil beagnach go comhuaineach thart ar gach 5 soicind, agus an chéad bhloc eile sa masterchain - soicind tar éis sin.

Ach cé a bheidh freagrach as an obair titanic seo go léir a chur i bhfeidhm - chun teachtaireachtaí a sheoladh, conarthaí cliste a fhorghníomhú, bloic a fhoirmiú i shardchains agus an masterchain, agus fiú bloic a sheiceáil le haghaidh earráidí? An ndéanfar seo go léir go rúnda ag fóin na milliúin úsáideoirí a bhfuil an cliant Telegram suiteáilte orthu? Nó, b’fhéidir, go dtréigfidh foireann Durov smaointe an díláraithe agus an ndéanfaidh a gcuid freastalaithe é ar an mbealach sean-aimseartha?

Déanta na fírinne, níl ceann amháin nó an freagra eile ceart. Ach tá imeall an ailt seo ag rith amach go tapa, mar sin beimid ag caint faoi róil éagsúla na nóid (b'fhéidir gur thug tú faoi deara go bhfuil cuid acu cheana féin), chomh maith le meicnic a gcuid oibre, sa chéad chuid eile.

Foinse: will.com

Add a comment