Система вознаграждений AERGO Fee 2.0

5 декабря 2019 на официальной странице Проекта Aergo в Medium появилась новая статья Jae Nam.

Статья посвящена Новой системе Оплаты Fee 2.0. Приводим перевод этой статьи на русский язык.

Мы успешно внедрили улучшенный алгоритм оплаты услуг в сети Aergo Mainnet. Предыдущий алгоритм был более простым методом, в котором дополнительные сборы взимались на основе размера полезной нагрузки и размера использования состояния до 0,002 AERGO в качестве комиссионных за транзакции. Однако это неверное измерение, поскольку не учитывались такие переменные, как время вычислений или объем памяти. Новый алгоритм учитывает использование ЦП и памяти, использованные в контракте. Это значительное обновление для Aergo Mainnet.
Для этого была введена система газа. Чтобы измерить время вычислений для каждой транзакции, выделяется инструкция Bytecode и количество газа, потребляемого на встроенную функцию. Память, используемая виртуальной машиной, и размер обновления состояния также измеряются в газе. Общее количество измеренного газа — это числовое значение, соответствующее расчету, а не плата. Для расчета платы мы используем концепцию цены на газ. Цена на газ — это значение AER, соответствующее 1 газу.
Это простая разбивка задействованных единиц, сравнивая их с ETH (обратите внимание, что цена в данном примере незначительна, она предназначена для демонстрации единиц и сходств)
1 ETH = 1 AERGO
1 GWEI = 1 GAER
1 WEI = 1 AER

Ключевые примечания

  • Все транзакции в блоке имеют одинаковую цену на газ и не определяются пользователем.
  • Цена на газ также не является фиксированной и может быть изменена DAO.
  • Регулируя цену на газ, можно стабилизировать контрактную экосистему на фоне быстрых изменений рыночной стоимости AERGO. Это является причиной использования цены на газ без конвертации газа в плату.

Лимит газа

Лимит газа позволяет пользователю указать максимальное количество газа, которое будет использоваться для сделок и контрактов. С этой целью новая версия инструмента и клиентской библиотеки поддерживает параметр ограничения газа. Для совместимости с предыдущей версией, в которой не было указано ограничение по газу, ограничение по газу 0 автоматически используется в качестве максимального ограничения по газу, которое вы можете указать. Контракт не будет продолжать выполнять достаточно расчетов, чтобы исчерпать весь ваш баланс, но пользователь должен быть осторожен с этим.
Даже если пользователь знает Bytecode инструкцию и количество газа в базовой функции (таблица газа будет указана в разделе «Плата» документа 2.0), определить точный предел газа непросто. Хотя путь выполнения контракта можно понять в инструкциях Bytecode, для пользователя в конечном итоге невозможно предсказать объем памяти, используемый виртуальной машиной для call stack и объектов, используемых виртуальной машиной. Лучший способ оценить газовый лимит, используемый в контракте, — это фактически использовать его.
Самый простой способ симулировать это использовать brick. Вы можете использовать brick для развертывания и выполнения контрактов без запуска блокчейна. Кроме того, вы можете проверить результаты, использование газа и т.д. Он также имеет функции для отладки контракта.

Делегированный сбор / Delegated Fee

Так как Fee 2.0 (Система Оплаты 2.0) установлена, исполнять контракт будет дороже. Поскольку плата за заключение договора может быть бременем для пользователя dapp, для активации dapp был добавлен новый тип транзакции. Поставщик оплачивает комиссию, вычитая из контракта комиссию, использованную для исполнения контракта.
Если все пользователи отправят этот тип транзакции, поставщик также будет обременен. Таким образом, указана функция для проверки доступных пользователей, чтобы пользователь мог устанавливать ограничения, определяя функцию в договоре в соответствии с намерением поставщика.
Мы надеемся, что это дает лучшую картину того, что такое Fee 2.0, как она работает, ограничения по газу и делегированная плата.

Опубликовано

в

от

Метки:

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *