测试条件
为了在本地网络运行多个以太坊节点的实例,必须确保一下几点:
- 每个实例都有独立的数据目录(--datadir)
- 每个实例运行都有独立的端口.(eth和rpc两者都是)(--port 和 --rpcprot)
- 在集群的情况下, 实例之间都必须要知道彼此
- 唯一的ipc通信端点,或者禁用ipc
创建集群
创建一个私有链 https://www.jianshu.com/p/48e3073099b4
启动第一个节点(指定端口,并禁用ipc),执行
geth --datadir $path/Chain/privchain1 --networkid 314590 --ipcdisable --port 61910 --rpcport 8200 console
上面的命令以命令行的(console)的方式启动了节点, 所以我们可以通过继续输入下面的命令获取节点实例的enode url:
admin.nodeInfo.enode
再打开一个终端,初始化第二个节点:
geth --datadir $path/Chain/privchain2 init ./genesis.json
启动
geth --datadir $path/Chain/privchain2 --networkid 314590 --ipcdisable --port 61911 --rpcport 8101 --bootnodes "enode://ad307e052d0e04af519b8999fa870800df8a7a0cc2a91e6aea30e879b75c344dfa12c773a63a71677c2a3ea1254cf982815817f7ff58bd79e5837ea44d791a2d@192.168.1.0:61910" console
上面的命令中,--bootndoes 是设置当前节点启动后,直接通过设置--bootndoes 的值来链接第一个节点, --bootnoedes 的值可以通过在第一个节的命令行中,输入admin.nodeInfo.enode
命令打印出来。
可以通过
admin.nodeInfo
net.peerCount
查看节点是否链接成功。