#dusk $DUSK Men bu kunlarda Dusk’ning GitHub repozitoriyasini ko‘zdan kechirayotgandim va bitta hujjatda unchalik keng ochilmagan, lekin aslida juda muhim dizaynni topdim: Piecrust VM’ning xotira izolyatsiya modeli.
Ko‘pchilik aqlli kontrakt virtual mashinalari shared memory’dan foydalanadi: turli kontraktlar o‘rtasida ma’lumotlar message call orqali o‘zaro almashinadi. Afzalligi — moslashuvchanlik. Kamchiligi esa: bitta kontraktdagi bug boshqasining xotira makonini ham “ifloslantirishi” mumkin. Piecrust VM esa boshqa yo‘lni tanlagan — har bir kontrakt instansining o‘ziga xos, mustaqil linear xotira maydoni bor; kontraktlar bir-birining xotirasini bevosita o‘qib-yoza olmaydi, faqat aniq ABI interfeyslar orqali ketma-ketlashtirilgan (serialized) ma’lumotlarni uzatadi.
Bunday izolyatsiya darajasi, analogiya qilsak, EVM’ning shared state’iga emas, WebAssembly’ning sandbox’iga o‘xshaydi. Dusk maqsad qilgan normativ (compliance) moliya sohasida bu dizayn juda mos: qimmatli qog‘oz tokeni kontraktidagi bug yon tomondagi to‘lov kontraktining mijozlar balansini oshkor qilmaydi; audit paytida har bir kontraktni alohida-alohida mustaqil tekshirish mumkin, kontraktlar orasidagi yashirin ma’lumot oqimidan xavotir olmaslik kerak.
Yana bir e’tiborimni tortgan detali — Piecrust’da gas’ni hisoblash usuli. U EVM’ga o‘xshab har bir opcode bo‘yicha alohida hisoblanmaydi; wasm instruksiyalarining bajarilish qiymatiga (execution cost) ko‘ra vaznlab hisoblanadi. Qo‘shish-ayirish va ko‘paytirish-bo‘lishning gas qiymati bir xil emas, xotirani o‘qish/yozish va arifmetik amallar ham boshqa-boshqa. Bunday juda nozik hisob nazariy jihatdan ishlab chiquvchilarga yanada samaraliroq kontrakt yozishga imkon beradi — qaysi operatsiyalar qimmatligini bilgan holda ulardan ataylab qochish mumkin.
Albatta, bu gas taxminini (estimatsiya) yanada murakkablashtiradi. EVM’da gas estimatsiyasi toolchain’lar tomonidan yetarlicha pishitilgan va yetuk; Piecrust tomonda esa hali yetuk profiler yo‘q. Biroq yo‘nalish to‘g‘ri: yanada aniqroq hisob-kitob evaziga yanada samaraliroq bajarilishni olish. @Dusk
Ko‘pchilik aqlli kontrakt virtual mashinalari shared memory’dan foydalanadi: turli kontraktlar o‘rtasida ma’lumotlar message call orqali o‘zaro almashinadi. Afzalligi — moslashuvchanlik. Kamchiligi esa: bitta kontraktdagi bug boshqasining xotira makonini ham “ifloslantirishi” mumkin. Piecrust VM esa boshqa yo‘lni tanlagan — har bir kontrakt instansining o‘ziga xos, mustaqil linear xotira maydoni bor; kontraktlar bir-birining xotirasini bevosita o‘qib-yoza olmaydi, faqat aniq ABI interfeyslar orqali ketma-ketlashtirilgan (serialized) ma’lumotlarni uzatadi.
Bunday izolyatsiya darajasi, analogiya qilsak, EVM’ning shared state’iga emas, WebAssembly’ning sandbox’iga o‘xshaydi. Dusk maqsad qilgan normativ (compliance) moliya sohasida bu dizayn juda mos: qimmatli qog‘oz tokeni kontraktidagi bug yon tomondagi to‘lov kontraktining mijozlar balansini oshkor qilmaydi; audit paytida har bir kontraktni alohida-alohida mustaqil tekshirish mumkin, kontraktlar orasidagi yashirin ma’lumot oqimidan xavotir olmaslik kerak.
Yana bir e’tiborimni tortgan detali — Piecrust’da gas’ni hisoblash usuli. U EVM’ga o‘xshab har bir opcode bo‘yicha alohida hisoblanmaydi; wasm instruksiyalarining bajarilish qiymatiga (execution cost) ko‘ra vaznlab hisoblanadi. Qo‘shish-ayirish va ko‘paytirish-bo‘lishning gas qiymati bir xil emas, xotirani o‘qish/yozish va arifmetik amallar ham boshqa-boshqa. Bunday juda nozik hisob nazariy jihatdan ishlab chiquvchilarga yanada samaraliroq kontrakt yozishga imkon beradi — qaysi operatsiyalar qimmatligini bilgan holda ulardan ataylab qochish mumkin.
Albatta, bu gas taxminini (estimatsiya) yanada murakkablashtiradi. EVM’da gas estimatsiyasi toolchain’lar tomonidan yetarlicha pishitilgan va yetuk; Piecrust tomonda esa hali yetuk profiler yo‘q. Biroq yo‘nalish to‘g‘ri: yanada aniqroq hisob-kitob evaziga yanada samaraliroq bajarilishni olish. @Dusk