1.首先参考上篇文章安装好环境,下载go-ethereum。
下载地址:https://geth.ethereum.org/downloads/
安装地址:
2. 这里先用了两台电脑A和B,A ip地址通过ifconfig -a 查看为 172.16.56.71 ,B ip地址为172.16.56.74。
两台电脑需要ping通。
3.创建创世区块,需要注意的是,多节点的创世区块需要一样,新建文件夹PrivateEth,这里使用如下创世区块genesis.json,:
{
"config":{
"chainId":999,
"homesteadBlock":0,
"eip155Block":0,
"eip158Block":0
},
"nonce": "0x0000000000000042",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x88",
"gasLimit": "0x80000000",
"difficulty": "0x800",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": { }
}
4.首先是节点A(即电脑A):
新建终端执行命令:这里是cd到创世块目录PrivateEth,否则需要指定路径
blockchain1@blockchain1-laptop:~/PrivateEth$ geth --datadir "./" init genesis.json
然后执行命令:
geth --datadir /home/blockchain1/PrivateEth --nodiscover --networkid 666 --ipcdisable --port 6000 --rpc --rpcport 3333 console 2>>/home/blockchain1/PrivateEth/geth.log
这里networkid需要注意,各节点如果需要互联networkid需要一样, 因为是不同电脑之间,所以 port 和 rpcport不需要一样。
执行完命令后显示:Welcome to the Geth JavaScript console!
继续执行admin.nodeInfo.enode返回: 这个后面会用到
"enode://696f22d731066625d2bef2ed40d993181ed41427e41f514500a02f4adc46b3cfa145d7f633af01313183346d4349787c8d67322f99397a4f6afd619a64b55ad1@192.168.1.2:6000?discport=0"
5.节点B的建立和A一样:
需要注意netwokid需要一致,目录要规划好。
6.B节点加入A节点中去(通过A的enode信息来连接)执行以下命令:
admin.addPeer("enode://696f22d731066625d2bef2ed40d993181ed41427e41f514500a02f4adc46b3cfa145d7f633af01313183346d4349787c8d67322f99397a4f6afd619a64b55ad1@192.168.1.2:6000?discport=0")
返回 true 代表加入成功。
7 .测试结果:
然后在两个节点上测试:
net.peerCount
会返回已连接的其他节点的个数
admin.peers
返回其他节点的信息
然后一个节点创建账户,开始挖矿,另一个节点也会自动同步。挖矿信息:
INFO [03-27|11:23:33] Successfully sealed new block number=101 hash=ccf6ad…a0dc24
INFO [03-27|11:23:33]