新验证器不同步块

New validator not syncing blocks

我添加了一个新的验证器,但同步块的过程效果不佳。新的验证器节点不会同步所有块,而只会同步第一个块。查看日志,我看到了这个可疑的日志:

[2020-10-13 14:00:22.158 DEBUG completer] Request missing predecessor: e867dffff247c79ccb919de3802fca1afa25b6e1886b55794ea33ffb44f02a7448cc8884bc2f907e429d9f62ecdc12e846075c416614ce2e5f7eeaea4b701a32

[2020-10-13 14:00:22.174 DEBUG completer] Drop duplicate block: c88c57c5984015e60c5a54b898f8d4b25a65f7c29a444822820c780c8a8aa04155df3fa664a38f4b7a2fb5d5a94ceb7c6ec26a9c6c4f4483221f455198814385 (block_num:1, state:26cf5049bdc3a25a85f8f8f1db69e141e5881b812be86babdbf35b2263bf56e3, previous_block_id:e867dffff247c79ccb919de3802fca1afa25b6e1886b55794ea33ffb44f02a7448cc8884bc2f907e429d9f62ecdc12e846075c416614ce2e5f7eeaea4b701a32)
[

似乎该块已被删除。有人知道为什么新验证器不同步所有块吗?

PS:新验证器在使用 docker-compose 的远程机器上,但即使新验证器是在使用 docker 的同一台机器上设置的,我也有同样的问题-撰写

在我的例子中,我删除了那个验证器并尝试启动一个新的验证器(docker-compose 向下然后 docker-compose 再次向上)。它工作但得到了一个分叉解决方案(在验证器日志中有记录说“为链头构建分叉解决方案......”)。

一旦在 pbft.members 链上设置中添加了新的验证器 public 密钥(我使用的是 PBFT 共识机制),这个分叉解决问题就得到了解决。

由于某些原因,在具有PBFT共识机制的锯齿波1.2.5中,如果您添加一个新节点并且没有在pbft.members设置中添加它,则新节点可能会分叉并同步所有块,除了最后一个。