Ruka hadi kwenye maudhui makuu
Change page

Vitalu

Vitalu ni makundi ya miamala yenye heshi ya kitalu kilichotangulia katika mnyororo. Hii inaunganisha vitalu pamoja (katika mnyororo) kwa sababu heshi zinatokana na data ya kitalu kwa njia ya kificho. Hii inazuia udanganyifu, kwa sababu badiliko moja katika kitalu chochote katika historia litabatilisha vitalu vyote vinavyofuata kwa kuwa heshi zote zinazofuata zitabadilika na kila mtu anayeendesha mnyororo wa vitalu atagundua.

Mahitaji ya awali

Vitalu ni mada rahisi sana kwa wanaoanza. Lakini ili kukusaidia kuelewa ukurasa huu vizuri zaidi, tunapendekeza usome kwanza Akaunti, Miamala, na utangulizi wetu wa Ethereum.

Kwa nini vitalu?

Ili kuhakikisha kwamba washiriki wote kwenye mtandao wa Ethereum wanadumisha hali iliyosawazishwa na kukubaliana juu ya historia sahihi ya miamala, tunaweka miamala katika makundi kwenye vitalu. Hii inamaanisha makumi (au mamia) ya miamala inafungamanishwa, inakubaliwa, na kusawazishwa kwa wakati mmoja.

A diagram showing transaction in a block causing state changes Mchoro umechukuliwa kutoka Ethereum EVM illustrated (opens in a new tab)

Kwa kuweka nafasi kati ya ufungamanisho, tunawapa washiriki wote wa mtandao muda wa kutosha kufikia mwafaka: ingawa maombi ya miamala hutokea mara nyingi kwa sekunde, vitalu huundwa na kufungamanishwa kwenye Ethereum mara moja tu kila baada ya sekunde kumi na mbili.

Jinsi vitalu vinavyofanya kazi

Ili kuhifadhi historia ya miamala, vitalu hupangwa kwa utaratibu maalum (kila kitalu kipya kinachoundwa kina rejeleo la kitalu chake kikuu), na miamala ndani ya vitalu hupangwa kwa utaratibu maalum pia. Isipokuwa katika matukio machache, wakati wowote ule, washiriki wote kwenye mtandao wanakubaliana juu ya idadi kamili na historia ya vitalu, na wanafanya kazi ya kuweka maombi ya sasa ya miamala katika kitalu kinachofuata.

Pindi kitalu kinapokusanywa na mthibitishaji aliyechaguliwa kwa nasibu kwenye mtandao, kinasambazwa kwa mtandao mzima; nodi zote huongeza kitalu hiki mwishoni mwa mnyororo wao wa vitalu, na mthibitishaji mpya anachaguliwa ili kuunda kitalu kinachofuata. Mchakato kamili wa kuunganisha kitalu na mchakato wa ufungamanisho/mwafaka kwa sasa umebainishwa na itifaki ya Ethereum ya "Uthibitisho wa Dau (PoS)".

Itifaki ya Uthibitisho wa Dau (PoS)

Uthibitisho wa Dau unamaanisha yafuatayo:

  • Nodi zinazothibitisha zinapaswa kuweka dhamana ya 32 ETH kwenye mkataba wa amana kama dhamana dhidi ya tabia mbaya. Hii inasaidia kulinda mtandao kwa sababu shughuli zinazothibitishwa kuwa za udanganyifu husababisha baadhi au dhamana yote kuharibiwa.
  • Katika kila sloti (zilizotenganishwa kwa sekunde kumi na mbili) mthibitishaji anachaguliwa kwa nasibu kuwa mpendekezaji wa bloku. Wanakusanya miamala pamoja, kuitekeleza na kuamua 'hali' mpya. Wanaweka taarifa hizi kwenye kitalu na kuzipitisha kwa wathibitishaji wengine.
  • Wathibitishaji wengine wanaosikia kuhusu kitalu kipya hutekeleza tena miamala ili kuhakikisha wanakubaliana na mabadiliko yaliyopendekezwa kwenye hali ya kimataifa. Kwa kudhani kitalu ni halali, wanakuongeza kwenye hifadhidata yao wenyewe.
  • Ikiwa mthibitishaji atasikia kuhusu vitalu viwili vinavyokinzana kwa sloti moja wanatumia algoriti yao ya kuchagua mchepuo ili kuchagua kile kinachoungwa mkono na ETH nyingi zilizowekwa dhamana.

Zaidi kuhusu Uthibitisho wa Dau

Kuna nini ndani ya kitalu?

Kuna taarifa nyingi zilizomo ndani ya kitalu. Katika kiwango cha juu zaidi kitalu kina sehemu zifuatazo:

SehemuMaelezo
slotsloti ambayo kitalu ni chake
proposer_indexkitambulisho cha mthibitishaji anayependekeza kitalu
parent_rootheshi ya kitalu kilichotangulia
state_rootheshi ya mzizi ya kipengee cha hali
bodykipengee chenye sehemu kadhaa, kama ilivyofafanuliwa hapa chini

Kitalu body kina sehemu zake kadhaa:

SehemuMaelezo
randao_revealthamani inayotumika kuchagua mpendekezaji wa bloku anayefuata
eth1_datataarifa kuhusu mkataba wa amana
graffitidata ya kiholela inayotumika kuweka lebo kwenye vitalu
proposer_slashingsorodha ya wathibitishaji watakaofanyiwa ukataji
attester_slashingsorodha ya watoa uthibitisho watakaofanyiwa ukataji
attestationsorodha ya uthibitisho uliotolewa dhidi ya sloti zilizopita
depositsorodha ya amana mpya kwenye mkataba wa amana
voluntary_exitsorodha ya wathibitishaji wanaoondoka kwenye mtandao
sync_aggregatekikundi kidogo cha wathibitishaji kinachotumika kuhudumia wateja wepesi
execution_payloadmiamala iliyopitishwa kutoka kwa kiteja cha utekelezaji

Sehemu ya attestations ina orodha ya uthibitisho wote katika kitalu. Uthibitisho una aina yake ya data ambayo ina vipande kadhaa vya data. Kila uthibitisho una:

SehemuMaelezo
aggregation_bitsorodha ya wathibitishaji walioshiriki katika uthibitisho huu
datakontena lenye sehemu ndogo nyingi
signaturesahihi ya jumla ya kundi la wathibitishaji dhidi ya sehemu ya data

Sehemu ya data katika attestation ina yafuatayo:

SehemuMaelezo
slotsloti ambayo uthibitisho unahusiana nayo
indexfaharisi za wathibitishaji wanaotoa uthibitisho
beacon_block_rootheshi ya mzizi ya kitalu cha kinara inayoonekana kama kichwa cha mnyororo
sourcekituo cha ukaguzi cha mwisho kilichohalalishwa
targetkitalu cha hivi punde cha mpaka wa kipindi

Kutekeleza miamala katika execution_payload kunasasisha hali ya kimataifa. Wateja wote hutekeleza tena miamala katika execution_payload ili kuhakikisha hali mpya inalingana na ile iliyo katika sehemu ya state_root ya kitalu kipya. Hivi ndivyo wateja wanaweza kujua kwamba kitalu kipya ni halali na salama kuongezwa kwenye mnyororo wao wa vitalu. execution payload yenyewe ni kipengee chenye sehemu kadhaa. Pia kuna execution_payload_header ambayo ina taarifa muhimu za muhtasari kuhusu data ya utekelezaji. Miundo hii ya data imepangwa kama ifuatavyo:

execution_payload_header ina sehemu zifuatazo:

SehemuMaelezo
parent_hashheshi ya kitalu kikuu
fee_recipientanwani ya akaunti ya kulipia ada za muamala
state_rootheshi ya mzizi ya hali ya kimataifa baada ya kutumia mabadiliko katika kitalu hiki
receipts_rootheshi ya mti wa stakabadhi za muamala
logs_bloommuundo wa data ulio na kumbukumbu za matukio
prev_randaothamani inayotumika katika uteuzi wa nasibu wa mthibitishaji
block_numbernambari ya kitalu cha sasa
gas_limitkiwango cha juu cha gesi kinachoruhusiwa katika kitalu hiki
gas_usedkiasi halisi cha gesi kilichotumika katika kitalu hiki
timestampmuda wa kitalu
extra_datadata ya ziada ya kiholela kama baiti ghafi
base_fee_per_gasthamani ya ada ya msingi
block_hashHeshi ya kitalu cha utekelezaji
transactions_rootheshi ya mzizi ya miamala katika mzigo
withdrawal_rootheshi ya mzizi ya utoaji katika mzigo

execution_payload yenyewe ina yafuatayo (kumbuka hii inafanana na kichwa isipokuwa kwamba badala ya heshi ya mzizi ya miamala inajumuisha orodha halisi ya miamala na taarifa za utoaji) :

SehemuMaelezo
parent_hashheshi ya kitalu kikuu
fee_recipientanwani ya akaunti ya kulipia ada za muamala
state_rootheshi ya mzizi ya hali ya kimataifa baada ya kutumia mabadiliko katika kitalu hiki
receipts_rootheshi ya mti wa stakabadhi za muamala
logs_bloommuundo wa data ulio na kumbukumbu za matukio
prev_randaothamani inayotumika katika uteuzi wa nasibu wa mthibitishaji
block_numbernambari ya kitalu cha sasa
gas_limitkiwango cha juu cha gesi kinachoruhusiwa katika kitalu hiki
gas_usedkiasi halisi cha gesi kilichotumika katika kitalu hiki
timestampmuda wa kitalu
extra_datadata ya ziada ya kiholela kama baiti ghafi
base_fee_per_gasthamani ya ada ya msingi
block_hashHeshi ya kitalu cha utekelezaji
transactionsorodha ya miamala itakayotekelezwa
withdrawalsorodha ya vipengee vya utoaji

Orodha ya withdrawals ina vipengee vya withdrawal vilivyoundwa kwa njia ifuatayo:

SehemuMaelezo
addressanwani ya akaunti iliyofanya utoaji
amountkiasi cha utoaji
indexthamani ya faharisi ya utoaji
validatorIndexthamani ya faharisi ya mthibitishaji

Muda wa kitalu

Muda wa kitalu unarejelea muda unaotenganisha vitalu. Katika Ethereum, muda umegawanywa katika vipande vya sekunde kumi na mbili vinavyoitwa 'sloti'. Katika kila sloti mthibitishaji mmoja anachaguliwa kupendekeza kitalu. Kwa kudhani wathibitishaji wote wako mtandaoni na wanafanya kazi kikamilifu kutakuwa na kitalu katika kila sloti, ikimaanisha muda wa kitalu ni sekunde 12. Hata hivyo, mara kwa mara wathibitishaji wanaweza kuwa nje ya mtandao wanapoitwa kupendekeza kitalu, ikimaanisha sloti zinaweza wakati mwingine kuwa tupu.

Utekelezaji huu unatofautiana na mifumo inayotegemea Uthibitisho wa Kazi (PoW) ambapo muda wa kitalu unategemea uwezekano na kurekebishwa na ugumu wa uchimbaji unaolengwa na itifaki. Wastani wa muda wa kitalu (opens in a new tab) wa Ethereum ni mfano mzuri wa hili ambapo mpito kutoka Uthibitisho wa Kazi hadi Uthibitisho wa Dau unaweza kuonekana wazi kulingana na uthabiti wa muda mpya wa kitalu wa sekunde 12.

Ukubwa wa kitalu

Jambo la mwisho muhimu ni kwamba vitalu vyenyewe vina kikomo cha ukubwa. Kila kitalu kina ukubwa unaolengwa wa gesi milioni 30 lakini ukubwa wa vitalu utaongezeka au kupungua kulingana na mahitaji ya mtandao, hadi kikomo cha kitalu cha gesi milioni 60 (mara 2 ya ukubwa wa kitalu unaolengwa). Kikomo cha gesi cha kitalu kinaweza kurekebishwa kwenda juu au chini kwa uwiano wa 1/1024 kutoka kwenye kikomo cha gesi cha kitalu kilichotangulia. Kutokana na hili, wathibitishaji wanaweza kubadilisha kikomo cha gesi cha kitalu kupitia mwafaka. Jumla ya kiasi cha gesi kinachotumiwa na miamala yote katika kitalu lazima kiwe chini ya kikomo cha gesi cha kitalu. Hili ni muhimu kwa sababu linahakikisha kwamba vitalu haviwezi kuwa vikubwa kiholela. Ikiwa vitalu vingeweza kuwa vikubwa kiholela, basi nodi kamili zenye uwezo mdogo zingeanza kushindwa kuendana na mtandao kutokana na mahitaji ya nafasi na kasi. Kadiri kitalu kinavyokuwa kikubwa, ndivyo nguvu kubwa ya kompyuta inavyohitajika kuvichakata kwa wakati kwa ajili ya sloti inayofuata. Hii ni nguvu ya kuweka udhibiti kati, ambayo inapingwa kwa kuweka kikomo cha ukubwa wa vitalu.

Kusoma zaidi

Unajua rasilimali ya jamii iliyokusaidia? Hariri ukurasa huu na uiongeze!

Ukurasa ulisasishwa mwisho: 23 Februari 2026