【问题标题】:A subcase of byzantine agreement (4 processes, the commander is a traitor)拜占庭协议的一个子案例(4个进程,指挥官是叛徒)
【发布时间】:2015-09-05 18:34:45
【问题描述】:

如果您不知道问题所在,see this

简介:

进程通过可靠和及时的消息进行通信。叛徒撒谎,也在转发信息上作弊,他们试图迷惑忠诚者。忠诚者试图就重要的行动达成一致(攻击、撤退,只有 2 个行动)。只有一名指挥官。如果指挥官忠诚并下达命令,则忠诚者会跟随,否则忠诚者会同意任意行动。

我的问题

我不明白这种情况:假设有4个进程,只有1个进程是指挥官,指挥官是叛徒。系统怎么能容忍这种情况?指挥官可以向 3 名忠诚者发送 3 种不同的信息。每个忠诚者将消息转发给其他 2 个忠诚者。所以每个忠诚者都会收到 3 种不同的行动。忠诚者如何决定统一行动?

一般结果是:3f + 1 进程需要容忍f 叛徒。

【问题讨论】:

  • 如果你有4个进程,一个是叛徒,你最后的一般结果说你不能容忍。根据您的公式,您至少需要 5 个进程来处理其中的一个叛徒。如果指挥官是叛徒,我认为至少同样糟糕。
  • 我可能错了,但我认为所描述的问题涉及 2 状态(攻击/撤退),而您的问题描述了 3 状态。这就是为什么它对你“不起作用”
  • 嗯。我认为你达到了临界点。阿米特。那么这个问题就结束了
  • @Amit:您能否提交您的评论作为答案,以便我们投票并将此问题标记为已回答?
  • @CharlesStewart - 添加...

标签: algorithm fault-tolerance


【解决方案1】:

拜占庭容错问题处理存在两种可能的操作且必须达成一致的场景。

所描述的问题不可能发生,因为在 2 个可能的操作(2 个“消息”)之间,不可能存在“3 个不同的消息”。

【讨论】:

    猜你喜欢
    • 2012-10-15
    • 1970-01-01
    • 2011-05-20
    • 2020-06-13
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    相关资源
    最近更新 更多