区块链(三)基于本地以太坊客户端搭建多节点私链

1. 新建一个目录Test_Eth,用于存放区块链等数据。

在~\Test_Eth\中新建一个文件genesis.json,作为私有链的创世块说明文件:

{
  "config": {
    "chainId": 6,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0
  },
  "alloc": {},
  "coinbase": "0x0000000000000000000000000000000000000000",
  "difficulty": "0x20000",
  "extraData": "",
  "gasLimit": "0x2fefd8",
  "nonce": "0x0000000000000042",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp": "0x00"
}

 2. 在Test_Eth目录下启动geth,以genesis.json中的创世块开始创建私有链。 

geth --datadir ./ init genesis.json

结果如下: 

区块链(三)基于本地以太坊客户端搭建多节点私链_第1张图片

3. 启动p2p节点A控制台

此命令将建立一个p2p网络,网络id为225,区块链数据存放于Test_Eth目录中

 geth --datadir ./ --networkid 225 console

结果如下所示:

区块链(三)基于本地以太坊客户端搭建多节点私链_第2张图片

4. 新建另外一个目录Test_Eth2,启动另外一个node (node B)

使用同样的genesis.json作为创世块,将Test_Eth中的genesis.json复制到Test_Eth2,执行以下命令:

geth --datadir ./ init genesis.json

使用不同的端口,启动控制台

geth --datadir ./ --networkid 225 --port 30304 console

结果如下:

区块链(三)基于本地以太坊客户端搭建多节点私链_第3张图片

5. 新建另外一个目录Test_Eth3,启动另外一个node (node C)

使用同样的genesis.json作为创世块,将Test_Eth中的genesis.json复制到Test_Eth3,执行以下命令:

geth --datadir ./ init genesis.json

使用不同的端口,启动控制台

geth --datadir ./ --networkid 225 --port 30305 console

结果如下:

区块链(三)基于本地以太坊客户端搭建多节点私链_第4张图片

6. 在nodeA通过命令查看节点A的enode信息

admin

结果如下所示:

区块链(三)基于本地以太坊客户端搭建多节点私链_第5张图片

7. 在启动后, 在node B控制台中输入命令,让node B连接第一个node A:

admin.addPeer("enode://fc0ba73989008806f9050135367426913611c80f1157d988c8dd6509a1225d3866d172db35e84ea4129b361002aee90311af180a802818d5084b6afeaf418489@127.0.0.1:30303")

结果如下所示:

区块链(三)基于本地以太坊客户端搭建多节点私链_第6张图片

 8.在node C控制台中输入命令,让node C连接第一个node A: 

admin.addPeer("enode://fc0ba73989008806f9050135367426913611c80f1157d988c8dd6509a1225d3866d172db35e84ea4129b361002aee90311af180a802818d5084b6afeaf418489@127.0.0.1:30303")

结果如下所示:

 区块链(三)基于本地以太坊客户端搭建多节点私链_第7张图片

 9. 在任一节点控制台输入命令查看节点接入情况

admin.peers

结果如下所示:

区块链(三)基于本地以太坊客户端搭建多节点私链_第8张图片

在节点A创建账户:

personal.newAccount("123456") //123456为账号密码

在节点A使用命令进行挖矿:(默认第一个账户挖矿)

miner.start()

可以看到节点A,节点B,节点C都有相同的数据:

区块链(三)基于本地以太坊客户端搭建多节点私链_第9张图片

至此,基于本地以太坊客户端搭建多节点私链工作完成。

 

你可能感兴趣的:(区块链晋升之路,环境搭建)