Настройка газа для трюфеля

Я использую truffle migrate на главной. Также с помощью geth. Изначально я оставил цену на газ и газ пустыми в truffle.js, но теперь это выглядит так:

live: {
  network_id: 1,
  host: "127.0.0.1",
  port: 8545,
  from: "3984bc76cb775d7866d1cd55c4f49e3d13d411d4",
  gas: 40000,
  gasPrice: 22000000000 // Specified in Wei
}

Кажется, у меня ситуация, когда у меня либо слишком много газа, либо недостаточно, и у меня нет возможности получить нужное количество.

 <   {
 <     "jsonrpc": "2.0",
 <     "id": 2,
 <     "error": {
 <       "code": -32000,
 <       "message": "insufficient funds for gas * price + value"
 <     }
 <   }
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: insufficient funds for gas * price + value

...or...

 <   {
 <     "jsonrpc": "2.0",
 <     "id": 2,
 <     "error": {
 <       "code": -32000,
 <       "message": "exceeds block gas limit"
 <     }
 <   }
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: exceeds block gas limit

Когда я запускаю web3.eth.getBlock("latest") в консоли, я получаю gasLimit: 5000. Когда я устанавливаю газ на 5000, я получаю сообщение о недостаточности средств. Когда я устанавливаю его на 5001, я получаю «Превышен лимит газа для блока».

Итак, все это, кажется, говорит мне, что gasLimit должен быть установлен на 5000 или менее 5000, но в этом случае у меня недостаточно средств для выполнения транзакции. Давайте посмотрим...

У меня есть:

gas: 5000, gasPrice: 22000000000 // Указано в Wei

5000 * 22000000000 = 1,1 * 10 ^ 14 = 110,000,000,000,000 Wei 1,1 * 10 ^ 14/10 ^ 18 (количество Wei в 1 эфире) = 1,1 * 10 ^ -4 ETH

Вот учетная запись, которую я использую: https://etherscan.io/address/0x3984bc76c76d41175dress/0x3984bc76c76d41175ddress/0x3984bc76c76d41175d1 Как видите, средства у него есть. 0,01738465 Эфир на момент написания, если быть точным.


person Matt Lally    schedule 10.08.2017    source источник
comment
Следует переместить на ethereum.stackexchange.com. Лимит газа 5000 кажется слишком низким, вы пробовали гораздо большее значение, например 100k? И добились ли вы успеха в других сетях, кроме основной?   -  person comodoro    schedule 11.08.2017


Ответы (5)


если вы находитесь в тестовой сети, на testrpc параметр -l или --gasLimit позволяет установить газ есть.

В geth этот пост должен помочь: https://ethereum.stackexchange.com/questions/13730/how-to-increase-gas-limit-in-block-using-geth

person peyo    schedule 14.08.2017

Это случайным образом начало работать на следующий день. Одна вещь, которую я заметил, заключалась в том, что когда я вчера запускал web3.eth.getBlock("latest") в консоли трюфеля, я получал gasLimit: 5000, что было намного меньшим числом, чем сообщала сеть где-либо еще. Сегодня получал gasLimit: 6706583. Я действительно не уверен, что привело к локальному увеличению лимита газа, но что бы это ни было, похоже, проблема устранилась.

person Matt Lally    schedule 11.08.2017
comment
когда ваш узел Ethereum (я использую Geth) не синхронизирован с блокчейном, он дает gasLimit блока генезиса (блок 0). У этого есть предел газа в 5000, что, конечно, слишком мало, чтобы что-то делать. Возможно, это средство защиты от сбоев, чтобы вы не отправляли tx, когда они не синхронизированы. - person jsdeveloper; 07.05.2018

Я тоже столкнулся с подобной проблемой. Я использовал трюфель Truffle v4.0.1 (ядро: 4.0.1). Если вы перейдете на бета-версию, все будет работать нормально.

  1. npm uninstall -g трюфель
  2. версия трюфеля (чтобы проверить, не удалена ли она)
  3. npm install -g трюфель @ beta

Тебе хорошо идти. Это должно решить проблему.

person Neha Kumari    schedule 11.11.2017
comment
увы нет, это не так - person Dave Sag; 20.11.2017

У меня была такая же проблема, и вот как я заставил ее работать: в консоли трюфеля узнайте лимит газа для последнего блока. Используйте этот номер в своем truffle.js. В моем случае газ: 4700036 работал.

truffle(development)> web3.eth.getBlock('latest').gasLimit

4700036

person txbluesrock    schedule 23.11.2017

Увеличить лимит газа в Трюфеле. which truffle, чтобы получить местоположение Truffle Open в редакторе кода. code /home/user/.nvm/versions/node/v8.11.1/bin/truffle в настоящее время ограничение установлено на 6721975, поэтому я просто искал это число crtl+f 6721975 Измените его на 8000000 или что-то еще.
теперь в truffle develop web3.eth.getBlock('latest') // 8000000

person Barrard    schedule 22.01.2019