创建创世配置文件
{
"coinbase": "0x0000000000000000000000000000000000000000",
"config": {
"homesteadBlock": 5
},
"difficulty": "0x20000",
"extraData": "0x",
"gasLimit": "0x2FEFD8",
"mixhash": "0x00000000000000000000000000000000000000647572616c65787365646c6578",
"nonce": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x00",
"alloc": {
"dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6":
{
"balance":"100000000000000000000000000000"
}
}
}
上面这段代码复制到一个文本文件里并起名为genesis.json。
创世
为了不和主链的数据冲突,这里建议建立自己的私链数据文件夹,例如创建privchain文件夹,并把创世配置文件放在根目录下。
执行
geth --datadir "$path/Chain/privchain" init "$path/Chain/genesis.json"
完成创世!
创建账户
为了在私链上做实验,我们还需要在私链上建立自己的账户,执行
geth --datadir "$path/Chain/privchain" console
初始化,进入geth console。
执行
personal.newAccount('Your Password')
创建一个新账号并设置密码。
执行
> eth.accounts
["0x4f166b9c595ae904d9d364cc80ab2dbd439d9de0"]
> eth.getBalance(eth.accounts[0])
150000378499999992000
>
说明:
eth.accounts
查看有哪些账户,这里只有刚才创建的一个。
eth.getBalance
查看账户有多少币,初始化应该是零,这里我的账号挖过一段时间。
执行
miner.start()
挖一小会儿后,执行
miner.stop()
然后执行
eth.getBalance(eth.accounts[0])
会发现币的数量发生了变化。
转账实验
类似上述方式,再创建一个账号
personal.newAccount('Your Password')
然后解锁第一个账号
personal.unlockAccount(eth.accounts[0])
执行转账交易
eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[0], value:10000})
此时交易并没有真正执行,可以利用eth.getBalance
,会发现每个账户的币没有变化。
此时需要挖矿挖成交易,即执行
miner.start()
挖一小会儿后,执行
miner.stop()
然后执行
eth.getBalance(eth.accounts[0])
eth.getBalance(eth.accounts[1])
会发现币的数量发生了变化。
至此,完成如何搭建一个以太坊开发实验环境,创建私链及在私链上挖矿转账。