在最新的以太坊中部署合同时,超过了区块气体限制

时间:2017-07-23 06:07:17

标签: ethereum

我正在尝试执行https://medium.com/@mvmurthy/full-stack-hello-world-voting-ethereum-dapp-tutorial-part-1-40d2d0d807c2中的步骤。

然而,区别在于我在AWS服务器上运行geth而不是链接中指定的truffle或testnet。我需要部署合同地址来尝试UI。我使用以下geth命令:geth --networkid 12312423 --port 30303 -rpc -rpcaddr "0.0.0.0" -rpcport 8080 --rpcapi "web3,db,net,personal,eth" --rpccorsdomain "*" --preload mining.js --nodiscover --maxpeers 0 --datadir=~/eth/data231 init genesis.json console

我在同一台机器的另一个屏幕上运行了Node命令。我一直走到步骤结束,我收到错误:在部署合同时超过了区块气体限制。我正在使用的genesis.json中是否有任何错误。

任何建议都会有所帮助...

genesis.json

{
            "config": {
                "chainId": 15,
                "homesteadBlock": 0,
                "eip155Block": 0,
                "eip158Block": 0
            },
            "difficulty": "200000000",
            "gasLimit": "2100000",
            "alloc": {
                "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
                "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
            }
        }

1 个答案:

答案 0 :(得分:0)

问题解决了。该解决方案有两个学习内容:

  1. genesis.json中的gasLimit应该更高,如“gasLimit”:“3141592000000”。

  2. 我们首先应该在没有init的情况下启动geth。创建帐户,解锁。然后如下所示为帐户分配余额并执行git init。 即 生成帐户后,退出geth并从datatir中删除除keystore /之外的所有文件夹: $ cd $ rm -rf ls | grep -v keystore 更新你的genesis块json,将以下内容添加到alloc键: “alloc”:{ “”:{     “平衡”:“10000000000000000000” } }