🎮 Consensus Board Game: 用棋盘游戏理解共识算法
推荐理由: Paxos算法最易懂的可视化解释
问题设定
一个由5人组成的委员会试图为自行车棚选择颜色,但成员并不可靠。我们需要即使部分成员缺席也能达成决议。
基础:多数投票
共识的基本思想是多数投票。5人委员会,3票即胜。
问题:投票可能陷入僵局——2票红色,2票蓝色,潜在决定者投了绿色!
引入领导者
指定R0为领导者,选择颜色,其他人只能批准。仍需50%投票率才能通过。
问题:领导者自己可能不可用!
核心创新:二维棋盘
解决方案是进行一系列并发投票,领导者轮换(轮询):
- 每列独立运作
- 如果你是列的领导者,你可以选择颜色
- 如果你是跟随者,等待领导者决定后你可以填入相同颜色或弃权
关键约束
任意两个达成多数的列必须同意颜色。换句话说,整个棋盘的结果是任意首先完成的列的结果,安全条件是没有两个颜色能在不同列达成多数。
抽象的力量
这个鸟瞰视图可以用几次消息交换在真实分布式系统中实现。每个参与者只看到自己的行,整个棋盘保持隐藏。