Превышает ограничение на блокировку газа при развертывании локального узла смарт-контракта

Я работал над разработкой смарт-контрактов с запущенным локальным узлом. Это сработало две недели назад, и у меня возникла ошибка, когда я попытался развернуть тот же контракт на том же локальном узле. Ошибка превышает предел блока газа. У меня слишком много газа в truffle.js, но я все равно получаю ту же ошибку. Это почему?

pragma solidity ^0.4.8;
contract Verifier {
    bool public isSignedW = false;
    address public theAddress;
    function recoverAddr(bytes32 msgHash, uint8 v, bytes32 r, bytes32 s) returns (address) {
        theAddress=  ecrecover(msgHash, v, r, s);
        return theAddress;
    }

    function isSigned(address _addr, bytes32 msgHash, uint8 v, bytes32 r, bytes32 s) returns (bool) {
        isSignedW= ecrecover(msgHash, v, r, s) == _addr;
        return isSignedW;
    }
}

person DavidB    schedule 28.02.2018    source источник


Ответы (1)


Трудно сказать, когда мы не видим ваш смарт-контракт и как вы его развертываете. Может, вы можете предоставить дополнительную информацию?

Можем ли мы получить информацию о блоке, в котором добывается ваш контракт?

web3.eth.getBlock(BLOCK_NUMBER, function(error, result){
if(!error)
    console.log(JSON.stringify(result));
else
    console.error(error);
})

Одна из возможностей заключается в том, что лимит газа стал слишком низким, чтобы можно было добыть ваш контракт. Потому что лимит газа в частной сети уменьшается с каждым добытым блоком до лимита в 4,7 миллиона газа, если вы используете параметры по умолчанию.

person Kévin Descamps    schedule 01.03.2018
comment
Я загрузил приведенный выше код смарт-контракта. Простой договор. - person DavidB; 01.03.2018
comment
Старайтесь не устанавливать логическое значение при его объявлении, а установите его в конструкторе. РЕДАКТИРОВАТЬ: он работает с ремиксом, поэтому проблема связана с трюфелем, а не со смарт-контрактом. - person Kévin Descamps; 01.03.2018