5

truffle migrate在主要运行。也使用geth。我最初在 truffle.js 中将 gas price 和 gas 留空,但现在看起来像这样:

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

...或者...

 <   {
 <     "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. 当我将 gas 设置为 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(1 Ether 中的 Wei 数量)= 1.1*10^-4 ETH

这是我正在使用的帐户:https ://etherscan.io/address/0x3984bc76cb775d7866d1cd55c4f49e3d13d411d4 。如您所见,它有资金。准确地说,在撰写本文时为 0.01738465 以太币。

4

5 回答 5

2

如果您在测试网络上,在testrpc上,选项 -l 或 --gasLimit 可让您设置可用的气体。

在geth,这篇文章应该有所帮助:https ://ethereum.stackexchange.com/questions/13730/how-to-increase-gas-limit-in-block-using-geth

于 2017-08-14T13:49:54.387 回答
1

我也面临类似的问题。我使用的松露版本是 Truffle v4.0.1(核心:4.0.1)。如果您降级到测试版,一切都会正常工作。

  1. npm 卸载 -g 松露
  2. 松露版本(检查是否已卸载)
  3. npm install -g truffle@beta

你已准备好出发。这应该可以解决问题。

于 2017-11-11T05:59:31.067 回答
1

这在第二天随机开始工作。我注意到的一件事是,当我web3.eth.getBlock("latest")昨天在 truffle 控制台中运行时,我得到了gasLimit: 5000,这比网络在其他地方报告的数字要低得多。今天我得到了gasLimit: 6706583。我真的不确定是什么导致气体限制在本地增加,但无论是什么似乎都解决了这个问题。

于 2017-08-11T13:39:36.070 回答
1

我遇到了同样的问题,这就是我的工作方式:在松露控制台中,找出最后一个块的气体限制。在 truffle.js 中使用该数字。就我而言,gas: 4700036 有效。

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

4700036

于 2017-11-23T00:38:59.460 回答
0

增加 Truffle 中的气体限制。 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

于 2019-01-22T12:53:36.470 回答