使用bootnode,让各个节点发现彼此。其实bootnode就类似是中心注册服务,各个节点连接到bootnode,来获取其他节点。
bootnode --genkey=boot.key
bootnode --nodekey=boot.key
bootnode的配置很简单,只需要一个key就可以。启动后,会监听一个端口,供其他其他服务连接。
每个节点都要执行下面的操作
geth --datadir path/to/custom/data/folder init genesis.json
geth --datadir path/to/custom/data/folder --networkid 15 --bootnodes <bootnode-enode-url-from-above>
geth --datadir DIR console
> net.peerCount
2
> admin.peers
...
注意,在3节点的情况下(1个bootnode节点,3个peer节点),连接到每个peer,看到的net.peerCount=2
,admin.peers
也会显示其他2个节点的信息,而不包括自己。