Почти не проверил журнал изменений Dusk этим вечером, думал, что ничего нового не будет — ведь уже прошли большие анонсы. Но нет. В одном из обновлений релиза спрятано:
компонент под названием Crumbles, который тихо решает проблему, о которой я даже не знал, что она есть у Dusk.
Piecrust — это @Dusk Foundation WASM виртуальная машина, та самая вещь, которая реально выполняет смарт-контракты после их развертывания. Каждый вызов и деплой тарифицируется в газе — та же идея, что и в любой другой сети: если потратить слишком много вычислений и упереться в лимит, выполнение останавливается.
То, что меня зацепило, — что происходит после выполнения контракта: виртуальной машине нужно сделать снимок состояния, чтобы она могла чисто откатиться, если что-то пошло не так, а не просто заново полностью переисполнять всё с нуля, чтобы проверить. Crumbles отображает память WASM напрямую на виртуальное адресное пространство и отслеживает, какие страницы реально изменились — так называемые «dirty pages» — вместо того, чтобы каждый раз сравнивать/диффить всё состояние памяти целиком.
Похоже на сантехнику, о которой никто не должен заботиться. На самом деле это различие между тем, чтобы отказ контракта был дешёвым и быстрым, или дорогим и медленным, потому что повторное исполнение и полное диффирование стоят реальных вычислений — а значит, в итоге за это кто-то платит в газе.
И вот что я всё время замечаю: сколько инженерных усилий Dusk уходит в этот незаметный слой вместо более «громких» функций приватности, о которых все постоянно говорят.
$DUSK комиссии за газ и на DuskVM, и на DuskEVM в конечном итоге зависят от решений вроде этого. Инфраструктура такой глубины в стеке реально влияет на принятие, или она становится видимой только в тот момент, когда что-то ломается?#dusk $DUSK @Dusk
компонент под названием Crumbles, который тихо решает проблему, о которой я даже не знал, что она есть у Dusk.
Piecrust — это @Dusk Foundation WASM виртуальная машина, та самая вещь, которая реально выполняет смарт-контракты после их развертывания. Каждый вызов и деплой тарифицируется в газе — та же идея, что и в любой другой сети: если потратить слишком много вычислений и упереться в лимит, выполнение останавливается.
То, что меня зацепило, — что происходит после выполнения контракта: виртуальной машине нужно сделать снимок состояния, чтобы она могла чисто откатиться, если что-то пошло не так, а не просто заново полностью переисполнять всё с нуля, чтобы проверить. Crumbles отображает память WASM напрямую на виртуальное адресное пространство и отслеживает, какие страницы реально изменились — так называемые «dirty pages» — вместо того, чтобы каждый раз сравнивать/диффить всё состояние памяти целиком.
Похоже на сантехнику, о которой никто не должен заботиться. На самом деле это различие между тем, чтобы отказ контракта был дешёвым и быстрым, или дорогим и медленным, потому что повторное исполнение и полное диффирование стоят реальных вычислений — а значит, в итоге за это кто-то платит в газе.
И вот что я всё время замечаю: сколько инженерных усилий Dusk уходит в этот незаметный слой вместо более «громких» функций приватности, о которых все постоянно говорят.
$DUSK комиссии за газ и на DuskVM, и на DuskEVM в конечном итоге зависят от решений вроде этого. Инфраструктура такой глубины в стеке реально влияет на принятие, или она становится видимой только в тот момент, когда что-то ломается?#dusk $DUSK @Dusk
