我最近使用 Docker-compose 部署了结构网络,我试图模拟一个宕机的对等点。本质上是这样的:
- 使用运行结构网络的 docker-compose 将 4 个对等点联机
- 1 个对等点,即第 4 个对等点出现故障(通过 docker stop 命令完成)
- 调用事务被发送到根对等点,该根对等点通过在一段时间后查询对等点(不包括已关闭的对等点)进行验证。
- 宕机的对等点会通过 docker start 重新启动。查询事务在始终在线的对等点上运行良好,但在新唤醒的对等点上失败。
为什么第四个节点在区块链启动后不同步区块链。是否需要采取措施来确保它同步?或者是否将其作为流氓对等点丢弃。
这可能是由于 PBFT 的预期行为(假设您正在使用它)造成的。正如上所解释的第933期 https://github.com/hyperledger-archives/fabric/issues/933#issuecomment-218833493,
我认为你看到的是正常的 PBFT 行为:2f+1 个副本是
取得进展,f 副本稍微落后,赶上
偶尔起来。
如果你关闭另一个对等点,你应该观察
您最初关闭并重新启动的那个现在将
充分参与,网络将不断进步。作为
只要网络在进步,参与的节点
共享一个正确的前缀,一切都很好。 f 副本的原因
落后的是那些f可能表现得拜占庭式的进步
故意慢慢地。你无法区分较慢的
正确的副本,以及故意较慢的拜占庭副本。
因此,我们不能等待最后 f 个掉队者。他们将被留下
落后并偶尔同步。如果事实证明还有其他
副本崩溃,网络将停止前进,直到一个
正确的落后者赶上,然后网络就会进步
通常情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)