Paxos算法

本文探讨了区块链技术中的核心算法之一——Paxos算法。文章详细解释了容错问题及Paxos算法如何解决这一问题,同时介绍了几种基本模型与算法,包括客户端/服务器模型及其变种、状态复制的概念等,并深入剖析了Paxos算法的基本原理。
摘要由CSDN通过智能技术生成

区块链核心算法解析 第二章

容错问题和paxos算法

定义2.1 计算机网络中所有计算机均为节点(在c/s模式下,两者均为节点)

模型2.2 节点可以本地运算,也可以向其他节点发送消息

算法2.3 朴素的客户端/服务器算法:客户端每次向服务器发送一条命令

模型2.4 存在消息丢失,不保证消息传给接收者

算法2.5 带确认的客户端/服务器算法:客户端发送命令后,服务器每收到一条命令,都发送一条确认信息,若客户端在合理时间内未收到服务器确认信息,则重新发送命令

模型2.6 消息传输花费时间不同

定理2.7 算法2.5在多个服务器和多个客户端运行,服务器接收到的命令顺序可能是不同的,这会导致不一致的状态

定义2.8 对于一组节点所有节点以相同顺序执行一个命令序列,则这组节点实现了状态复制

算法2.9 所有客户端向串行化器发送命令,一次一条;串行化器将命令逐条发给所有服务器;一旦串行化器收到所有确认信息,通知客户端命令被执行;

(风险:串行化器必须保持通畅)

算法2.10 2PL和2PC

(风险:所有服务器都要畅通)

paxos:

定义2.11 票:即弱化的锁,可重新发布可以过期

算法2.12 朴素的基于票的协议

算法2.13 paxos

引理2.14 若已存在一个被选中的propose(t,c),则对于后续的每一个propose(t',c'),c'=c

(用反证法可以证明,设t'为所有在t之后发布的提案中最小的票号,只有一种情况客户端不采纳c,即有服务器接受了另一提案propose(t*,c*),但由于t<t*<t',t'不为所有在t之后发布的提案中最小的票号,即不成立)

定理2.15 如果一条命令被某些服务器执行,那么所有服务器都会执行c




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值