Starknet-ning Bolt nomli so'nggi yangilanishi (v0.13.2) ikkita asosiy o'zgarishlarni olib keladi: parallel bajarish va blokirovkalash . Bir-biridan mustaqil bo'lsa-da, ikkala xususiyat Ethereum tomonidan kriptografik himoyalangan tez, arzon bloklar maydoniga intilishni qo'llab-quvvatlaydi.
Parallel bajarish bir vaqtning o'zida bahsli bo'lmagan operatsiyalarni (ya'ni, bir xil holatga tegmaydigan operatsiyalarni) amalga oshirishga imkon beradi. Parallel bajarishni amalga oshirish orqali Starknet kabi L2lar resurslardan foydalanishni oshirmasdan bajarish vaqtini qisqartirishi mumkin. Bu foydalanuvchilar uchun tranzaksiya to‘lovlarining kamayishi va tranzaksiyani tasdiqlash vaqtlarining sezilarli darajada yaxshilanishini anglatadi.
Blok qadoqlash Starknet-ning Ethereum L1-da blobspace-dan foydalanishini optimallashtiradi: blokli qadoqlash bilan sekvenserlar bir vaqtning o'zida bir nechta Starknet L2 bloklarini tekshirish uchun bitta dalil yaratishi mumkin. Bu L2 bloklarini ishlab chiqarish chastotasidan blobspace foydalanishni ajratadi va isbotni tekshirish xarajatlarini amortizatsiya qiladi. Ikkalasi ham Starknet sequencer uchun operatsion xarajatlarni kamaytiradi, ya'ni foydalanuvchilar tranzaksiya uchun kamroq to'laydi.
Aytganimizdek, Bolt Starknet-ni arzonroq va tezroq qiladi! Ushbu hisobot Bolt yangilanishining batafsil tahlilini taqdim etadi - parallel bajarish va bloklarni o'rashga qaratilgan - va Starknet ishlashiga ta'sirini o'rganadi.
Rollups - bu ikkinchi qatlamli (L2) masshtablash yechimlari bo'lib, ular hisob-kitoblarni zanjirdan tashqariga siljitish orqali birinchi qatlam (L1) blokcheynini masshtablashni maqsad qiladi. Amalga oshirishni zanjirdan tashqariga ko'chirish orqali yig'ishlar kengaytirilishi (arzon va tezkor tranzaksiyalar) uchun optimallashtirishi mumkin, L1 esa L2 tranzaktsiyalari uchun xavfsizlikni ta'minlaydi.
To'plamlar ko'pincha "xavfsizlikni L1dan meros qilib oladi" deb aytiladi. Buning ma'nosi shundaki, ular L1 tomonidan taqdim etilgan konsensus va ma'lumotlar mavjudligi kafolatlarini meros qilib olishadi. Bunga qo'shimcha ravishda, L1 shuningdek, u va yig'ish o'rtasida xavfsiz ko'prik shaklida xavfsizlik kafolatini ham ta'minlaydi.
Sekvenserlar L2 bloklarini L1-ga nashr qilganda, L1 ushbu ma'lumotlarning mavjudligi va tartibini kafolatlaydi. Bu erdan, L2 tugunlari ushbu ma'lumotlar bilan kanonik L2 zanjirini ishonchli tarzda hisoblashi mumkin, shuningdek, zanjir hosil qilish va tugunni amalga oshirish bilan tavsiflangan holatga o'tish bo'yicha yig'ish qoidalari.
L1 va L2 o'rtasida xavfsiz ko'prikni osonlashtirish uchun L1 hozirda kuzatib boradigan L2 zanjiri to'g'ri ekanligini va noqonuniy holat o'zgarishlarini (masalan, ikki marta sarflash) o'z ichiga olmaganligini isbotlashni talab qiladi. Holat oʻzgarishlarining toʻgʻriligini isbotlash uchun toʻplamlarga boʻlgan ehtiyoj, L1 noqonuniy holatga asoslanib, toʻplamdan olib qoʻyishga ruxsat bermasligini taʼminlaydi.
To'plamlar L1 holatidagi o'zgarishlarning haqiqiyligini qanday isbotlashiga qarab farqlanadi:
Rollups shuningdek, asosiy qatlamni L2 holatini qayta qurish uchun manfaatdor tomonlar uchun etarli ma'lumot bilan ta'minlaydi. Optimistik toʻplamlar da'vogarlarga firibgarlik dalillarini hisoblash imkonini berish uchun toʻliq tranzaksiya maʼlumotlarini nashr etishi kerak boʻlsa-da, haqiqiylik toʻplamida bunday talablar yoʻq (haqiqiylik toʻplami toʻgʻri bajarilishini kafolatlaydi). Biroq, L1-da tranzaktsiyalarning to'liq ma'lumotlarini joylashtirish ishonchni minimallashtirish nuqtai nazaridan foydalidir (davlatni ishonchsiz qayta qurish va ruxsatsiz pul olish).
Starknet - bu holat o'zgarishlarining to'g'riligini isbotlash uchun K nowledge (STARKs) ning S calable, T ransparent AR gumentidan foydalanadigan haqiqiylik to'plami. Starknet-ning so'nggi yangilanishi - kodlangan Bolt - parallel bajarish va blokirovkalashni qo'shadi. Keyingi bo'limlarda biz ikkala xususiyat qanday ishlashini va ular Starknet foydalanuvchilari uchun qanday yaxshilanishlar olib kelishini tushuntiramiz.
Yuqori darajada, Bolt yangilanishi Starknet-ning bajarilishi, isbotlash va ma'lumotlar mavjudligi mexanizmlarini o'zgartirdi.
Bolt yangilanishidan oldin Starknet tranzaktsiyalari ketma-ketlik bilan ketma-ket bajarilgan. Ketma-ket bajarish oddiy, lekin ayni paytda juda samarasiz. Bu samarasiz, chunki u zamonaviy kompyuterlar taklif qiladigan bir nechta mustaqil ishlov berish birliklaridan va bir qator tranzaktsiyalarni parallel qilish imkoniyatidan foydalanmaydi.
Parallellik - ma'lum to'plamdagi operatsiyalar qanchalik mustaqilligini ko'rsatadigan o'lchovdir. Masalan, quyidagi uchta tranzaktsiyalar to'plamini ko'rib chiqing:
Tranzaksiya 1: Elis Bob 1 STRKni yubormoqchi
Tranzaksiya 2: Caitlyn Danny 100 ETH yubormoqchi
Tranzaksiya 3: Caitlyn Ella 100 ETH yubormoqchi
Tranzaksiya 1 2 va 3 tranzaksiyalardan butunlay mustaqildir – chunki u shtatning boshqa qismiga (Elis balansi) kirmoqda – va bir vaqtda bajarilishi mumkin. Biroq, 2 va 3 tranzaksiyalari ziddiyatli, chunki ular bir xil holatga - Caitlynning ETH balansiga kirishni xohlashadi. Bu tranzaksiyalarni bir vaqtda amalga oshirish mumkin emas, aks holda biz ziddiyatli natijalarga erishamiz.
Tasavvur qilish uchun:
Ushbu turdagi nizolarning oldini olish (va yumshatish mexanizmlarining murakkab tabiati) nima uchun Ethereum ketma-ket bajarishni tanladi. Biroq, ketma-ket bajarish murakkablikni kamaytiradi va xavfsizlikni yaxshilaydi, ammo bu apparat vositalaridan samarasiz foydalanishga olib keladi. Eng yomoni, apparat dizayni tendentsiyasi kelgusi yillarda ketma-ket bajarilishning samarasiz bo'lishini ko'rsatadi.
4-rasmda so'nggi 50 yil ichida apparat dizayni tendentsiyasi ko'rsatilgan. Tegishli olib ketishmi? Yagona ipli ishlash (binafsha doiralar) 2000-yillarning o'rtalaridan beri o'sib bormoqda, ayni paytda mantiqiy yadrolar soni ko'paygan. Ushbu ma'lumotlar asosida ikkita xulosa chiqarishimiz mumkin:
Uskuna dizaynerlari bitta blokning ishlashini yaxshilash o'rniga ko'proq mustaqil ishlov berish birliklarini qo'shish orqali kompyuter chiplarini kengaytirmoqda.
Bitta ishlov berish blokining samaradorligini oshirishga tayanishda davom etadigan har qanday tizim hatto yangi uskunada ham unumdorlikni oshirishda to'xtab qoladi.
So'nggi yillarda tranzaksiya ziddiyatlarini boshqarish va parallel bajarilishining to'g'riligini ta'minlash uchun murakkab algoritmlar paydo bo'ldi. Block-STM (Fikunmi va boshqalarning qog'ozi asosida*) shunday algoritmlardan biri bo'lib, Starknetning yangi parallel ijro mexanizmining asosiy qismini tashkil qiladi. Block-STM algoritmini keyingi bo'limlarda tahlil qilamiz.
Starknet's SHARP (Shard Proverning qisqartmasi) tekshirish xarajatlarini imkon qadar kamaytirish uchun har doim rekursiv dalillardan foydalangan. Rekursiv dalil mohiyatan "dalil isboti" bo'lib, unda bitta dalil bir yoki bir nechta dalillarning to'g'riligini tasdiqlaydi. Quyida SHARP rekursiv isbotni qanday yaratishi haqidagi eskiz keltirilgan:
SHARP tizimi kirish sifatida bajarilishi kerak bo'lgan dasturlar to'plamini ("ish") oladi va ish uchun bajarilish isbotini yaratadi. Ushbu "dasturlar" L2 bloklari bo'lib, tranzaktsiyalarning to'g'riligini tasdiqlaydi.
Dalil isbotni tekshiradigan va isbotni tekshirish dasturini ishga aylantiruvchi boshqa dasturga yuboriladi. SHARP yangi ishni kirish sifatida qabul qiladi va boshqa dalil yaratadi (bu dalil avvalgi dalilning haqiqiyligini tasdiqlaydi).
Jarayon (isbot → ish → isbot) qayta boshlanadi va maqsadga erishilgunga qadar davom etadi, shu nuqtada yakuniy dalil (hozirda bu asl isbotning yuqori darajada siqilgan versiyasi) L1-ga joylashtiriladi.
Ushbu dizayn ikkita asosiy sababga ko'ra xarajatlarni sezilarli darajada amortizatsiya qiladi:
Tasdiqlash tizimi yaxshi bo'lsa-da, xarajatlarni tejash uchun imkoniyatlar qo'ldan boy berildi. Misol uchun, har bir ish bitta Starknet bloki edi va bu bloklarning har biri L1 da bitta blobni egallash uchun mo'ljallangan. Bu quyida tavsiflangan ba'zi samarasizliklarga olib keldi:
Bloklarni qadoqlash bu muammolarni ikkilik rekursiv dalillar daraxti yordamida hal qiladi. Biz maqolaning keyingi qismida blokli qadoqlashni muhokama qilamiz.
Yuqorida aytib o'tilganidek, ketma-ket bajarish samarasiz (va vaqt o'tishi bilan samarasizroq bo'ladi) va sodda parallel bajarish noto'g'ri natijalarga olib keladi. Biroq, ishlab chiqarish parallel ijro dvigatellari nomuvofiq natijalarni oldini olish uchun g'amxo'rlik qiladi.
Parallel bajarish bilan kurashishning ikkita yondashuvi mavjud: pessimistik parallellik nazorati (PCC) va optimistik parallellik nazorati (OCC) . PCC va OCC tranzaksiyalarni qayta ishlash birliklari (TPU). Quyida Block-STM va SVM dan tranzaksiyani qayta ishlash birligining ta'rifi keltirilgan: Parallel bajaruvchi mexanizmlarni taqqoslash:
TPU odatda birlashtiriladi, lekin Virtual Mashinadan (VM) farq qiladi. EVM, SVM va MoveVM kabi blokcheyn VMlari yuqori darajadagi til VM laridir... Odatda qiziqish mavzusi bo'lgan TPU VMni o'z ichiga oladi. Unga tranzaktsiyalarni bajarishning butun liniyasini boshqarish, shu jumladan VM nusxalarini yaratish va boshqarish vazifasi yuklangan.
Pessimistik parallellik nazorati amalga oshirilishi kerak bo'lgan operatsiyalar to'plamidagi ko'plab operatsiyalar ziddiyatli bo'ladi, ya'ni ular bir xil holatga tegadi, degan taxminga asoslangan holda ishlab chiqilgan. PCC bu ziddiyatlarni oldini oladi .
Mojarolarni oldini olish uchun PCC tranzaksiya o'qish/yozish operatsiyalari davomida davlatning qaysi qismlariga kirishini oldindan e'lon qilishni talab qiladi. Tranzaktsiyalarni qayta ishlash bo'limi ushbu ma'lumotlardan tranzaktsiyalarni bir-biriga zid bo'lgan operatsiyalarni ketma-ket (bir vaqtning o'zida emas) bajarilishini ta'minlaydigan tarzda rejalashtirish uchun foydalanishi mumkin. Ba'zi TPU'lar ushbu xatti-harakatni amalga oshirish uchun qulflardan ham foydalanadi (qulf (aka, mutex) xotira joyiga bir vaqtda kirishni oldini olish uchun ishlatiladigan mexanizm).
Ya'ni, PCC-ga asoslangan ijro muayyan kelishuvlarga olib keladi. Birinchidan, kirish ro'yxatlarini taqdim etish talabi (ular tranzaktsiyaga tegadigan xotira uyasi identifikatsiyasi) ishlab chiquvchi tajribasini pasaytiradi va mumkin bo'lgan ilovalar doirasini kamaytiradi. Ikkinchidan, tranzaktsiyalarni rejalashtirish keraksiz qo'shimcha xarajatlarga olib kelishi mumkin, ayniqsa nizolar bo'lmasa.
Optimistik konkurentlik nazorati berilgan to‘plam doirasidagi ko‘pgina tranzaktsiyalar ziddiyatli bo‘lmaydi, ya’ni ular bir xil holatga yozilmaydi degan faraz bilan ishlab chiqilgan. Shunday qilib, OCC TPUlari barcha mavjud resurslar bilan tranzaktsiyalar to'plamini bajaradi va faqat ziddiyatlarni aniqlashga harakat qiladi. Agar ziddiyat aniqlansa, ziddiyatli operatsiyalar bajariladi va to'liq to'plam o'tib ketgunga qadar qayta tekshiriladi va amalga oshirilishi mumkin.
OCC TPU-lari rejalashtirishdan qo'shimcha xarajatlarni talab qilmaydi, shuning uchun ular bir nechta ziddiyatli vaziyatlarda yaxshiroq ishlaydi. OCC asosidagi tranzaksiyalarni qayta ishlash birliklari, shuningdek, ishlab chiquvchilarning yaxshi tajribasiga va kengroq foydalanish holatlariga ega, chunki davlatga bog'liqliklarni oldindan bilish shart emas.
Biroq, tranzaktsiyalar to'plami juda ziddiyatli bo'lsa, OCC PCC ga qaraganda yomonroq ishlaydi. Biz TPU dizaynlarini (batafsilroq) ko'rib chiqamiz va parallel bajarish haqidagi maqolamizda OCC va PCC yondashuvlarini solishtiramiz.
Starknet yangi TPU OCC yondashuvidan foydalanadi. Aniqroq aytganda, bu Block-STM algoritmining amalga oshirilishi. Block-STM tranzaktsiyalarni barcha mavjud resurslar bilan optimistik tarzda amalga oshiradi, chunki ularning hech biri ziddiyatli bo'lmaydi va amalga oshirilgandan so'ng bir vaqtning o'zida bir-biriga zid bo'lmagan operatsiyalar amalga oshirilmaganligini tekshiradi. Starknetning yangi arxitekturasi bilan tanishishdan oldin, ba'zi asosiy ta'riflarni ko'rib chiqish muhim:
txj
tranzaksiya txi
tranzaktsiyasiga bog'liq (yoki bog'liqligi) deyiladi, agar ikkala tranzaktsiya ham bir xil xotira joyiga yozilsa va txj
ketma-ket tartiblashda txi
keyin kelsa. Agar txi
txj
keyin kelgan bo'lsa, txi
txj
ga bog'liq bo'ladi.Ta'riflar yo'q bo'lganda, biz Block-STM qanday ishlashini yoritishga o'tishimiz mumkin.
Block-STM ga kirish tranzaktsiyalarning navbatidir (tartibli ro'yxat), bu ro'yxat ko'pincha BLOCK deb ataladi. Ushbu ro'yxatni har qanday usulda buyurtma qilish mumkin; yagona talab - aniq belgilangan tartib mavjud. Shunday qilib, {t0…tn}
tranzaktsiyalarini o'z ichiga olgan T tranzaktsiyalar to'plamini hisobga olgan holda, tranzaktsiyalar shunday tartiblanganki, ular {t0 > t1 > t2 … > tn}
( t0
t1
dan yuqori, t1
t2
dan yuqori ustuvorlik va h.k. .)
Bajarish jarayonining boshida ikkita to'plam yaratiladi - ijro to'plami E va tekshirish to'plami V. E hali bajarilishi kerak bo'lgan tranzaktsiyalarni kuzatib boradi, V esa bajarilgan, lekin hali tasdiqlanmagan tranzaktsiyalarni kuzatib boradi. Har bir tranzaksiya, shuningdek, necha marta bajarilganligini (va qayta bajarilganligini) kuzatish uchun n mujassamlash raqami bilan bog'lanadi. To'plamlarning boshlang'ich holati E barcha tranzaksiyalarni o'z ichiga oladi va V bo'sh, ya'ni E = {t0,1 > t1,1 > t2,1 > … > tn,1}
va V = {}
.
Ushbu tartiblangan tranzaktsiyalar to'plamlari bilan bajarish uchun ishlatiladigan har bir ip uch bosqichli tsikl orqali aylanadi:
Ushbu bosqichda ip V va E ni ham tekshiradi. Agar ikkalasi ham bo'sh bo'lsa va hech qanday tranzaksiya bajarilmasa, joriy tranzaktsiyalar to'plami to'liq bajarilgan va natijalarni saqlashga topshirish mumkin.
Agar V yoki E tranzaktsiyalarni o'z ichiga olsa, Block-STM ikkala tranzaktsiyalar to'plamidan eng past indeksli (mujassamlanish raqami emas) tranzaksiyani tanlaydi, ya'ni Eda {t1,3 , t3,1 and t5,2}
va V bo'lsa {t0,1, t2,4, t4,3}
, t0
tranzaktsiyasi uchun tekshirish vazifasi keyingi vazifa sifatida tanlanadi.
Keyingi vazifa aniqlangan va tanlanganidan keyin u bajariladi. Ushbu bosqichning oxirida algoritm Tekshirish Bajarildi ga qaytadi. Bu jarayon ikkala tranzaktsiyalar to'plami bo'sh qolguncha davom etadi.
Keling, bajarish va tekshirish paytida nima sodir bo'lishini ko'rib chiqaylik:
Tranzaktsiyani bajarish jarayonida Block-STM algoritmi ikkita to'plamni to'ldiradi (har bir tranzaksiya uchun); o'qish to'plami ( Ri,n
) va yozish to'plami ( Wn,i
). O'qish to'plamida tranzaktsiya bajarilishi davomida o'qilgan barcha xotira joylari, yozish to'plami esa u yozgan barcha xotira joylarini o'z ichiga oladi. Amalga oshirish jarayonida tranzaktsiyalar o'z yozuvlarini ko'p versiyali ma'lumotlar strukturasiga qo'llaydi, ammo o'qish biroz nuances.
Block-STM-da tranzaktsiya ma'lumotlar tuzilmasidan o'qishni xohlasa, u yuqori ustuvorlikka ega bo'lgan eng past ustuvor tranzaksiya tomonidan yozilgan qiymatni tekshiradi. Misol uchun, agar tx1
, tx2
va tx7
hammasi xotira joyiga yozilgan bo'lsa va tx5
bu joydan o'qishni xohlasa, u tx2
ga mos keladigan ma'lumotlar strukturasi versiyasini o'qiydi.
Bu serializatsiyani ta'minlash uchun amalga oshiriladi; tx5
tx2
keyin va tx7
oldin bajarilishi kerakligi sababli tx7
emas tx2
tomonidan yozilgan qiymatlardan foydalanishi kerak. Ushbu misolda tx7
qayta bajarilishi kerak, chunki u tx2
yoki boshqa ustuvor tranzaksiyalarni emas, tx5
tomonidan yozilgan qiymatlarni o'qishi kerak edi. Agar bitta versiyali ma'lumotlar strukturasi ishlatilsa, tx2
tomonidan yozilgan qiymat mavjud bo'lmaydi va ziddiyat yuzaga kelishi aniq.
Tekshirish topshirig'i uchun tranzaksiyaning o'qish to'plami bajarilish vaqtida o'qigan xotira joylaridagi joriy qiymatlar bilan taqqoslanadi. Misol uchun, agar tx2
bajarish paytida B hisobini o'qisa, tekshirish vaqtida B hisob qaydnomasi uchun xotira joylashuvi o'qiladi (biz avval o'rnatilgan o'qish ta'rifini yodda tutgan holda). Agar ikkita qiymat bir xil bo'lsa, demak, tx2
ning bajarilishi davomida hech qanday yuqoriroq tranzaksiya (aytaylik, tx0
yoki tx1
) o'sha joyga yozilmagan. Natijada tx2
tasdiqlangan, lekin bajarish xavfsiz emas deb belgilangan.
Tranzaktsiyani amalga oshirish xavfsiz deb hisoblanmaydi, chunki pastroq ustuvor tranzaktsiya har qanday sabablarga ko'ra tranzaksiya tasdiqlangandan keyin amalga oshirilishi mumkin. Ishlayotgan misolimizda, agar tx1
B hisobiga tegsa va faqat keyin tegsa, tx2
tekshiruvdan o'tadi, keyin tx2
qayta bajarilishi kerak.
Buni ta'minlash uchun tranzaksiya bajarilishini tugatgandan so'ng, tekshiruvdan o'tgan barcha pastroq ustuvor tranzaktsiyalar tranzaksiyaga zid kelmasligi uchun qayta tasdiqlanadi. Misol uchun, agar tx1
, tx3
va tx4
tasdiqlangan bo'lsa va tx2
bajarishni tugatsa, tx3
va tx4
tx2
ga zid bo'lmasligini ta'minlash uchun (va shunga o'xshash bog'liqliklar ham) qayta tekshirilishi kerak.
Agar tranzaksiya tekshiruvdan o'tmasa, ya'ni bir xil holatga yoziladigan yuqoriroq ustuvor tranzaksiya u bilan bir vaqtda bajarilgan bo'lsa, u holda tuzilgan tranzaksiya iflos deb yozadi (chunki qiymatlar noto'g'ri.) Lekin bu qiymatlarni ma'lumotlar bazasidan o'chirish o'rniga. butunlay, ular ESTIMATE deb belgilandi.
ESTIMATE bayrog'i ushbu xotira joyini o'qigan har qanday tranzaksiyaga u erdagi qiymatlar to'g'ri emasligini va tranzaktsiyalar ularning bajarilishini to'xtatib turishini bildiradi. Bu o'chirish o'rniga amalga oshiriladi, chunki tekshiruvdan o'tkazilmagan tranzaksiyani qayta bajarish, ehtimol, avvalgi bajarilish kabi bir xil xotira joylariga yozishga olib kelishi mumkin.
Xotira joylashuvini o'chirish o'rniga taxmin sifatida belgilash orqali, bog'liqliklarni (tekshirish muvaffaqiyatsiz tugatilgan tranzaksiyani) qayta bajarishdan oldin ham ushlash mumkin, bu esa keraksiz qayta bajarilishini oldini oladi. Bu evristik behuda ishni sezilarli darajada kamaytiradi.
Block-STM parallellashtirishga qanday yondashishi haqida to'liq ma'lumotni quyidagicha umumlashtirish mumkin:
BLOCK
aniq belgilangan ketma-ket tartib bilan tartiblangan ro'yxat sifatida boshlanadi. Ushbu operatsiyalar barcha mavjud resurslar bo'yicha ustuvor tartibda amalga oshiriladi.
Misol quyida ko'rsatilgan:
Bu Block-STM qanday ishlashi haqida umumiy ma'lumot, batafsil ma'lumotni bizning hisobotimizda va Block-STM asl qog'ozini bu erda topishingiz mumkin.
Block-STM-ni qo'shishning ahamiyatini aniqlash uchun biz ketma-ket bajarish bilan bog'liq ish faoliyatini yaxshilashni baholash uchun bir nechta mezonlarni o'tkazdik va natijalar quyida ko'rsatilgan.
Natijalar shuni ko'rsatadiki, ishlatiladigan iplar soni (mustaqil ishlov berish birliklariga o'xshash) ortib borishi bilan unumdorlik ham oshadi. Yaxshilanishlar atigi 16 ta ip bilan ketma-ket bajarilgandan ko'ra, unumdorlikni 9X marta oshirish imkonini beruvchi kattaroq bloklar bilan yanada aniqroq bo'ladi. Biz natijalar kattaroq bloklar bilan aniqroq ekanligini aniqladik.
Bizning sinovlarimiz shuni ko'rsatadiki, Block-STM ishlashi juda ziddiyatli yuk ostida sezilarli darajada yomonlashadi, ammo sanoat standarti amaliyoti bunday davrlarda ketma-ket bajarishga qaytishdir. O'ta bahsli ish yuklarida o'tkazuvchanlikni saqlab qolish uchun Starknet-ga xuddi shu mexanikni tavsiya qilamiz. Ammo, umuman olganda, Block-STM qo'shilishi Starknet-ni sezilarli darajada yaxshilaydi va kelajakka chidamli bo'ladi.
v0.13.2 yangilanishida to'plangan ikkinchi asosiy o'zgarish blokli qadoqlash bo'lib, biz buni keyingi ko'rib chiqamiz.
Yuqorida aytib o'tilganidek, Boltdan oldin har bir Starknet bloki o'z ishi bo'lib, natijada har bir blok uchun har bir blok uchun belgilangan narx belgilanadi. Bundan tashqari, tizim shunday ishlab chiqilganki, har bir blok blok tomonidan qancha ma'lumot iste'mol qilinganidan qat'i nazar, o'z blobini talab qiladi.
Har doim talab yuqori bo'lgan dunyoda bu muammo bo'lmaydi, ammo Starknet hozirda talabdan ko'ra ko'proq blok maydonini taklif qiladi va shuning uchun ko'plab isrof qilingan resurslar mavjud bo'lib, ular davomida yuzlab ETH yo'qolishi mumkin. bir oy. Bolt oldidagi vaziyatning og'irligini yanada chuqurroq tushuntirish uchun L1-ga blokni joylashtirish bilan bog'liq xarajatlar:
Bu har bir blok uchun jami 215 ming gazni tashkil etadi va bu xarajat bir xil, ya'ni har bir blokda qancha ma'lumot borligidan qat'i nazar, bir xil bo'ladi va bloklar soniga bog'liq bo'lgan $Cost = num blocks * 215000$. Ushbu muammoning ideal echimi xarajatlar bloklar miqdori o'rniga joylashtirilgan ma'lumotlar miqdori bilan bog'liq bo'lishi mumkin. SNAR daraxtlari orqali blokli qadoqlash aynan shu narsaga erishadi.
Starknet Applicative Recursive (SNAR) daraxtlari yuqorida ta'kidlangan muammolarni hal qilish uchun Boltda kiritilgan ikkilik daraxtning yangi turidir. SNAR daraxti quyidagi tuzilishga ega: har bir barg Starknet blokidir va boshqa barcha darajadagi tugunlar ularning farzandlarining rekursiv isbotidir. Boshqa barcha dalillarning rekursiv isboti bo'lgan ildiz tugun SHARed Prover (SHARP) ga yuboriladigan yakuniy ishdir.
SNAR daraxtining asosiy afzalligi shundaki, har bir isbot uchun bitta blokni joylashtirish o'rniga, ko'plab Starknet bloklari bir xil L1 yangilanishiga amortizatsiya qilinishi mumkin. SNAR daraxtining ildizlari endi ikkita sozlanishi mumkin bo'lgan chegaralardan biriga erishilganda L1-ga joylashtiriladi: yoki DA chegarasi (6 dona ma'lumot qiymati) yoki daraxtga ma'lum miqdordagi barglar qo'shilgandan keyin (barg blokdir) .
Ushbu dizayn tranzaktsiyalar uchun xarajatlarni bloklar sonidan ajratadi. Endi har bir blokda StarkNet OS (SNOS) ni ishga tushirishdan kelib chiqadigan har bir blok uchun ma'lum bir qat'iy xarajat mavjud - lekin umuman olganda, xarajatlar ajratiladi. Hozir bu raqamlar:
Quyidagi 11-rasmdagi diagrammada gaz narxi oldingi dizayndagi va hozir (Bolt ostida) blok raqamiga qarab qanday o'zgarishi ko'rsatilgan:
Shubhasiz, blokli qadoqlash L1-da tekshirish xarajatlarini sezilarli darajada kamaytiradi, bu shubhasiz Starknet foydalanuvchilari uchun gaz narxining pasayishiga olib keladi.
Boltga kiritilgan o'zgarishlarning ta'siri: Block-STM orqali optimistik parallel bajarish va xususiy SNAR orqali blokirovkalash: tezroq va arzonroq.
Parallel bajarish bajarish vaqtini qisqartiradi va tirbandlikni uzaytiradi, bu esa yuqori tirbandlik davrida gaz to'lovlarini kamaytiradi, SNAR daraxtlari esa tegishli DA va xarajatlarni isbotlaydi. Qizig'i shundaki, ushbu yangilanish Starknet-ni parallel bajariladigan birinchi L2 qiladi va uni L2 maydonida asosiy da'vogarga aylantiradi. Shuni ta'kidlash kerakki, ushbu o'zgarishlarning ta'siri darhol namoyon bo'lishi dargumon, ayniqsa parallel amalga oshirish, lekin ular Starknet va umuman butun Ethereum ekotizimini kelajakka ishonch bilan ta'minlash uchun juda muhimdir.
Muallifning eslatmasi: Ushbu maqolaning versiyasi ilgari bu erda nashr etilgan.