plugin
plugin copied to clipboard
共识节点配置灵活性问题
Describe the bug 目前共识节点的配置通过配置文件设置 validatorNodes=["172.16.43.151:46656","172.16.43.152:46656","172.16.43.153:46656","172.16.43.154:46656"] ,共识节点ip变化或者用户配置不一致,影响链的运行。
To Reproduce
- 配置文件 node1 validatorNodes=["172.16.43.151:46656","172.16.43.152:46656","172.16.43.153:46656"]
配置node2 validatorNodes=["172.16.43.151:46656","172.16.43.152:46656","172.16.43.154:46656"]
停掉node3
配置node4 validatorNodes=["172.16.43.152:46656","172.16.43.153:46656","172.16.43.154:46656"]
2 node1 node2 node4 启动 ,发转账交易 区块没有产生
Expected behavior 可选方案: 每个共识节点已经有私钥和证书,可以通过共识节点的证书来识别,不用通过配置。共识节点的证书已经在 genesis.json 声明过。而且共识节点ip变化也不影响。
可以参考第三方的方案,有时间可以处理一下这个问题
描述的bug出现的原因是node1,node4只连接了两个存活节点,不满足共识需要 2/3 以上节点的条件,导致达不成共识
目前联盟链中仍是通过配置文件来建立各节点之间的连接,比如百度超级链和FISCO,不能像公链采用种子节点来记录节点IP信息 由于共识建立自己的通信连接,维护比较繁琐,可以考虑复用P2P模块的连接 #995