坚固性 |松露 |网络3 |气体限制

Posted

技术标签:

【中文标题】坚固性 |松露 |网络3 |气体限制【英文标题】:Solidity | Truffle | Web3 | Gas Limit 【发布时间】:2018-11-06 00:23:54 【问题描述】:

我正在尝试在 rinkeby 测试网上使用以下代码部署联系人:

    const result = await new web3.eth.Contract(JSON.parse(interface))
        .deploy(data: bytecode, arguments: [100, accounts[0]])
        .send(gas: 1000000, from: accounts[0]);

Attempting to deploy from acount  0xBE80D3f83530f2Ed1214BE5a7434E0cd32177047
(node:3862) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: The contract code couldn't be stored, please check your gas limit.

When I increase the gas limit to 10000000
I get below error. Not able to understand what is wrong with the deployment

Attempting to deploy from acount  0xBE80D3f83530f2Ed1214BE5a7434E0cd32177047
(node:3870) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: exceeds block gas limit

【问题讨论】:

你能出示你的合同吗?这个gas限制似乎太低了。 【参考方案1】:

您超出了 gas 限制。您可能在构造函数上做了太多工作,或者您只是发送了太低的 gas 限制。

Rinkeby gas 限制在7.4M 左右,因此您可以尝试将 gas 从:1M 增加到 ~7.4M。

如果你的合约很大,你可以把它分成多个合约,或者像我之前说的那样减少构造函数上的工作。

【讨论】:

以上是关于坚固性 |松露 |网络3 |气体限制的主要内容,如果未能解决你的问题,请参考以下文章

松露部署的网络是最新的

合约尚未部署到 Rinkeby 网络上检测到的网络(网络/工件不匹配)

谁是使用松露部署的合约的所有者?

警告:不推荐使用从地址类型继承的合约成员“余额”。坚固性

理解Docker :Docker 网络

理解Docker:Docker 网络