Ошибка, связанная с газом, при развертывании контракта на блокчейн-сервис Quorum @ Azure
Я могу развертывать контракты в ganache и тестовых сетях, используя миграции, которые включают отправку некоторого eth в один из контрактов.
deployer.deploy(Oracle, {from: accounts[0], gas:6721975, value: 0.25e18});
Однако, когда я развертываю контракт Oracle в службе блокчейна Quorum / Azure, я получаю
Error: *** Deployment Failed ***
"Oracle" received a generic error from Geth that
can be caused by hitting revert in a contract constructor or running out of gas.
* gas required exceeds allowance (6721975) or always failing transaction.
Некоторый поиск в Google по этой ошибке привел к публикациям (https://ethereum.stackexchange.com/questions/74209/gas-required-exceeds-allowance-truffle-migrate/74211), но я не уверен, что это причина, и я не могу выяснить, как изменить генезис в блокчейне Azure. Любая помощь будет высоко ценится.
Я также проверил конструктор контракта Oracle, и в нем нет ничего, что могло бы вызвать исключение.
2 ответа
Я думаю, что Quorum поддерживает транзакции в eth, поэтому отправка газа по контракту на Quoroum не работает.
В итоге я сам создал службу оракула, которая не потребляет газ.
Столкнувшись с той же проблемой, если вы используете трюфель для развертывания, попробуйте использовать эту конфигурацию и убедитесь, что для gas и gasPrice установлено значение Zero.
azure:{
provider: new Web3.providers.HttpProvider("<connection string here>"),
network_id: "*",
gas: 0,
gasPrice: 0,
from:"<member address here>",
}