paint-brush
Kufungua Uboreshaji wa Starknet Boltkwa@2077research
Historia mpya

Kufungua Uboreshaji wa Starknet Bolt

kwa 2077 Research17m2024/12/26
Read on Terminal Reader

Ndefu sana; Kusoma

Uboreshaji wa Starknet Bolt ulianzisha vipengele viwili kuu: utekelezaji sambamba na utendaji wa kuzuia. Makala haya yanajadili jinsi vipengele hivi vipya vilivyoletwa vinavyoboresha utendakazi wa Starknet na kuboresha hali ya muamala kwa watumiaji wa Layer 2 (L2).
featured image - Kufungua Uboreshaji wa Starknet Bolt
2077 Research HackerNoon profile picture


Usasishaji wa hivi punde zaidi wa Starknet (v0.13.2) unaoitwa Bolt huleta mabadiliko mawili makubwa: utekelezaji sambamba na block-packing . Ingawa hazitegemei, vipengele vyote viwili vinaunga mkono msukumo kuelekea lengo la nafasi ya uzuiaji ya haraka na nafuu inayolindwa kwa njia fiche na Ethereum.


Utekelezaji sawia huruhusu miamala isiyo na ubishi (yaani, miamala ambayo haigusi hali sawa) kutekeleza kwa wakati mmoja. Kwa kutekeleza utekelezaji sambamba, L2 kama Starknet zinaweza kupunguza muda wa utekelezaji bila kuongeza matumizi ya rasilimali. Hii inamaanisha ada ya malipo ya chini kwa watumiaji na kuboreshwa kwa nyakati za uthibitishaji wa miamala.


Ufungaji wa block huboresha matumizi ya Starknet ya blobspace kwenye Ethereum L1: kwa upakiaji wa block, vifuatavyo vinaweza kutoa uthibitisho mmoja ili kuthibitisha vitalu vingi vya Starknet L2 kwa wakati mmoja. Hii inapunguza utumiaji wa nafasi ya utiaji blobspace kutoka kwa marudio ya utengenezaji wa vitalu vya L2 na kupunguza gharama za uthibitishaji wa uthibitisho. Zote mbili zinapunguza gharama za uendeshaji kwa kifuatiliaji cha Starknet, ambayo ina maana kwamba watumiaji hulipa kidogo kwa kila muamala.


Kama tulivyosema, Bolt hufanya Starknet kuwa nafuu na haraka! Ripoti hii itatoa uchambuzi wa kina wa uboreshaji wa Bolt–ikilenga utekelezaji sambamba na ufungashaji wa kuzuia–na kuchunguza athari za utendakazi wa Starknet.

Kionyesha upya haraka kwenye rollups

Mizunguko ni masuluhisho ya kuongeza safu ya safu ya pili (L2) ambayo yanalenga kuongeza safu ya kwanza (L1) blockchain kwa kusogeza hesabu nje ya mnyororo. Kwa kuhamisha utekelezaji nje ya msururu, uboreshaji unaweza kuboreshwa kwa uboreshaji (alama nafuu na za haraka), huku L1 ikitoa usalama kwa miamala ya L2.


Mipangilio mara nyingi husemwa "kurithi usalama kutoka kwa L1". Hii inamaanisha nini kimsingi ni kwamba wanarithi makubaliano na dhamana za upatikanaji wa data zinazotolewa na L1. Kwa kuongezea hii, L1 pia hutoa dhamana ya usalama kwa njia ya kuweka daraja kati yake na upangaji.


Wakati wafuataji wa kuchapisha vitalu vya L2 kwa L1, L1 hutoa uhakikisho wa upatikanaji na pia kuagiza habari hii. Kuanzia hapa, nodi za L2 zinaweza kukokotoa kwa uaminifu mnyororo wa kisheria wa L2 na habari hii pamoja na sheria za ujumuishaji karibu na utokaji wa mnyororo na mpito wa hali ulioelezewa na utekelezaji wa nodi.


Ili kuwezesha uwekaji daraja salama kati ya L1 na L2, L1 inahitaji uthibitisho kwamba msururu wa L2 unaofuata kwa sasa ni sahihi na haujumuishi mabadiliko ya hali haramu (km kutumia mara mbili). Hitaji hili la uwasilishaji ili kuthibitisha uhalali wa mabadiliko ya serikali, huhakikisha kwamba L1 haiidhinishi uondoaji kutoka kwa orodha kwa kuzingatia hali isiyo halali.


Mipangilio hutofautiana kulingana na jinsi inavyothibitisha uhalali wa mabadiliko ya serikali kwa L1:

  • Machapisho ya uhalali hutegemea uthibitisho wa uhalali ili kuthibitisha usahihi wa utekelezaji. Wanaopendekeza wanaruhusiwa kupendekeza hali mpya ya kuorodheshwa ikiwa watawasilisha uthibitisho wa uhalali kwa mkataba wa kutayarisha.
  • Uboreshaji wa matumaini hutegemea kukosekana kwa uthibitisho wa ulaghai ili kuthibitisha usahihi wa utekelezaji. Wapendekezaji huwasilisha masasisho ya hali bila uthibitisho, lakini mkataba wa kujumuisha unaweza kurejesha sasisho lolote la serikali ambalo uhalali wake umepingwa kwa uthibitisho wa ulaghai.


Rollups pia hutoa safu ya msingi na data ya kutosha kwa watu wanaovutiwa kuunda tena jimbo la L2. Ingawa uwasilishaji wa matumaini lazima uchapishe data kamili ya muamala ili kuwawezesha wapinzani kuhesabu uthibitisho wa ulaghai, uandikishaji wa uhalali hauna mahitaji kama hayo (uthibitisho wa uhalali huhakikisha utekelezaji sahihi). Lakini kuchapisha data kamili ya muamala kwenye L1 bado ni muhimu kutoka kwa mtazamo wa kupunguza uaminifu (uundaji upya wa serikali na uondoaji bila ruhusa).


Starknet ni mkusanyo wa uhalali unaotumia S calable, T Ransparent AR gument ya K ujuzi (STARKs) ili kuthibitisha uhalali wa mabadiliko ya hali. Uboreshaji wa hivi punde hadi Starknet-iliyopewa jina Bolt-inaongeza utekelezaji sambamba na upakiaji wa vizuizi. Katika sehemu zinazofuata, tutaeleza jinsi vipengele viwili vinavyofanya kazi na ni maboresho gani yanaleta kwa watumiaji wa Starknet.

Je, uboreshaji wa Starknet Bolt ulibadilika nini?

Katika kiwango cha juu, uboreshaji wa Bolt ulibadilisha utekelezaji, uthibitisho na mifumo ya upatikanaji wa data ya Starknet.

Kuboresha utekelezaji

Kabla ya uboreshaji wa Bolt, miamala ya Starknet ilitekelezwa kwa kufuatana-mmoja baada ya mwingine-na mfuatano. Utekelezaji wa mfululizo ni rahisi lakini pia haufanyi kazi vizuri. Haifai kwa sababu haichukui faida ya vitengo vingi vya uchakataji huru ambavyo kompyuta za kisasa hutoa na usambamba wa seti ya miamala.


Utekelezaji wa Mfuatano


Utekelezaji sambamba

Usambamba ni kipimo cha jinsi miamala katika seti fulani inavyojitegemea. Kwa mfano, fikiria seti ya shughuli tatu hapa chini:

  • Shughuli ya 1: Alice anataka kumtumia Bob 1 STRK

  • Shughuli ya 2: Caitlyn anataka kumtumia Danny 100 ETH

  • Muamala wa 3: Caitlyn anataka kumtumia Ella 100 ETH


Muamala wa 1 hautegemei kabisa shughuli za 2 na 3–kwa sababu unafikia sehemu tofauti ya jimbo (salio la Alice)–na unaweza kutekelezwa kwa wakati mmoja. Hata hivyo, muamala wa 2 na 3 unakinzana kwa sababu wanataka kufikia hali sawa—salio la ETH la Caitlyn. Shughuli hizi haziwezi kutekelezwa kwa wakati mmoja au tutaishia na matokeo yanayokinzana.


Kwa mfano:

  • Sema salio la Caitlyn ni 300 ETH na miamala ya 2 na 3 huanza kwa wakati mmoja. Shughuli zote mbili zitasoma salio la awali la akaunti ya Caitlyn kama 300 ETH, kutoa kiasi cha uhamisho kutoka kwayo (300 - 100 = 200), na kuandika ETH 200 hadi mahali kwenye kumbukumbu ambapo salio la akaunti ya Caitlyn limehifadhiwa.
  • Shughuli ya 2 na 3 itasoma salio la Danny na Ella mtawalia na kuongeza 100 ETH kwa salio la watumiaji wote wawili. Salio la Caitlyn lingepungua kwa 100 ETH, lakini ETH 200 itawekwa alama–na kwa ufanisi kuchapisha ETH 100 kutoka hewani.


Kuepuka aina hizi za mizozo (na asili changamano ya mbinu za kupunguza) ndiyo sababu Ethereum ilichagua utekelezaji wa mfululizo. Hata hivyo, ingawa utekelezaji mfuatano unapunguza ugumu na kuboresha usalama, husababisha utumizi usiofaa wa maunzi. Mbaya zaidi, mtindo wa muundo wa maunzi unaonyesha kuwa utekelezaji wa mpangilio utazidi kuwa duni katika miaka ijayo.


Mchoro wa 4 unaonyesha mwelekeo wa muundo wa maunzi katika miaka 50 iliyopita. Toleo husika? Utendaji wa nyuzi moja (miduara ya zambarau) umekuwa ukiongezeka tangu katikati ya miaka ya 2000 huku idadi ya mishororo ya kimantiki ikiongezeka kwa wakati mmoja. Tunaweza kufanya hitimisho mbili kulingana na data hii:

  • Wasanifu wa maunzi wanaongeza chip za kompyuta kwa kuongeza vitengo huru zaidi vya uchakataji badala ya kuboresha utendakazi wa kitengo kimoja.

  • Mfumo wowote unaoendelea kutegemea utendakazi ulioongezeka wa kitengo kimoja cha uchakataji utapata shida katika faida za utendakazi hata kwenye maunzi mapya zaidi.


Kielelezo 4: Mitindo ya Microprocessor


Katika miaka ya hivi karibuni, algoriti za kisasa za kudhibiti mizozo ya ununuzi na kuhakikisha usahihi wa utekelezaji sambamba zimeonekana. Block-STM (kulingana na karatasi ya Fikunmi et al*) ni mojawapo ya kanuni hizo na ni sehemu ya msingi ya injini mpya ya utekelezaji sambamba ya Starknet. Tunachambua algoriti ya Block-STM katika sehemu za baadaye.

Kuboresha uthibitisho na upatikanaji wa data

SHARP ya Starknet (kifupi kwa Shared Prover) imechukua fursa ya uthibitisho unaojirudia ili kupunguza gharama za uthibitishaji kadiri inavyowezekana. Uthibitisho unaorudiwa kimsingi ni "uthibitisho wa uthibitisho" ambapo uthibitisho mmoja huthibitisha kuwa uthibitisho mmoja au zaidi ni sahihi. Chini ni mchoro wa jinsi SHARP hutoa uthibitisho unaojirudia:

  • Mfumo wa SHARP huchukua seti ya programu kutekelezwa ("kazi") kama pembejeo na hutoa uthibitisho wa utekelezaji wa kazi hiyo. "Programu" hizi ni vizuizi vya L2 na uthibitisho unathibitisha usahihi wa shughuli.

  • Uthibitisho hutumwa kwa programu nyingine inayothibitisha uthibitisho na kubadilisha programu ya uthibitishaji kuwa kazi. SHARP huchukua kazi mpya kama ingizo na kutoa uthibitisho mwingine (uthibitisho huu unathibitisha uhalali wa uthibitisho wa awali).

  • Mchakato (uthibitisho → kazi → uthibitisho) huanza tena na kuendelea hadi lengo lifikiwe ambapo uthibitisho wa mwisho (ambao sasa ni toleo lililobanwa sana la uthibitisho wa asili) hutumwa kwa L1.


Kielelezo cha 5: Uzalishaji wa uthibitisho unaorudiwa


Ubunifu huu unapunguza sana gharama kwa sababu kuu mbili:

  • Ajira zinazofuata* si programu au miamala ya mtu binafsi na gharama za kuthibitisha hukua chini ya mstari. Hii inamaanisha kadiri idadi ya programu/amala ndani ya kazi inavyoongezeka, ndivyo akiba inavyoongezeka. Kwa kuunda uthibitisho kwa kila block badala ya kwa kila ununuzi, ada za ununuzi zinaweza kuwa nafuu zaidi.
  • Urejeshaji hubana sana uthibitisho unaosababisha "uthibitisho wa uthibitisho" ambao ni nafuu sana kuthibitisha kwenye L1 kuliko uthibitisho wa awali au uthibitisho wowote wa kati.


Ingawa mfumo wa uthibitishaji ulikuwa mzuri, kulikuwa na nafasi zilizopotea za kuokoa gharama zaidi. Kwa mfano, kila kazi ilikuwa block moja ya Starknet na kila moja ya vizuizi hivi iliundwa kuchukua blob moja kwenye L1. Hii ilisababisha upungufu fulani kama ilivyoelezwa hapa chini:

  • Kabla ya Bolt, Starknet ilifanya (na bado haina) haina muda wa kuzuia mara kwa mara; badala yake kizuizi cha L2 kilichapishwa kwa L1 chini ya masharti mawili: (1) Data ya thamani ya blob moja ilitekelezwa (2) Dakika sita zilikuwa zimepita kutoka kwa kizuizi kilichotangulia. Kwa bahati mbaya, kutokana na mahitaji, vitalu vingi vilitumwa kwa L1 kwa sababu ya kikomo cha dakika sita (sio mipaka ya DA).
  • Ya hapo juu yalimaanisha kuwa matone (sio vizuizi) mara nyingi (kwa ukali) yalitumiwa chini, na kusababisha gharama kubwa ya gesi. Vitalu vya Starknet pia vilikuwa na gharama isiyobadilika , ambayo inaweza kupunguzwa kinadharia kwa kutumia mbinu zile zile za urejeshaji zilizojadiliwa hapo juu ili kutoa uthibitisho wa vizuizi vingi.


Ufungashaji wa kuzuia hutatua shida hizi kwa kutumia mti wa binary wa uthibitisho unaojirudia. Tunajadili ufungashaji wa kuzuia katika sehemu ya baadaye ya kifungu.

Bolt Sehemu ya 1: Utekelezaji Sambamba

Kama ilivyojadiliwa hapo awali, utekelezaji wa mfuatano haufai (na hautakuwa na ufanisi zaidi kadiri muda unavyosonga) na utekelezaji wa upuuzi sambamba hutoa matokeo batili. Injini za utekelezaji sambamba za uzalishaji hutunza kuzuia matokeo yasiyolingana, hata hivyo.


Kuna mbinu mbili za kukabiliana na utekelezaji sawia: Udhibiti wa Sarafu wa Tamaa (PCC) na Udhibiti wa Upatanishi wa Matumaini (OCC) . PCC na OCC ni vitengo vya usindikaji wa miamala (TPUs). Ifuatayo ni ufafanuzi wa kitengo cha usindikaji wa miamala kutoka Block-STM dhidi ya SVM: Ulinganisho wa Injini Sambamba za Utekelezaji:


TPU kawaida huunganishwa na, lakini ni tofauti na Mashine ya Virtual (VM). VM za Blockchain kama vile EVM, SVM, na MoveVM ni VM za lugha za kiwango cha juu…TPU, ambayo kwa kawaida ndiyo mada inayovutia, hutumia VM. Ina jukumu la usimamizi wa bomba zima la utekelezaji wa shughuli, ikiwa ni pamoja na kuunda na kusimamia matukio ya VM.


Udhibiti wa upatanishi usio na matumaini umeundwa kwa kuzingatia dhana kwamba miamala mingi ndani ya seti ya miamala itakayotekelezwa itakinzana, yaani, itagusa hali sawa. TAKUKURU inazuia migogoro hii.


Ili kuzuia mizozo, PCC inahitaji muamala itangaze mapema ni sehemu gani za serikali itafikia wakati wa shughuli za kusoma/kuandika. Kitengo cha uchakataji wa muamala kinaweza kutumia maelezo haya kuratibu miamala kwa njia ambayo inahakikisha kwamba miamala inayokinzana inatekelezwa kwa kufuatana (badala ya kwa wakati mmoja). Baadhi ya TPU pia hutumia kufuli kutekeleza tabia hii (kufuli (aka, mutex) ni njia inayotumika kuzuia ufikiaji wa wakati mmoja wa eneo la kumbukumbu).


Hiyo ilisema, utekelezaji wa PCC unaleta mabadiliko fulani. Kwanza, hitaji la kutoa orodha za ufikiaji (ambazo hutambua nafasi ya kumbukumbu inayoguswa na muamala) hushusha hali ya utumiaji wa msanidi programu na kupunguza anuwai ya programu zinazowezekana. Pili, kuratibu miamala kunaweza kusababisha malipo yasiyo ya lazima–hasa wakati hakuna migongano.


Udhibiti wa upatanishi wenye matumaini umeundwa kwa dhana kwamba shughuli nyingi ndani ya seti fulani hazitakinzana, yaani hazitaandika kwa hali sawa. Kwa hivyo, OCC TPU hutekeleza seti ya miamala kwa kutumia nyenzo zote zinazopatikana na hujaribu tu kugundua migongano. Ikiwa mzozo utagunduliwa, shughuli ambazo mzozo hutekelezwa na kuthibitishwa tena hadi seti nzima ipite na inaweza kufanywa.


TPU za OCC haziingiliki kutokana na kuratibu, kwa hivyo huwa na utendaji bora kunapokuwa na migongano michache. Vitengo vya usindikaji wa miamala vinavyotokana na OCC pia vina uzoefu bora wa wasanidi programu na anuwai ya kesi za utumiaji kwa sababu utegemezi wa serikali hauhitaji kujulikana mapema.


Hata hivyo, wakati seti ya miamala ina utata mkubwa, OCC hufanya vibaya zaidi kuliko PCC. Tunashughulikia miundo ya TPU (kwa undani zaidi) na kulinganisha mbinu za OCC na PCC katika makala yetu kuhusu utekelezaji sambamba.


TPU mpya ya Starknet inatumia mbinu ya OCC. Hasa zaidi, ni utekelezaji wa algorithm ya Block-STM. Block-STM hutekeleza miamala kwa matumaini huku rasilimali zote zinazopatikana zikichukuliwa kuwa hakuna hata moja itakayopingana na inathibitisha baada ya utekelezaji kuwa hakuna miamala inayokinzana itakayotekelezwa kwa wakati mmoja. Kabla hatujaingia kwenye usanifu mpya wa Starknet, ni muhimu kupitia baadhi ya ufafanuzi muhimu:

  1. Jimbo : Hali ni hali ya kitu kwa wakati fulani. Katika muktadha wa blockchain kawaida hurejelea thamani ya sehemu ya kumbukumbu, kwa mfano, usawa wa anwani ni (sehemu ya) hali yake.
  2. Utekelezaji Sambamba : Utekelezaji sawia unasemekana kuwa ulihifadhi mali ya upatanisho ikiwa kutekeleza seti ya miamala mfululizo na kwa wakati mmoja kutoa matokeo sawa.
  3. Migogoro : Miamala miwili inasemekana kukinzana iwapo tu angalau mmoja wao anataka kuandikia sehemu ya jimbo ambayo wote wanataka kufikia (inaweza kusomeka au kuandika). Ikiwa miamala yote miwili inasomwa tu kutoka kwa sehemu ya jimbo, basi hakuna mgongano lakini ikiwa angalau mmoja wao anaandikia sehemu hiyo ya serikali, basi shughuli hizo haziwezi kutekelezwa kwa wakati mmoja bila kuvunja uthibitishaji. Tulishughulikia kisa cha mfano hapo juu katika mfano wa Caitlyn, Danny na Ella.
  4. Utegemezi : Muamala txj inasemekana inategemea (au utegemezi wa) muamala txi ikiwa na tu ikiwa miamala yote miwili itaandika mahali pa kumbukumbu sawa na txj inakuja baada ya txi katika upangaji wa mfululizo. Ikiwa txi ilikuja baada ya txj , txi ingetegemea txj .
  5. Muundo wa data wa matoleo mengi : Muundo wa data wa matoleo mengi ni ule ambapo toleo jipya la muundo wa data huundwa kwa kila uandishi wa muundo wa data. Badala ya kubadilisha thamani mahali pake, toleo jipya la uandishi mahususi la eneo litakalobadilishwa huundwa. Sehemu ya thamani ya miundo ya data ya matoleo mengi ni kwamba huruhusu usomaji unaofanana sana kutoka na kuandika kwa eneo moja katika kumbukumbu. Tutachunguza jinsi hii inavyofaa baadaye.

Kwa ufafanuzi nje ya njia tunaweza kuendelea na kufunika jinsi Block-STM inavyofanya kazi.

Jinsi Block-STM inavyofanya kazi

Ingizo la Block-STM ni foleni (orodha iliyoagizwa) ya miamala, orodha hii mara nyingi huitwa BLOCK. Orodha hii inaweza kuamuru kwa namna yoyote; sharti pekee ni kwamba kuna utaratibu uliofafanuliwa wazi. Kwa hivyo kutokana na seti ya miamala T iliyo na miamala {t0…tn} , miamala hupangwa hivi kwamba {t0 > t1 > t2 … > tn} (soma kama t0 ni ya kipaumbele cha juu kuliko t1 , t1 ni ya kipaumbele cha juu kuliko t2 nk. .)


Mwanzoni mwa mchakato wa utekelezaji, seti mbili zinaundwa—seti ya utekelezaji E, na seti ya uthibitishaji V. E hufuatilia miamala ambayo bado haijatekelezwa huku V ikifuatilia miamala ambayo imetekelezwa lakini bado haijathibitishwa. Kila shughuli pia inahusishwa na nambari ya kupata mwili n ili kufuatilia ni mara ngapi imetekelezwa (na kutekelezwa tena). Hali ya awali ya seti ni kwamba E ina shughuli zote na V haina kitu, yaani, E = {t0,1 > t1,1 > t2,1 > … > tn,1} na V = {} .


Kwa seti hizi za miamala zilizoagizwa, kila nyuzi inayotumika kwa mizunguko ya utekelezaji kupitia kitanzi cha hatua tatu:

  1. Angalia Imefanywa
  2. Tafuta Kazi Inayofuata
  3. Tekeleza Kazi

Angalia Imefanywa

Wakati wa hatua hii, nyuzi hukagua V na E. Ikiwa zote ni tupu na hakuna shughuli inayotekelezwa basi kundi la sasa la miamala limetekelezwa kikamilifu na matokeo yanaweza kuwekwa kwenye hifadhi.

Tafuta Jukumu linalofuata

Iwapo V au E ina miamala, Block-STM huchagua muamala wenye faharasa ya chini kabisa (sio nambari ya mwili) kutoka kwa seti zote mbili za miamala, yaani, ikiwa E ina {t1,3 , t3,1 and t5,2} na V inayo. {t0,1, t2,4, t4,3} , jukumu la uthibitishaji wa shughuli t0 litachaguliwa kama jukumu linalofuata.

Tekeleza Kazi

Mara tu kazi inayofuata imetambuliwa na kuchaguliwa, inafanywa. Mwishoni mwa hatua hii, algorithm inarudi nyuma hadi Angalia Imekamilika. Mchakato huu unaendelea hadi seti zote mbili za miamala zisiwe tupu.


Wacha tuangalie kile kinachotokea wakati wa utekelezaji na uthibitishaji:


Wakati wa utekelezaji wa shughuli, algorithm ya Block-STM inajaza seti mbili (kwa kila shughuli); seti ya kusoma ( Ri,n ) na seti ya kuandika ( Wn,i ). Seti iliyosomwa ina maeneo yote ya kumbukumbu ambayo shughuli ilisoma kutoka wakati wa utekelezaji wake wakati seti ya maandishi ina maeneo yote ya kumbukumbu ambayo iliandikia. Wakati wa utekelezaji, shughuli hutumia maandishi yao kwa muundo wa data wa matoleo mengi, lakini kusoma ni kidogo.


Katika Block-STM muamala unapotaka kusoma kutoka kwa muundo wa data, hukagua thamani iliyoandikwa na shughuli ya kipaumbele cha chini ambayo ina kipaumbele cha juu. Kwa mfano ikiwa tx1 , tx2 , na tx7 zote zimeandika kwa eneo la kumbukumbu na tx5 inataka kusoma kutoka eneo hili, inasoma toleo la muundo wa data unaolingana na tx2 .


Hii inafanywa ili kutekeleza utengamano; kwa kuwa tx5 inapaswa kutekelezwa baada ya tx2 na kabla ya tx7 , inapaswa kutumia maadili yaliyoandikwa na tx2 sio tx7 . Katika mfano huu, tx7 italazimika kutekelezwa tena kwa sababu inapaswa kuwa imesoma maadili yaliyoandikwa na tx5 , si tx2 au shughuli zozote za kipaumbele cha juu. Ikiwa muundo wa data wa toleo moja ulitumiwa, thamani iliyoandikwa na tx2 haitapatikana na mgongano hakika utatokea.


Kwa kazi ya uthibitishaji, seti ya kusoma ya muamala inalinganishwa na thamani za sasa katika maeneo ya kumbukumbu ambayo ilisoma kutoka wakati wa utekelezaji. Kwa mfano, ikiwa tx2 inasoma akaunti B wakati wa utekelezaji, wakati wa uthibitishaji, eneo la kumbukumbu la akaunti B linasomwa (tukizingatia ufafanuzi wa kusoma tulioanzisha mapema). Ikiwa thamani hizi mbili ni sawa basi inamaanisha kuwa hakuna shughuli ya kipaumbele cha juu (sema tx0 au tx1 ) imeandika kwa eneo hilo wakati wa utekelezaji wa tx2 . Hii inasababisha tx2 kualamishwa kama imethibitishwa lakini si salama kutekeleza.


Muamala hauchukuliwi kuwa salama kufanya kwa sababu muamala wa kipaumbele cha chini unaweza, kwa sababu kadhaa, kutekelezwa baada ya muamala kuthibitishwa. Katika mfano wetu unaoendesha ikiwa tx1 inagusa akaunti B na kuigusa tu baada ya, tx2 kupitisha uthibitisho basi tx2 inahitaji kutekelezwa tena.


Ili kutekeleza hili, wakati wowote muamala unakamilisha utekelezaji wa miamala yote ya kipaumbele cha chini ambayo ilikuwa imepitisha uthibitishaji inathibitishwa upya ili kuhakikisha kuwa haihitilafii na muamala. Kwa mfano, ikiwa tx1 , tx3 na tx4 zimeidhinishwa na tx2 inakamilisha utekelezaji, tx3 na tx4 lazima zihalalishwe ili kuhakikisha kuwa hazipingani na (na vitegemezi vya) tx2 .


Ikiwa muamala utashindwa uthibitisho, yaani, shughuli ya kipaumbele cha juu ambayo inaandika kwa hali sawa ilitekelezwa wakati huo huo nayo, basi inaandika kwamba shughuli iliyofanywa ni chafu (kwa sababu maadili sio sawa.) Lakini badala ya kufuta maadili haya kutoka kwa hifadhidata. kabisa, zimealamishwa ESTIMATE.


Alama ya ESTIMATE huambia usomaji wowote wa muamala kwamba eneo la kumbukumbu kwamba thamani huko si sahihi na miamala inasitisha utekelezaji wake. Hii inafanywa badala ya kufutwa kwa sababu utekelezaji upya wa ununuzi ambao umeshindwa uthibitisho unaweza kusababisha uandishi wa maeneo sawa ya kumbukumbu kama utekelezaji uliopita.


Kwa kuashiria eneo la kumbukumbu kama makadirio badala ya kuifuta, utegemezi (wa ununuzi ambao haukuthibitishwa) unaweza kukamatwa hata kabla ya kutekeleza tena, kuzuia utekelezaji tena usio wa lazima. Heuristic hii inapunguza sana kazi iliyopotea.

Kuweka yote pamoja

Muhtasari kamili wa jinsi Block-STM inakaribia ulinganifu inaweza kufupishwa kama:

  • BLOCK cha miamala kinaanza kama orodha iliyoagizwa na utaratibu uliobainishwa wazi. Shughuli hizi zinatekelezwa kwa rasilimali zote zilizopo kwa mpangilio wa kipaumbele.
  • Wakati wa utekelezaji, seti za kusoma na kuandika za miamala hufuatiliwa na usomaji na uandishi hufanywa kutoka/hadi muundo wa data wa matoleo mengi. Muamala unapomaliza kutekeleza, unathibitishwa ili kuhakikisha kuwa haukutekelezwa kwa wakati mmoja na miamala yoyote inayokinzana.
  • Ikiwa muamala utapitisha uthibitisho, basi huondolewa kutoka kwa E na V. Na wakati shughuli imeidhinishwa, shughuli zote za chini katika kipaumbele kuliko zile zilizopitishwa uthibitisho hupangwa upya kwa uthibitisho.
  • Ikiwa muamala utashindwa uthibitisho basi hupangwa upya kwa ajili ya kutekelezwa. Wakati seti nzima ya miamala imetekelezwa na kuthibitishwa basi BLOCK nzima ni salama kufanya na matokeo yanaweza kuandikwa kwa hifadhi ya kudumu.


Mfano umeonyeshwa hapa chini:


Kielelezo cha 6: Mfano wa Block-STM


Huo ni muhtasari wa jinsi Block-STM inavyofanya kazi, maelezo zaidi yanaweza kupatikana katika ripoti yetu hapa na karatasi asili ya Block-STM hapa .

Je, Block-STM inaboresha vipi utendaji wa Starknet?

Ili kukadiria umuhimu wa kuongeza Block-STM, tulifanya vigezo vichache ili kutathmini uboreshaji wa utendakazi inayotoa juu ya utekelezaji mfuatano na matokeo yanaonyeshwa hapa chini.


Kielelezo cha 7: Utendaji wa kuzuia-STM kwa ukubwa wa 1k


Kielelezo cha 8: Utendaji wa Block-STM kwa ukubwa wa 10k blocksize


Matokeo yanaonyesha kuwa kadiri idadi ya nyuzi (zinazofanana na vitengo huru vya uchakataji) inavyoongezeka, utendakazi pia huongezeka. Maboresho yanaonekana zaidi huku vizuizi vikubwa vikitoa uboreshaji wa juu wa 9X juu ya utekelezaji mfuatano kwa nyuzi 16 pekee. Tuligundua kuwa matokeo yanajulikana zaidi na vizuizi vikubwa.


Majaribio yetu yanaonyesha kuwa utendakazi wa Block-STM hushuka kwa kiasi kikubwa chini ya mzigo wenye utata lakini mazoezi ya kiwango cha sekta ni kurudi kwenye utekelezaji mfuatano katika vipindi kama hivyo. Tunapendekeza fundi sawa kwa Starknet ili kuhifadhi utendakazi chini ya mzigo wa kazi wenye utata. Lakini, kwa kiasi kikubwa, kuongezwa kwa Block-STM kutaboresha kwa kiasi kikubwa na Starknet ya baadaye.


Mabadiliko makubwa ya pili yaliyounganishwa katika toleo jipya la v0.13.2 ni upakiaji wa vizuizi na tutashughulikia hilo linalofuata.

Bolt Sehemu ya 2: Block Ufungashaji

Kama ilivyojadiliwa hapo awali, kabla ya Bolt, kila block ya Starknet ilikuwa kazi yake yenyewe na kusababisha gharama maalum ya kila block kwa kila block. Kwa kuongezea, mfumo uliundwa hivi kwamba kila kizuizi kilihitaji blob yake bila kujali ni data ngapi ilitumiwa na kizuizi.


Katika ulimwengu ambao daima kulikuwa na mahitaji makubwa, hii haingekuwa tatizo, lakini Starknet kwa sasa inatoa blockspace zaidi kuliko mahitaji na hivyo kuna rasilimali nyingi zinazopotea ambazo zinaweza kusababisha mamia ya ETH kupotea katika kipindi cha mwezi. Ili kuweka zaidi katika muktadha ukali wa hali kabla ya Bolt, hizi ni gharama zinazohusiana na kutuma kizuizi kwa L1:


  1. Usajili wa gesi wa 23K kwa kila ukweli - sehemu ya Thibitisha Uthibitisho na Usajili
  2. Gesi 56K kwa kila rejista ukurasa wa kumbukumbu SHARP
  3. Gesi 136K kwa Usasishaji wa Jimbo
  4. gesi 50K kwa ajili ya mkusanyiko wa awali wa KZG ili sampuli ya blob,
  5. Gesi ya 86K ya kuendesha kipengele cha kusasisha hali.


Hii ni jumla ya gesi 215k kwa kila block na gharama hii ni tambarare, yaani, ni sawa bila kujali ni data ngapi kila block ina na inahusiana na idadi ya vitalu kwa $Cost = num blocks * 215000$. Suluhisho bora kwa tatizo hili litakuwa kwa gharama kuhusiana na kiasi cha data iliyotumwa badala ya kiasi cha vitalu. Na hivyo ndivyo upakiaji wa block hufaulu kupitia miti ya SNAR.

Majaribio ya SNAR

Miti ya Starknet Applicative Recursive (SNAR) ni aina mpya ya miti ya jozi iliyoletwa katika Bolt kushughulikia matatizo yaliyoangaziwa hapo juu. Mti wa SNAR una muundo ufuatao: kila jani ni kizuizi cha Starknet na nodi katika viwango vingine vyote ni uthibitisho unaojirudia wa watoto wao. Nodi ya mizizi ambayo ni uthibitisho unaojirudia wa uthibitisho mwingine wote ni kazi ya mwisho ambayo inatumwa kwa SHARd Prover (SHARP).


Kielelezo cha 9: Mti wa SNAR


Kielelezo cha 10: Mtiririko wa upakiaji wa Mti wa SNAR katika Block

Je, Mti wa SNAR hufanya nini?

Faida kuu ya Mti wa SNAR ni kwamba badala ya kuchapisha kizuizi kimoja kwa kila uthibitisho, vitalu vingi vya Starknet vinaweza kulipwa katika sasisho sawa la L1. Mizizi ya miti ya SNAR sasa imetumwa kwa L1 wakati mmoja tu wa vikomo viwili vinavyoweza kusanidiwa vimefikiwa: ama kikomo cha DA (data yenye thamani ya blobs 6) au baada ya idadi fulani ya majani kuongezwa kwenye mti (ambapo jani ni kizuizi) .


Muundo huu unapunguza gharama ya miamala kutoka kwa idadi ya vitalu. Sasa, bado kuna gharama fulani maalum kwa kila block inayotokana na kuendesha StarkNet OS (SNOS) katika kila block–lakini kwa kiasi kikubwa gharama hupunguzwa. Hizi ndizo nambari sasa:


  1. Usajili wa kumbukumbu SHARP kwa kila kazi: gesi ya 23K, (sawa na hapo awali)
  2. Ukurasa wa kumbukumbu SHARP kwa kila kazi: gesi 36K (imepunguzwa kutoka 56K shukrani kwa uboreshaji wa SHARP),
  3. Tangaza sasisho kwa kila kazi sawa na:
  4. 86K gesi (sawa na hapo awali) +
  5. gesi 50K × idadi ya blob kutumika. (Wakati blob moja ilitumiwa kwa kila block hii ilikuwa 50K x 1 na kusababisha nambari ya gesi 136K iliyonukuliwa hapo juu).


Kiwanja katika Mchoro 11 hapa chini kinaonyesha jinsi gharama za gesi zinavyotofautiana na nambari ya block katika muundo wa awali na sasa (chini ya Bolt):


Kielelezo cha 11: Gharama za Uthibitishaji na upakiaji bila kizuizi


Ni dhahiri kuwa ufungashaji wa block hupunguza sana gharama za uthibitishaji kwenye L1 ambayo bila shaka itasababisha bei ya chini ya gesi kwa watumiaji wa Starknet.

Hitimisho

Athari za mabadiliko yaliyofanywa katika Bolt: utekelezaji sawia wenye matumaini kupitia Block-STM na ufungashaji zuia kupitia SNAR inayomilikiwa inaweza kufupishwa kama: haraka na kwa bei nafuu.


Utekelezaji sambamba hupunguza muda wa utekelezaji na kwa kuongeza msongamano ambao utapunguza ada za gesi wakati wa msongamano mkubwa wa magari, huku miti ya SNAR ikikabiliana na DA inayohusika na kuthibitisha gharama. Inafurahisha, uboreshaji huu unaifanya Starknet kuwa L2 ya kwanza na utekelezaji sambamba na kuiweka kuwa mshindani mkuu katika nafasi ya L2. Ni muhimu kutambua kwamba hakuna uwezekano kwamba athari ya mabadiliko haya itaonekana mara moja, hasa ile ya utekelezaji sambamba, lakini ni muhimu kwa uthibitisho wa baadaye wa Starknet na mfumo mzima wa ikolojia wa Ethereum kwa ujumla.


Ujumbe wa mwandishi: Toleo la makala haya lilichapishwa hapa awali.