PBFT表示,如果备份i的定时器在视图v中期满,则其通过多播<view-change, v+1, n, C, P, i>来开始v+1的视图改变,其中n是最后稳定检查点s的序列号,P是包含针对在i处准备的序列号高于n的每个请求m的集合Pm的集合。
现在,检查点是定期获取的,因此,可以在i处准备好序列号大于n的消息,这些消息已经提交。我们不希望这些被包含在Pm中,因为它们已经被提交了。那么,PBFT是如何处理这个问题的呢?
发布于 2017-07-12 00:41:34
我认为这些消息会再次被执行。当视图更改发生时,所有节点都将位于同一检查点。
当视图v + 1的“新”主节点接收到有效的视图改变消息时,多播一个新视图消息。在发送的消息中,它表示:
min-s.max-s.一样多的预先准备的消息
每个节点都保存不在检查点内的消息的日志,因此不需要再次处理这些消息。
https://stackoverflow.com/questions/45025899
复制相似问题