Я столкнулся с проблемой превышения лимита газа, когда выполнял развертывание в своем локальном Ganache. Мне пришлось реорганизовать свои контракты и разбить их на несколько контрактов. Я заставил его работать.
Теперь я сталкиваюсь с тем же, когда пытаюсь развернуться в Ropsten через Infura.
Я получаю превышение лимита газа даже при простом развертывании Migrations.sol. У меня достаточно газа на моем основном аккаунте.
Моя конфигурация трюфеля такова:
// Allows us to use ES6 in our migrations and tests.
require('babel-register')
var HDWalletProvider = require("truffle-hdwallet-provider");
var infura_apikey = "... ...";
var mnemonic = "... ... ... ...";
module.exports = {
networks: {
development: {
host: 'localhost',
port: 8545,
network_id: '*' // Match any network id
},
ropsten: {
provider: new HDWalletProvider(mnemonic, "https://ropsten.infura.io/"+infura_apikey),
network_id: 3
}
}
}
Initial Migration JS — это стандартный код.
var Migrations = artifacts.require("./Migrations.sol");
module.exports = function(deployer) {
deployer.deploy(Migrations, { gas: 4700000, //may be 21000 - 3000000
gasPrice: 20000000000});
};
Что мне здесь не хватает? Он терпит неудачу во время начальной миграции.
Использование сети «ropsten».
Установка газа на 4 700 000 кажется малой. (Как такое может быть? Это всего лишь контракт Migrations!)
Running migration: 1_initial_migration.js
Deploying Migrations...
... 0x6810b697ecf938b94a134ed62865b661dcd5f37ae53bd08dc575b8850de968ef
Migrations: 0x64e70064a0b59f8d2b789f7cb50e6a9465abaf35
Saving successful migration to network...
Error encountered, bailing. Network state unknown. Review successful transactions manually.
exceeds block gas limit
Установка его на 4 800 000, похоже, превышает лимит Ropsten.
Running migration: 1_initial_migration.js
Deploying Migrations...
Error encountered, bailing. Network state unknown. Review successful
transactions manually. exceeds block gas limit
ОБНОВЛЯТЬ
В конце концов я отказался от разработки на Ropsten и вместо этого работал над Rinkeby. Больше таких проблем у меня не было.
Ваш газ не слишком низкий, он слишком высокий
Блок Ethereum имеет общий лимит газа около 4 700 000 , а это означает, что общее количество всех транзакций, содержащихся в блоке, не должно превышать 4,7 миллиона. Только ваш равен лимиту, поэтому вряд ли попадет в блок. Попробуйте установить более низкий предел газа.
халапина
начо