分布式共识与容错机制
1. 引言
共识的目标是提高系统的可靠性。分布式系统中的不可靠性主要源于两个方面:一是通信渠道,例如消息可能会延迟、重复、丢失或乱序;二是节点,比如节点可能崩溃或恶意行事,恶意行为包括向不同节点发送不一致的消息、篡改其他节点发送的消息、窃取网络流量等。
根据故障模型,分布式系统可分为故障停止系统和拜占庭容错系统。在故障停止系统中,通信渠道可能不可靠,但节点的行为是可预测的,它们要么正常工作,要么停止工作。而在拜占庭容错系统中,通信渠道和节点都是不可靠的。
Paxos和Raft是容忍故障停止失败的共识协议,广泛用于协调集群中的计算机,因为集群通常由单个实体控制,因此没有拜占庭故障。然而,这些协议不适用于基于区块链的系统,在该系统中节点可能会任意失败(拜占庭故障)。传统的拜占庭容错共识协议,如实用拜占庭容错(PBFT),需要节点之间进行消息交换,并且随着网络的增长,这种通信开销会迅速增加。比特币的中本聪共识可以说是第一个能够扩展到10,000个节点的拜占庭容错共识协议。
尽管中本聪共识允许数万个节点参与共识过程,但随着更多节点加入网络,系统性能并不会提高,这也是大多数共识协议(即使不是全部)面临的常见问题。目前,寻找高吞吐量和低延迟的共识协议是一个热门的研究课题。
2. 分布式共识
形成共识组的计算机可以建模为复制状态机(RSM),不同处理器上的状态机以相同的顺序执行完全相同的确定性命令,因此产生相同的结果。实现这一点的一种方法是采用复制日志,每个命令必须在复制到所有日志后才能执行,因此只要日志相同,状态机就会处于相同的状态。执行命令“set x as 4”涉及以下五个步骤:
1. 客户端
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



