使用 geth --dev 的 gas * price + value 资金不足

Posted

技术标签:

【中文标题】使用 geth --dev 的 gas * price + value 资金不足【英文标题】:insufficient funds for gas * price + value using geth --dev 【发布时间】:2019-01-03 07:27:56 【问题描述】:

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

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

我读到我需要在我的 genesis.json 文件中调整 gas 限制,但我在初始化 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,这应该足以部署智能合约。我需要检查配置吗?

谢谢

【问题讨论】:

您的部署钱包中是否真的有足够的资金来支付交易费用? 【参考方案1】:

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

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


   ...
   "alloc": 
        "ACCOUNT_ADDRESS": 
            "balance": "9999999999999999999999999"
        
    

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

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

【讨论】:

以上是关于使用 geth --dev 的 gas * price + value 资金不足的主要内容,如果未能解决你的问题,请参考以下文章

如何在私有链上发送无gas费的交易

为松露设置气体

Eth 部署智能合约

go-ehtereum编译:

以太坊代币转移 - 等待验证 + 72H

GETH的安装和使用(Windows)