paint-brush
Starknet Bolt yangilanishini ochishtomonidan@2077research
Yangi tarix

Starknet Bolt yangilanishini ochish

tomonidan 2077 Research17m2024/12/26
Read on Terminal Reader

Juda uzoq; O'qish

Starknet Bolt yangilanishi ikkita asosiy xususiyatni taqdim etdi: parallel bajarish va blokning ishlashi. Ushbu maqolada ushbu yangi kiritilgan funksiya Starknet ish faoliyatini qanday yaxshilashi va Layer 2 (L2) foydalanuvchilari uchun tranzaksiya tajribasini qanday yaxshilashi muhokama qilinadi.
featured image - Starknet Bolt yangilanishini ochish
2077 Research HackerNoon profile picture


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.

To'plamlarda tez yangilash

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:

  • Yaroqlilik to'plami bajarilishning to'g'riligini ob'ektiv tekshirish uchun haqiqiylik dalillariga tayanadi. Taklifchilar, agar ular to'plash shartnomasiga haqiqiyligini tasdiqlovchi hujjat taqdim etsa, yangi yig'ish holatini taklif qilishlari mumkin.
  • Optimistik to'plamlar ijroning to'g'riligini sub'ektiv tekshirish uchun firibgarlik isboti yo'qligiga tayanadi. Taklifchilar shtat yangilanishlarini dalillarsiz taqdim etadilar, ammo toʻplash shartnomasi firibgarlik isboti bilan haqiqiyligi shubha ostiga olingan har qanday shtat yangilanishini orqaga qaytarishi mumkin.


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.

Starknet Bolt yangilanishi nimani o'zgartirdi?

Yuqori darajada, Bolt yangilanishi Starknet-ning bajarilishi, isbotlash va ma'lumotlar mavjudligi mexanizmlarini o'zgartirdi.

Amalga oshirishni optimallashtirish

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.


Ketma-ket bajarish


Parallel bajarish

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:

  • Aytaylik, Caitlynning balansi 300 ETH va 2 va 3 tranzaktsiyalari bir vaqtning o'zida boshlanadi. Ikkala tranzaksiya ham Keytlin hisobidagi dastlabki qoldiqni 300 ETH deb o‘qiydi, undan o‘tkazma summasini olib tashlaydi (300 - 100 = 200) va Keytlin hisobidagi balans saqlanadigan xotiraga 200 ETH yozadi.
  • Keyin 2 va 3 tranzaksiyalari Denni va Ellaning balanslarini o'qiydi va ikkala foydalanuvchining balansiga 100 ETH qo'shadi. Caitlyn balansi 100 ETH ga kamayadi, ammo 200 ETH hisobga olinadi - 100 ETHni havodan samarali bosib chiqarish.


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.


4-rasm: Mikroprotsessor tendentsiyalari


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.

Tasdiqlash va ma'lumotlar mavjudligini optimallashtirish

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.


5-rasm: Rekursiv isbot hosil qilish


Ushbu dizayn ikkita asosiy sababga ko'ra xarajatlarni sezilarli darajada amortizatsiya qiladi:

  • Keyingi ishlar* individual dasturlar yoki tranzaktsiyalar emas va tasdiqlovchi xarajatlar sub-chiziqli ravishda oshadi. Bu shuni anglatadiki, ish ichidagi dasturlar/operatsiyalar soni qancha ko'p bo'lsa, shuncha ko'p tejaladi. Har bir tranzaksiya o'rniga har bir blok uchun dalillarni yaratish orqali tranzaksiya to'lovlari ancha arzonlashishi mumkin.
  • Rekursiya dalillarni sezilarli darajada siqib chiqaradi, natijada "dalil isboti" paydo bo'ladi, uni L1 da tekshirish dastlabki isbot yoki har qanday oraliq dalillarga qaraganda ancha arzon.


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:

  • Boltdan oldin Starknet muntazam blokirovkalarga ega emas edi (va hozir ham mavjud emas); Buning o'rniga L2 bloki L1 uchun ikkita shartda nashr etildi: (1) bitta blob qiymatidagi ma'lumotlar bajarildi (2) Oldingi blokdan olti daqiqa o'tdi. Afsuski, talab tufayli bloklarning aksariyati olti daqiqa chegarasi (DA chegaralari emas) tufayli L1 ga yuborildi.
  • Yuqorida aytilganlar, bloblar (bloklar emas) ko'pincha (qattiq) to'liq ishlatilmaganligini anglatadi, bu esa gazning ortiqcha xarajatlariga olib keladi. Starknet bloklari, shuningdek, bir nechta bloklarni isbotlash uchun yuqorida muhokama qilingan bir xil rekursiya usullarini qo'llash orqali nazariy jihatdan kamaytirilishi mumkin bo'lgan qat'iy xarajatlarga ega edi.


Bloklarni qadoqlash bu muammolarni ikkilik rekursiv dalillar daraxti yordamida hal qiladi. Biz maqolaning keyingi qismida blokli qadoqlashni muhokama qilamiz.

Bolt 1-qism: Parallel bajarish

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:

  1. Holat : Holat - bu ob'ektning vaqtdagi bir misoldagi holati. Blokcheyn kontekstida odatda xotiraning bir qismi qiymatiga ishora qiladi, masalan, manzil balansi uning holati (bir qismi) hisoblanadi.
  2. Seriyalashtirish : Parallel bajarish ketma-ketlik xususiyatini saqlab qolgan deb aytiladi, agar tranzaktsiyalar to'plami ketma-ket va bir vaqtning o'zida bir xil natijalarga olib kelsa.
  3. Mojaro : Ikki tranzaktsiya, agar ulardan kamida bittasi ikkalasi ham kirishni xohlaydigan (o'qish yoki yozish mumkin) davlat qismiga yozishni xohlasagina ziddiyatli deb ataladi. Agar ikkala tranzaktsiya faqat davlatning bir qismidan o'qilsa, unda hech qanday ziddiyat bo'lmaydi, lekin ulardan kamida bittasi shtatning ushbu qismiga yozayotgan bo'lsa, tranzaktsiyalarni ketma-ketlashtirishni buzmasdan bir vaqtning o'zida amalga oshirib bo'lmaydi. Biz Keytlin, Denni va Ella misolida yuqoridagi misolni ko'rib chiqdik.
  4. Bog'liqlik : 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.
  5. Ko'p versiyali ma'lumotlar strukturasi : Ko'p versiyali ma'lumotlar strukturasi - bu ma'lumotlar strukturasiga har bir yozish uchun ma'lumotlar strukturasining yangi versiyasi yaratiladigan tuzilma. Joyidagi qiymatni o'zgartirish o'rniga, o'zgartiriladigan joyning yangi yozish uchun maxsus versiyasi yaratiladi. Ko'p versiyali ma'lumotlar tuzilmalarining qimmatli tomoni shundaki, ular xotirada bir xil hududdan yuqori darajada bir vaqtda o'qish va yozish imkonini beradi. Bu qanchalik foydali ekanligini keyinroq ko'rib chiqamiz.

Ta'riflar yo'q bo'lganda, biz Block-STM qanday ishlashini yoritishga o'tishimiz mumkin.

Block-STM qanday ishlaydi

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:

  1. Bajarildi
  2. Keyingi vazifani toping
  3. Vazifani bajarish

Bajarildi

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.

Keyingi vazifani toping

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.

Vazifani bajarish

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.

Hammasini bir joyga qo'yish

Block-STM parallellashtirishga qanday yondashishi haqida to'liq ma'lumotni quyidagicha umumlashtirish mumkin:

  • Tranzaktsiyalar BLOCK aniq belgilangan ketma-ket tartib bilan tartiblangan ro'yxat sifatida boshlanadi. Ushbu operatsiyalar barcha mavjud resurslar bo'yicha ustuvor tartibda amalga oshiriladi.
  • Amalga oshirish jarayonida tranzaktsiyalarning o'qish va yozish to'plamlari kuzatiladi va ko'p versiyali ma'lumotlar tuzilmasidan o'qish va yozish amalga oshiriladi. Tranzaktsiya bajarilishini tugatgandan so'ng, u har qanday ziddiyatli operatsiyalar bilan bir vaqtda bajarilmaganligiga ishonch hosil qilish uchun tasdiqlanadi.
  • Agar tranzaksiya validatsiyadan oʻtgan boʻlsa, u E va V dan oʻchiriladi. Tranzaksiya tasdiqlangach, validatsiyadan oʻtganidan ustunligi pastroq boʻlgan barcha tranzaktsiyalar tekshirish uchun qayta rejalashtiriladi.
  • Agar tranzaksiya tasdiqlanmasa, u amalga oshirish uchun qayta rejalashtirilgan. Agar tranzaktsiyalarning butun to'plami bajarilgan va tasdiqlangan bo'lsa, butun BLOKni bajarish xavfsiz bo'ladi va natijalar doimiy saqlashga yozilishi mumkin.


Misol quyida ko'rsatilgan:


6-rasm: Blok-STM misoli


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 qanday qilib Starknet ish faoliyatini yaxshilaydi?

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.


7-rasm: 1k blok o'lchamida Block-STM ishlashi


8-rasm: 10k blok o'lchamdagi Block-STM ishlashi


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.

Bolt 2-qism: Blok qadoqlash

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:


  1. Har bir faktni ro'yxatdan o'tkazish uchun 23K gaz - Verify Proof va Registerning bir qismi
  2. 56K gaz har bir registrga SHARP xotira sahifasi
  3. Davlat yangilanishi uchun 136K gaz
  4. Blobdan namuna olish uchun KZG prekompilyatsiyasi uchun 50K gaz,
  5. Davlat yangilash funksiyasini ishga tushirish uchun 86K gaz.


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.

SNAR harakat qiladi

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.


9-rasm: SNAR daraxti


10-rasm: Blokni qadoqlash ish jarayonidagi SNAR daraxti

SNAR daraxti nima qiladi?

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:


  1. Har bir ish uchun SHARP xotirasini ro'yxatdan o'tkazish: 23K gaz, (avvalgi kabi)
  2. Har bir ish uchun SHARP xotira sahifasi: 36K gaz (SHARP optimallashtirish tufayli 56K dan kamaydi),
  3. Har bir ish uchun davlat yangilanishi quyidagilarga teng:
  4. 86K gaz (avvalgi kabi) +
  5. 50K gaz × ishlatilgan blob soni. (Har bir blokda bitta blob ishlatilganda, bu 50K x 1 edi, natijada yuqorida keltirilgan 136K gaz raqami).


Quyidagi 11-rasmdagi diagrammada gaz narxi oldingi dizayndagi va hozir (Bolt ostida) blok raqamiga qarab qanday o'zgarishi ko'rsatilgan:


11-rasm: Bloksiz qadoqlashsiz tekshirish xarajatlari


Shubhasiz, blokli qadoqlash L1-da tekshirish xarajatlarini sezilarli darajada kamaytiradi, bu shubhasiz Starknet foydalanuvchilari uchun gaz narxining pasayishiga olib keladi.

Xulosa

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.

L O A D I N G
. . . comments & more!

About Author

2077 Research HackerNoon profile picture
2077 Research@2077research
Blockchain research 🔬 Deep dives and analyses surrounding the latest within Ethereum and the wider crypto landscape

TEGI QILISH

USHBU MAQOLA TAQDIM ETILGAN...