Сначала я предположил, что газ в Dusk’s Rusk VM в основном служит защитой от того, что контракты потребляют слишком много вычислений. Но чем больше я присматривался, тем больше моё внимание привлекала граница бухгалтерского учёта. У каждой функции VM есть своя цена в газе, тогда как у транзакций есть собственные лимиты по газу, и блоки тоже работают в рамках лимита по газу. Меня зацепило то, что вычисления, таким образом, ограничиваются на нескольких уровнях, а не только внутри одного вызова контракта. Транзакция должна укладываться в собственный бюджет, но при этом она становится частью более крупного, блочного ограничения на ресурс. Это создаёт небольшую зависимость, которую я раньше по-настоящему не учитывал: локальные лимиты выполнения всё равно должны помещаться в общую пропускную способность. Транзакция может быть валидной в пределах своего собственного лимита, но при этом всё равно вносить вклад в конечные вычисления, доступные блоку в целом. Возможно, это просто цена за то, чтобы поддерживать общие вычисления в рамках ограничений. Так что более тихий вопрос в том, как нужно калибровать эти локальные лимиты, когда каждая транзакция в конечном счёте делит один и тот же блок?
#dusk $DUSK @Dusk
#dusk $DUSK @Dusk
