手把手教你从源代码开始搭建多节点以太坊私链(附一)连接多个节点失败之填坑实录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sitebus/article/details/83994430

备注:本文是手把手教你从源代码开始搭建多节点以太坊私链(四)部署及连接多个节点的补充。

部署多个节点最大的痛苦莫过于下面这样的,明明成功添加了节点,却看不到别的节点。只好自己默默一个人玩耍。。。

> admin.addPeer("enode://45fcfdf4efdc37a858dcb4c6c852835abe64b88d9e7f44a6ccc576da6e8f9c8b36c42c16a3dd82187294292e991997e0e8f5036@xxx.yyy.6.54:30303")
true
> admin.addPeer("enode://0faa70d7d55823e3ebfb98d7dd11de8ce38ac5407531e9d8366eb6dd7e7dc06405c390208a6ac9e6c732c4e11452ee1fbc2ce18@xxx.yyy.22.135:30303")
true
> admin.peers
[]
> net.listening
true
> net.peerCount
0

甚至还有这样的invalid merkle root痛苦错误:

########## BAD BLOCK #########
Chain config: {ChainID: 1 Homestead: <nil> DAO: <nil> DAOSupport: false EIP150: <nil> EIP155: 0 EIP158: 0 Byzantium: 0 Engine:$

Number: 1
Hash: 0x730ad5ba1429bf3f9650d2ecacb5ebf9595ce07df86bd142db60d3612f032da7


Error: invalid merkle root (remote: 6e0de920c1f2a88531dcdb309775893d617776955ff9c807218562018af8dc93 local: e2e9fff1b8a0d3f09f$
##############################
WARN [11-12|00:00:40] Synchronisation failed, dropping peer    peer=78a2449a2637fba9 err="retrieved hash chain is invalid"
INFO [11-12|00:00:56] Come to new epoch                        prevEpoch=17845 nextEpoch=17846
ERROR[11-12|00:00:56]

官网的回答以及Stack Exchange上面的大神们回答的连接铁则已经烂熟于胸,可是并不解决问题。

保证能连接各个节点的铁则

  1. 保证各节点时间准确。如果时间差超过12秒是不能成为兄弟节点的。
# linux下面的时间同步方法
ntpdate -s time.nist.gov
  1. 使用相同的创世纪区块初始化json文件。
    如果不能肯定是同一个内容的文件,用文件哈希值来验证
#语法:md5sum filename
md5sum myGenesis.json
  1. 启动参数使用相同的networkId。这个id与初始化myGenesis.json里面的ChainId保持一致。
  2. 保证各个节点之间的tcp端口(比如rpc的8545,节点互连的30303等)是可以互相联通的。
    windows下可以用telnet来测试是否真正联通。 参考检测远程主机上的某个端口是否开启——telnet命令 。 如果没有安装telnet,windows10的情况,可以参考Win10开启telnet功能
  3. 不能自动找到的情况下使用admin.addPeer()手动添加别的节点。
admin.addPeer("enode://[email protected]:30303")

可是上述方法都不解决问题怎么办。这里还有一个终极办法。那就是

终极办法:使用主动连接节点组“Static nodes”文件

将节点信息写入文件,/geth/static-nodes.json。 然后重启geth. 这个文件里面的节点一定失去连接,会自动进行重连。这种办法对于不稳定的连接非常有效。

[
  "enode://[email protected]:30303",
  "enode://pubkey@ip:port"
]

祝好运!

猜你喜欢

转载自blog.csdn.net/sitebus/article/details/83994430