Рекомендуемый лимит газа для одной транзакции

Текущий лимит газа в основной сети на блок составляет 8 млн (7,99), у Ropsten — 9 млн (что на самом деле довольно удивительно, поскольку два месяца назад было 4,7 млн, и я жаловался на это...).

Учитывая вышеизложенное, каков рекомендуемый лимит газа для одной транзакции? Будет ли 6M слишком высокой и есть ли риск, что майнеры не выберут меня, если я стремлюсь к средней цене на газ? Как насчет 4,7М?

В конце концов, есть ли статистика по распределению газа, используемого транзакциями основной сети?

Редактировать: кажется, я недостаточно ясно выразился. Я имею в виду транзакцию из моей контрактной функции. Функция делает что-то итеративно, и мне решать, сколько итераций обрабатывать в рамках одной транзакции. Мой вопрос в основном заключается в попытке измерить максимальное количество газа, «безопасное» для использования по разумной цене на газ.

Ответы (2)

Лимит газа должен быть таким же высоким, как ваша транзакция, и не выше. Количество газа, потребляемого транзакцией, зависит от того, что она делает. (Имейте в виду, что если ваша транзакция приводит к возврату газа, например, из-за удаления данных хранилища, вам все равно нужно учитывать это в газе, который вы поставляете.)

Большинство майнеров будут заполнять блоки до предела, и вполне нормально установить лимит, который берет почти или весь газ, доступный в блоке, но, поскольку майнеры сначала берут транзакции с более высокими комиссиями, это увеличит уровень газа, который вам потребуется. установить, чтобы превзойти другие транзакции, которые могут поместиться в блоке. Таким образом, вам нужно будет компенсировать более высокий лимит газа, установив более высокую цену на газ. См. https://ethgasstation.info/ для получения конкретных данных о том, насколько высока цена на газ, которая вам может понадобиться для любого заданного лимита газа.

Если вы просто делаете простую отправку, просто используйте 21 000.

Оказывается, у MetaMask есть собственный лимит газа в 6 миллионов --

Предел газа MetaMask

Таким образом, для контракта с конечным пользователем 6M на данный момент является верхней границей.