Различаются ли лимит газа в транзакции и лимит газа в блоке?

Что означает лимит газа? Есть ли два значения лимита газа?

  1. лимит газа в транзакции
  2. заблокировать лимит газа

Ответы (1)

Да. Каждая транзакция имеет лимит газа. Например, может быть 5 незаминированных транзакций, каждая из которых имеет лимит газа 10, 20, 30, 40, 50. Лимит газа блока определяет, сколько транзакций может поместиться в блок. Например, если лимит газа в блоке равен 100, то в блок могут поместиться первые четыре транзакции. Майнеры решают, какие транзакции включить в блок. Другой майнер может попытаться включить в блок последние 2 транзакции (50+40), но у него есть место только для первой транзакции (10).

Каждый человек, создающий транзакцию, может решить, каков лимит газа его транзакции: но для него не имеет смысла указывать что-то большее, чем лимит газа блока, поэтому Geth и другие клиенты не позволят им установить слишком высокий лимит. Это лимит газа, потому что это максимальное количество газа, которое человек, создающий транзакцию, готов использовать: он не платит за дополнительный газ, который не используется. Но если они устанавливают слишком низкий лимит, их транзакция может закончиться газом, и они заплатят за все это майнеру.

С лимитом блочного газа решения принимают майнеры. Чем он больше, тем больше они могут получить от комиссий за транзакции, но тем больше пропускной способности и вычислительных ресурсов им придется делать. Майнеры не могут слишком сильно изменить блочный лимит газа в пределах одного блока: они могут изменить его только с коэффициентом 1/1024.

Лимит транзакционного газа является gasсвойством файла transactionObject. Предел газа блока — это параметр в созданном файле генезиса (он зависит от клиента и обычно означает минимальный предел газа блока: блок с пределом газа меньше, чем он, не будет принят узлами в этой цепочке блоков).

Можете ли вы объяснить, где эти две вещи определены/изменены? В файле генезиса? Я хочу поиграть с ними для частного блокчейна.
@ stone212 Да, лимит блочного газа находится в файле генезиса (может зависеть от клиента, используемое имя). Лимит газа для транзакции указан в каждой транзакции: обычно это gasзначение в transactionObject.
Я еще больше запутался, чем раньше. Можете ли вы сказать мне, какой параметр относится к лимиту газа блока здесь: github.com/paritytech/parity/blob/master/ethcore/res/ethereum/… . И являются ли какие-либо другие параметры газа в этом файле частью транзакции? minGasLimit, может быть? Если так, то, возможно, я начинаю понимать. Я запутался, потому что я думаю, что одно значение является минимальным лимитом газа транзакции , а другое — лимитом газа файла генезиса, но ни одно из них не является лимитом газа блока. Но я не могу получить прямой ответ на этот вопрос, и поэтому мое тестирование меня действительно сбивает с толку.
@ stone212 Stone212 Я не знаком с этими параметрами четности. Я думаю, вы задали вопрос по этому поводу, и если вы пометите его с помощью Parity, это может привлечь внимание некоторых людей, работающих над Parity: причина, по которой теги и заголовки важны. Если вам повезет, вы также можете попробовать 5chdn на сайте chat.stackexchange.com/rooms/34620/whisper.
у меня проблема в том, что вы говорите: «С лимитом блочного газа решения принимают майнеры», но (а) существует параметр «gasLimit», и все говорит мне, что это лимит блочного газа. Если вы можете включить объяснение в свой ответ, я отмечу его правильно.
Кроме того, рассмотрите возможность добавления вашего предыдущего комментария к ответу, чтобы будущие искатели могли его найти.
@stone212 Готово, спасибо за ваши предложения, и я вижу ваш предыдущий комментарий о minGasLimit, а также включил краткое объяснение.