用班费记账理解区块链中的Paxos与Raft算法
在班级班费管理中,当多位班委同时记录收支时,最头疼的问题是“如何让大家记的账最终一致”。如果只是偶尔有人忘记账(非恶意故障),不需要复杂的防骗规则,只需高效的同步机制——这正是Paxos和Raft算法的设计场景。以下通过班费场景,拆解这两种最经典的崩溃容错算法。
一、核心场景:为什么需要Paxos和Raft?
某班5位班委用手机记录班费,遇到两个问题:
这两种情况都属于“非恶意故障”(没人故意记错,只是不同步或离线)。Paxos和Raft算法专门解决这类问题,确保即使存在节点故障,最终所有账本仍能达成一致。
二、Paxos算法:“多轮投票选最优记账方案”
1. 场景流程:班委的“提案-确认”规则
班级约定,任何收支都需通过以下流程记录:
- 班长先提议“9:00 支出20元”,编号为1(编号越大代表提案越新);
- 生活委员后提议“9:01 支出20元”,编号为2;
- 每位班委收到提案后,若编号大于自己见过的最大编号,就回复“接受,并承诺不再接受编号更小的提案”。
- 生活委员的提案编号更大,收到多数(3人以上)“接受”后,广播“确认9:01 支出20元”;
- 所有人收到确认后,统一记录这笔支出。


