Проваленная транзакция Dusk всё равно может стоить вам DUSK.
Откат не стирает счет.
Я предположил, что если транзакция заканчивает газ и откатывается, то провалившееся выполнение по сути не оставляет ничего после себя.
Dusk разделяет эти два исхода.
Вы задаете `gas_limit` и `gas_price`, но фактическая комиссия рассчитывается как `gas_used * gas_price`. Если выполнение заканчивает газ, транзакция откатывается, но уже потребленный газ всё равно оплачивается.
Возьмем построенный пример: вызов имеет лимит газа 50 000 и цену газа 2 LUX. Если он сжигает все 50 000 газа до того, как закончится газ, проваленная транзакция всё равно стоит 100 000 LUX, или 0.0001 DUSK.
Изменения состояния исчезают.
Комиссия — нет.
Вот та часть, которой я не ожидал.
Один механизм защищает реестр от фиксации выполнения, которое так и не завершилось. А второй всё равно выставляет счет за вычисления, которые сеть уже выполнила. Оба действуют на одну и ту же провалившуюся транзакцию, но не дают одинакового результата.
Так что «проваленная» не значит «бесплатная». Это означает, что изменение состояния исчезает, но счет за ресурсы может остаться.
Сколько из «безопасности транзакций» Dusk обеспечивается откатом незавершенного выполнения, и какая доля «дисциплины по ресурсам» — это выставление платы за работу, которая уже была выполнена?
@Dusk #dusk $DUSK
Откат не стирает счет.
Я предположил, что если транзакция заканчивает газ и откатывается, то провалившееся выполнение по сути не оставляет ничего после себя.
Dusk разделяет эти два исхода.
Вы задаете `gas_limit` и `gas_price`, но фактическая комиссия рассчитывается как `gas_used * gas_price`. Если выполнение заканчивает газ, транзакция откатывается, но уже потребленный газ всё равно оплачивается.
Возьмем построенный пример: вызов имеет лимит газа 50 000 и цену газа 2 LUX. Если он сжигает все 50 000 газа до того, как закончится газ, проваленная транзакция всё равно стоит 100 000 LUX, или 0.0001 DUSK.
Изменения состояния исчезают.
Комиссия — нет.
Вот та часть, которой я не ожидал.
Один механизм защищает реестр от фиксации выполнения, которое так и не завершилось. А второй всё равно выставляет счет за вычисления, которые сеть уже выполнила. Оба действуют на одну и ту же провалившуюся транзакцию, но не дают одинакового результата.
Так что «проваленная» не значит «бесплатная». Это означает, что изменение состояния исчезает, но счет за ресурсы может остаться.
Сколько из «безопасности транзакций» Dusk обеспечивается откатом незавершенного выполнения, и какая доля «дисциплины по ресурсам» — это выставление платы за работу, которая уже была выполнена?
@Dusk #dusk $DUSK
