初始化以太坊节点
geth -datadir /data/eth/ init /usr/local/eth/genesis.json
genesis.json:
{
"config": {
"chainId": 1000,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce": "0x0000000000000061",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x8000000",
"difficulty": "0x100",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {}
}
1 2 3 4 5 6 7 8 9 10
| chainId: 以太坊主网chainId为0,私链自己修改为一个任意Id。 mixhash: 与nonce配合用于挖矿,由上一个区块的一部分生成的hash。注意和nonce的设置需要满足以太坊的黄皮书, 4.3.4. Block Header Validity, (44)章节所描述的条件。 nonce: nonce就是一个64位随机数,用于挖矿,注意他和mixhash的设置需要满足以太坊的黄皮书,4.3.4. Block Header Validity, (44)章节所描述的条件。 difficulty: 设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度 alloc: 用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以。 coinbase: 矿工的账号,随便填 timestamp: 设置创世块的时间戳 parentHash: 上一个区块的hash值,因为是创世块,所以这个值是0 extraData: 附加信息,随便填,可以填你的个性信息 gasLimit: 值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。
|
启动私链的以太坊节点
1
| geth -datadir /data/eth/ --networkid 1000 console
|
以太坊节点的主要操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| admin eth personal miner
> personal.listAccounts [] > personal.newAccount("qianrushi.org") "0xcce01f2d1e7ab5ba8d9e5f68cf81b49d145e97fe" > personal.listAccounts ["0xcce01f2d1e7ab5ba8d9e5f68cf81b49d145e97fe"] > personal.newAccount("embeded.org") "0x27643bec775e242fbc06c0457f781d62249f012c" > personal.listAccounts ["0xcce01f2d1e7ab5ba8d9e5f68cf81b49d145e97fe", "0x27643bec775e242fbc06c0457f781d62249f012c"] > personal.unlockAccount("0xcce01f2d1e7ab5ba8d9e5f68cf81b49d145e97fe") Unlock account 0xcce01f2d1e7ab5ba8d9e5f68cf81b49d145e97fe Passphrase: true
|
当前区块信息
1 2
| > eth.blockNumber > eth.getBlock( eth.blockNumber )
|
账户余额
1
| > web3.fromWei(eth.getBalance(eth.accounts[0]))
|