Process 拜占庭式的可靠广播如何确保每个正确的进程最终传递一条消息?

Process 拜占庭式的可靠广播如何确保每个正确的进程最终传递一条消息?,process,distributed-computing,distributed-system,Process,Distributed Computing,Distributed System,我不明白拜占庭式的可靠广播是如何通过其整体性属性确保,如果某个消息是由任何正确的进程传递的,那么每个正确的进程最终都会传递一条消息。 在发送者是正确的情况下,我理解拜占庭式可靠广播的工作原理,但如果发送者是拜占庭式的,我不理解。 例如,考虑有四个过程的场景:A、B、C和D,A是拜占庭发送器,因此我们尊重过程N(即4)的总数大于故障过程F(即3F=3)数量的三倍的约束。现在,如果A只向B和C发送消息m,拜占庭可靠广播如何确保D也发送消息m?你的问题是 给定四个过程(N=4,f=1):A,B,C,D

我不明白拜占庭式的可靠广播是如何通过其整体性属性确保,如果某个消息是由任何正确的进程传递的,那么每个正确的进程最终都会传递一条消息。 在发送者是正确的情况下,我理解拜占庭式可靠广播的工作原理,但如果发送者是拜占庭式的,我不理解。 例如,考虑有四个过程的场景:A、B、C和D,A是拜占庭发送器,因此我们尊重过程N(即4)的总数大于故障过程F(即3F=3)数量的三倍的约束。现在,如果A只向B和C发送消息m,拜占庭可靠广播如何确保D也发送消息m?

你的问题是

给定四个过程(N=4,f=1):A,B,C,D;一个是拜占庭式的错误节点, 如果A只向B和C发送消息m,拜占庭式可靠广播如何确保D也发送消息m

在回答你的问题之前,让我澄清一件事。你为什么认为D传递的信息是m?我的意思是,totality属性只表示“如果某个消息是由任何正确的进程传递的,那么每个消息都是正确的 在您的场景中,B和C都没有传递消息。所以D不需要确保m被交付

但是,如果您想问,即使在拜占庭发送方向不同进程发送不同消息的情况下,如何实现正确进程之间的一致性,我可以回答这个问题

这是因为B和C广播从A发送的消息,以验证A是否确实是拜占庭发送者。然后,解决了D没有从A接收到消息的情况,因为B和C都被认为是正确的

如果你看一下拜占庭可靠广播的详细协议,还有两个步骤你在问题中没有提到。因此,如果C在第一阶段没有收到来自发送方的任何消息,C将在第二阶段知道这一事实,因为B和C都将广播该消息并尝试收集匹配消息的2f+1数字(仲裁)