TON: Lìonra Fosgailte Telegram. Pàirt 2: Blockchains, sharding

TON: Lìonra Fosgailte Telegram. Pàirt 2: Blockchains, sharding

Tha an teacsa seo a’ leantainn air sreath de artaigilean anns a bheil mi a’ beachdachadh air structar an lìonra sgaoilte (a rèir coltais) Telegram Open Network (TON), a thathar ag ullachadh airson a leigeil ma sgaoil am-bliadhna. ANNS pàirt roimhe Thug mi cunntas air an ìre as bunaitiche aige - an dòigh anns a bheil na nodan ag eadar-obrachadh le chèile.

Dìreach air eagal, leig dhomh do chuimhneachadh nach eil gnothach sam bith agam ri leasachadh an lìonraidh seo agus tha an stuth gu lèir air a tharraing bho stòr fosgailte (ged nach eil e dearbhte) - sgrìobhainn (tha fear na chois cuideachd leabhran, a’ toirt geàrr-chunntas air na prìomh phuingean), a nochd aig deireadh na bliadhna an-uiridh. Tha an ìre de dh'fhiosrachadh anns an sgrìobhainn seo, nam bheachd-sa, a 'sealltainn a dhearbhachd, ged nach eil dearbhadh oifigeil air seo.

An-diugh bheir sinn sùil air a’ phrìomh phàirt de TON - an blockchain.

Bun-bheachdan bunaiteach

cunntas (cunntas). Seata dàta air a chomharrachadh le àireamh 256-bit cunntas_id (mar as trice is e seo iuchair phoblach neach-seilbh a’ chunntais). Anns a 'chùis bhunaiteach (faic gu h-ìosal slabhraidh obrach neoni), tha an dàta seo a 'toirt iomradh air cothromachadh an neach-cleachdaidh. Sònraichte "còmhnaidh". cunntas_id faodaidh duine sam bith, ach chan urrainn dhut a luach atharrachadh ach a rèir riaghailtean sònraichte.

Cùmhnant glic (smart-cùmhnant). Gu dearbh, tha e na chùis shònraichte de chunntas, le còd cùmhnant snasail agus stòradh de na caochladairean aige. Ma tha e comasach ann an cùis “wallet” creideas agus airgead a tharraing air ais bhuaithe a rèir riaghailtean an ìre mhath sìmplidh agus ro-shuidhichte, an uairsin a thaobh cùmhnant snasail, tha na riaghailtean sin sgrìobhte ann an cruth a chòd (ann an cuid de Turing). - cànan prògramadh coileanta).

Stàite Blockchain (staid blockchain). An seata de stàitean de gach cunntas / cùmhnant snasail (anns an t-seagh eas-chruthach, clàr hash, far a bheil na h-iuchraichean nan aithnichearan cunntais, agus is e na luachan an dàta a tha air a stòradh anns na cunntasan).

teachdaireachd (teachdaireachd). Gu h-àrd, chleachd mi an abairt “credit and write off money” - tha seo na eisimpleir sònraichte de theachdaireachd (“gluasad N gram bhon chunntas cunntas_1 gach cunntas cunntas_2"). Gu dearbh, chan fhaod ach an nód aig a bheil iuchair phrìobhaideach a’ chunntais teachdaireachd mar sin a chuir. cunntas_1 - agus comasach air a dhearbhadh le ainm-sgrìobhte. Is e an toradh bho bhith a’ lìbhrigeadh a leithid de theachdaireachdan gu cunntas cunbhalach àrdachadh air a chothromachadh, agus gu cùmhnant snasail - cur an gnìomh a chòd (a làimhsicheas an teachdaireachd a fhuaireadh). Gu dearbh, tha teachdaireachdan eile comasach cuideachd (a 'gluasad chan e suimean airgid, ach dàta neo-riaghailteach eadar cùmhnantan snasail).

malairt (tar-). Canar malairt ris an fhìrinn gu bheil teachdaireachd air a lìbhrigeadh. Bidh gnothaichean ag atharrachadh staid an blockchain. Is e gnothaichean (clàran lìbhrigidh teachdaireachd) a tha a’ dèanamh suas na blocaichean anns an blockchain. A thaobh seo, faodaidh tu smaoineachadh air staid blockchain mar stòr-dàta mean air mhean - tha na blocaichean uile “diofar” a dh’ fheumar a chuir an sàs ann an òrdugh gus staid làithreach an stòr-dàta fhaighinn. Thèid beachdachadh air na mion-fhiosrachadh mu bhith a’ pacadh na “diffs” sin (agus ag ath-nuadhachadh an làn staid gan cleachdadh) san ath artaigil.

Blockchain ann an TON: dè a th ’ann agus carson?

Mar a chaidh ainmeachadh san artaigil roimhe, Is e structar dàta a th’ ann am Blockchain, agus tha na h-eileamaidean (blocaichean) dhiubh air an rèiteachadh ann an “slabhraidh”, agus tha hash den fhear roimhe anns gach ath bhloca den t-seine.. Chaidh a’ cheist fhaighneachd anns na beachdan: carson a tha feum againn air structar dàta mar sin nuair a tha DHT againn mu thràth - clàr hash sgaoilte? Gu dearbh, faodar cuid de dhàta a stòradh ann an DHT, ach chan eil seo freagarrach ach airson fiosrachadh nach eil ro “mhothachail”. Chan urrainnear cothromachadh cryptocurrency a stòradh ann an DHT - gu sònraichte air sgàth dìth sgrùdaidhean airson ionracas. Gu fìrinneach, bidh iom-fhillteachd iomlan structar blockchain a ’fàs gus casg a chuir air bacadh air an dàta a tha air a stòradh ann.

Ach, tha an blockchain ann an TON a’ coimhead eadhon nas iom-fhillte na anns a’ mhòr-chuid de shiostaman sgaoilte eile - agus tha dà adhbhar ann airson seo. Is e a 'chiad fhear am miann a bhith a' lùghdachadh an fheum air forcaichean. Ann an cryptocurrencies traidiseanta, tha a h-uile paramadair air a shuidheachadh aig a’ chiad ìre, agus tha oidhirp sam bith air an atharrachadh gu dearbh a ’leantainn gu nochdadh“ cruinne-cruinne cryptocurrency eile ”. Is e an dàrna adhbhar taic airson pronnadh (rùsgadh, rùsgadh) blockchain. Tha Blockchain na structar nach urrainn a dhol nas lugha thar ùine; agus mar as trice bidh gach nód le uallach airson slàinte an lìonraidh air a stòradh gu tur. Ann an siostaman traidiseanta (meadhanaichte), thathas a’ cleachdadh sharding gus fuasgladh fhaighinn air duilgheadasan mar seo: tha cuid de na clàran san stòr-dàta suidhichte air aon fhrithealaiche, cuid air fear eile, agus mar sin air adhart. A thaobh cryptocurrencies, tha an leithid de ghnìomhachd fhathast gu math tearc - gu sònraichte, leis gu bheil e duilich roinneadh a chuir ri siostam far nach deach a dhealbhadh an toiseach.

Ciamar a tha TON an dùil an dà dhuilgheadas gu h-àrd fhuasgladh?

Blockchain susbaint. Slabhraidhean-obrach.

TON: Lìonra Fosgailte Telegram. Pàirt 2: Blockchains, sharding

An toiseach, bruidhnidh sinn mu na thathar an dùil a stòradh anns na blockchain. Thèid staid nan cunntasan (“wallets” sa bhun-chùis) agus cùmhnantan snasail (airson sìmplidheachd, gabhaidh sinn ris gu bheil seo an aon rud ri cunntasan) a stòradh an sin. Gu dearbh, bidh seo na chlàr hash cunbhalach - bidh na h-iuchraichean ann mar aithnichearan cunntas_id, agus luachan tha structaran dàta anns a bheil rudan mar:

  • cothromachadh;
  • còd cùmhnant smart (airson cùmhnantan snasail a-mhàin);
  • stòradh dàta cùmhnant smart (a-mhàin airson cùmhnantan snasail);
  • staitistig;
  • (roghainneil) iuchair phoblach airson gluasadan bho chunntas, account_id gu bunaiteach;
  • ciudha de theachdaireachdan a-mach (an seo tha iad air an cur a-steach airson a chuir air adhart chun neach a gheibh e);
  • liosta de na teachdaireachdan as ùire a chaidh a lìbhrigeadh don chunntas seo.

Mar a chaidh ainmeachadh gu h-àrd, tha na blocaichean fhèin air an dèanamh suas de ghnothaichean - teachdaireachdan air an lìbhrigeadh gu diofar chunntasan account_id. Ach, a bharrachd air an account_id, tha raon 32-bit ann am brathan cuideachd workchain_id - aithnichear mar a theirear ris. slabhraidh-obrach (slabhraidh-obrach, ag obair blockchain). Leigidh seo leat grunn bhlocaichean neo-eisimeileach a bhith agad le diofar rèiteachaidhean. Anns a 'chùis seo, tha workchain_id = 0 air a mheas mar chùis shònraichte, slabhraidh obrach neoni - is e na cothromachadh a tha ann a fhreagras ris an TON (Gram) cryptocurrency. Is coltaiche, an toiseach, nach bi slabhraidhean obrach eile ann idir.

Slabhraidhean. Paradigm Sharding neo-chrìochnach.

Ach chan eil am fàs anns an àireamh de blockchains a’ stad an sin. Leig leinn dèiligeadh ri sgoltadh. Smaoinich gu bheil a blockchain fhèin aig gach cunntas (account_id) - tha a h-uile teachdaireachd a gheibh e ann - agus tha stàitean a h-uile blockchain mar sin air an stòradh air nodan fa leth.

Gu dearbh, tha seo gu math sgudail: as coltaiche, anns gach aon dhiubh sin shardchain (shardchain, blockchain shard) is ann ainneamh a gheibhear gnothaichean, agus bidh feum air tòrr nodan cumhachdach (a’ coimhead air adhart, tha mi a’ toirt fa-near gu bheil sinn a’ bruidhinn chan ann a-mhàin mu luchd-dèiligidh air fònaichean-làimhe - ach mu luchd-frithealaidh trom).

Mar sin, bidh shardchains a’ cothlamadh chunntasan le ro-leasachan binary den aithnichearan aca: ma tha ro-leasachan de 0110 aig shardchain, an uairsin tuitidh gnothaichean a h-uile account_id a thòisicheas leis na h-àireamhan sin ann. Seo shard_ro-leasachan Faodaidh fad a bhith bho 0 gu 60 pìosan - agus as cudromaiche, faodaidh e atharrachadh gu dinamach.

TON: Lìonra Fosgailte Telegram. Pàirt 2: Blockchains, sharding

Cho luath ‘s a thòisicheas cus ghnothaichean a’ sruthadh a-steach do aon de na shardchains, bidh na nodan ag obair air, a rèir riaghailtean ro-shuidhichte, “air an roinn” ann an dà leanabh - bidh na ro-leasachain aca beagan nas fhaide (agus airson aon dhiubh am pìos seo bidh 0, agus airson an tè eile - 1). Mar eisimpleir, shard_ro-leasachan = 0110b a' sgoltadh a-steach 01100b agus 01101b. Aig an aon àm, ma thòisicheas dà shardchains “nàbaidh” a ’faireachdainn comhfhurtail gu leòr (airson ùine), thig iad còmhla a-rithist.

Mar sin, thathas a’ roinneadh “bhon bhonn gu h-àrd” - tha sinn a’ gabhail ris gu bheil a shlat fhèin aig gach cunntas, ach tha iad - aig an àm seo - “air an glaodhadh” le ro-leasachan. Seo na tha e a’ ciallachadh Paradigm Sharding neo-chrìochnach (paradigm sgrìobadh gun chrìoch).

Air leth, bu mhath leam a dhaingneachadh nach eil slabhraidhean-obrach ann ach cha mhòr - gu dearbh, workchain_id tha e na phàirt den aithnichear shardchain sònraichte. Ann an teirmean foirmeil, tha gach shardchain air a mhìneachadh le paidhir àireamhan (workchain_id, shard_ro-leasachan).

Ceartachadh mearachd. Blockchains dìreach.

Thathas gu traidiseanta a’ creidsinn gu bheil gnothach sam bith anns an blockchain “stèidhichte ann an cloich”. Ach, ann an cùis TON, tha e comasach "ath-sgrìobhadh eachdraidh" - ma tha cuideigin (mar a chanar ris. snaidhm - "iasgair") dearbhaidh gun deach ainm a chuir ri aon de na blocaichean gu ceàrr. Anns a 'chùis seo, thèid bloc ceartachaidh sònraichte a chur ris an shardchain co-fhreagarrach, anns a bheil hash a' bhloca ceartaichte fhèin (agus chan e am bloc mu dheireadh anns an shardchain). A 'riochdachadh an shardchain mar shreath de bhlocaichean air an cur a-mach gu còmhnard, faodaidh sinn a ràdh gu bheil am bloc ceartachaidh ceangailte ris a' bhloc mearachdach chan ann air an taobh dheas, ach gu h-àrd - mar sin, thathas den bheachd gu bheil e na phàirt de "blockchain dìreach" beag. . Mar sin, faodar a ràdh gu bheil shardchains blockchain dà-thaobhach.

TON: Lìonra Fosgailte Telegram. Pàirt 2: Blockchains, sharding

Ma tha, às deidh bloc mearachdach, na blocaichean às deidh sin a’ toirt iomradh air na h-atharrachaidhean a rinn e (ie, chaidh gnothaichean ùra a dhèanamh stèidhichte air feadhainn neo-dhligheach), thèid feadhainn ceartachaidh a chuir ris na blocaichean sin “bho shuas gu h-àrd”. Mura tug na blocaichean buaidh air an fhiosrachadh "air a bheil buaidh", chan eil na "tonnan ceartachaidh" sin a 'buntainn riutha. Mar eisimpleir, anns an dealbh gu h-àrd, chaidh malairt a’ chiad bhloca, a mheudaich cothromachadh cunntas C, aithneachadh mar rud ceàrr - mar sin, feumar cuideachd an gnothach a lughdaich cothromachadh a’ chunntais seo san treas bloc a chuir dheth, agus a chaidh bloc ceartachaidh a ghealltainn thairis air a’ bhloc fhèin.

Bu chòir a thoirt fa-near, ged a tha na blocaichean ceartachaidh air an sealltainn mar a tha suidhichte “gu h-àrd” an fheadhainn tùsail, gu dearbh thèid an cur gu deireadh an blockchain co-fhreagarrach (far am bu chòir dhaibh a bhith suidhichte ann an eachdraidh). Chan eil an rèiteachadh dà-mheudach a’ sealltainn ach gu dè an ìre anns an blockchain a bhios iad “air an dubhadh” (tro hash a’ bhloca thùsail a tha suidhichte annta).

Faodaidh tu feallsanachd fa leth a dhèanamh mu cho math sa tha an co-dhùnadh "an àm a dh'fhalbh" atharrachadh. Bhiodh e coltach ma leigeas sinn le coltas bloc ceàrr anns an shardchain, chan urrainn dhuinn casg a chuir air coltas bloc ceartachaidh mearachdach. An seo, cho fad ‘s as urrainn dhomh innse, bidh an eadar-dhealachadh anns an àireamh de nodan a dh’ fheumas co-aontachd a ruighinn mu bhlocaichean ùra - obraichidh an ìre mhath beag air gach shardchain "buidheann-obrach» nodan (gu tric ag atharrachadh a cho-dhèanamh), agus toirt a-steach blocaichean ceartachaidh feumar cead a h-uile duine nodan dearbhaidh. Còmhdaichidh mi luchd-dearbhaidh, buidhnean-obrach, agus dreuchdan nód eile ann am barrachd mionaideachd ann an artaigil san àm ri teachd.

Aon blockchain airson an riaghladh uile

Tha na tha gu h-àrd a ’liostadh tòrr fiosrachaidh mu na diofar sheòrsaichean de blockchains, a bu chòir ann fhèin a stòradh an àiteigin cuideachd. Gu sònraichte, tha sinn a 'bruidhinn mun fhiosrachadh a leanas:

  • mu àireamh agus rèiteachadh slabhraidhean obrach;
  • mu àireamh nan slabhraidhean shard agus an ro-leasachan;
  • mu na nodan a tha an-dràsta an urra ris na slatan-slabhraidh;
  • hashes de na blocaichean mu dheireadh air a chur ris a h-uile shardchains.

Mar is dòcha gu robh thu air smaoineachadh, tha na rudan sin uile air an clàradh ann an stòradh blockchain eile - mhaighistir (mhaighistir, maighstir blockchain). Air sgàth làthaireachd hashes bho bhlocaichean a h-uile shardchains anns na blocaichean aige, tha e a ’dèanamh an siostam gu math ceangailte. Am measg rudan eile, tha seo a’ ciallachadh gun tachair gineadh bloc ùr anns an masterchain sa bhad às deidh gineadh de bhlocaichean anns na shardchains - thathar an dùil gun nochd blocaichean anns na shardchains cha mhòr aig an aon àm timcheall air a h-uile 5 diog, agus an ath bhloc a-steach. an masterchain - diog às deidh sin.

Ach cò a bhios an urra ris an obair titanic seo gu lèir a chuir an gnìomh - airson teachdaireachdan a chuir, cùmhnantan snasail a chuir an gnìomh, blocaichean a chruthachadh ann an shardchains agus an masterchain, agus eadhon sgrùdadh a dhèanamh air blocaichean airson mearachdan? Am bi na fònaichean aig milleanan de luchd-cleachdaidh leis an neach-dèiligidh Telegram air a chuir a-steach orra dha-rìribh a’ dèanamh seo uile air an t-sliasaid? No, is dòcha, trèig sgioba Durov na beachdan mu sgaoileadh-mheadhanachaidh agus an dèan an luchd-frithealaidh e san dòigh seann-fhasanta?

Gu dearbh, chan eil aon no am freagairt eile ceart. Ach tha raointean an artaigil seo a 'tighinn gu crìch gu luath, agus mar sin bruidhnidh sinn mu na diofar dhleastanasan aig nodan (is dòcha gu bheil thu air mothachadh a dhèanamh air cuid dhiubh), a bharrachd air meacanaig an cuid obrach, anns an ath phàirt.

Source: www.habr.com

Cuir beachd ann