2

我在部署智能合约(使用 netheruem)时不断收到错误消息。错误是:gas * price + value with geth 命令的资金不足:

geth --dev --rpc --rpcport "8545" --rpcapi="db,eth,net,web3,personal,web3" console

我读到我需要调整我的 genesis.json 文件中的气体限制,但我在初始化 geth 之前已经完成了这一步。这是我的 genesis.json 文件:

{
"config":{
   "chainId": 45,
   "homesteadBlock": 0,
   "eip155Block": 0,
   "eip158Block": 0,
   "byzantiumBlock": 12
},
"alloc" : {},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x20000",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : 
"0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : 
"0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}

我最新区块中的 gas 限制是 6283185,这应该足以部署智能合约。我需要检查配置吗?

谢谢

4

1 回答 1

3

您需要向您正在执行交易的账户提供资金,或者允许 0 汽油价格交易。

要为帐户注资,请在创建初始块时将分配添加到您的 genesis.json:

{
   ...
   "alloc": {
        "ACCOUNT_ADDRESS": {
            "balance": "9999999999999999999999999"
        }
    }
}

通过创建帐户,geth然后在配置中使用该地址。值以魏为单位。

代替使用资金,您可以使用设置为 0 的 gas 价格,但您必须在—gasPrice设置为 0 的情况下启动您的矿工(否则,您的矿工将忽略您的交易)。即使你使用 0 gas 价格,你仍然有 gas 限制约束。

于 2018-07-27T03:08:13.950 回答