在以太坊私有链的开发、测试或企业级部署过程中,我们经常会遇到需要为特定账户“凭空”增加 ETH 余额的场景,与公链必须通过挖矿或转账获得代币不同,私链赋予了开发者对网络完全的控制权。
本文将详细介绍三种在以太坊私链中为账户充值余额的常用方法,帮助你高效地进行开发和测试。
修改 Genesis 文件(预分配资金)
这是最原始也是最推荐的方法,适用于在私链启动之前就确定好初始资金分配的情况。
在创世区块配置文件(通常是 genesis.json)中,你可以通过 alloc 字段直接为指定地址预分配 ETH。
操作步骤:
- 打开你的
genesis.json文件。 - 找到
alloc对象。 - 添加目标账户地址和余额(注意:单位是 Wei,1 ETH = 10^18 Wei)。
{
"config": { ... },
"difficulty": "200",
"gasLimit": "2100000",
"alloc": {
"0xYourTargetAddressHere": {
"balance": "1000000000000000000000000"
// 这里是100万个ETH(后面跟了24个零,即10^24 Wei)
}
}
}
注意:如果你使用的是 Geth 客户端,且之前已经初始化过该链,你需要删除原有的链数据目录(如 ~/.ethereum/privatenet)并重新执行 geth init genesis.json 才能生效。
使用 Geth Console 通过矿工账户转账
如果你的私链已经在运行,且开启了挖矿功能(或者你有 Coinbase 账户的私钥),最简单的方法是使用 Geth 控制台直接转账。
前提条件: 私链正在运行,且矿工账户有余额(或者你是矿工,可以立刻挖出新的 ETH)。
操作步骤:
-
进入控制台:
geth attach ipc:/path/to/your/geth.ipc
-
解锁矿工账户: 默认情况下,Coinbase(矿工)账户通常是第一个账户,如果需要密码,请输入。
personal.unlockAccount(eth.accounts[0])
-
执行转账: 从矿工账户向目标账户发送 ETH。
