区块链
文章平均质量分 58
分布式共识,区块链
Deapou
这个作者很懒,什么都没留下…
展开
-
PBFT(六):checkpoint 、stable checkpoint和高低水位
什么是 checkpoint 呢? checkpoint 就是当前节点处理的最新请求序号。前文已经提到主节点收到请求是会给请求记录编号的。比如一个节点正在共识的一个请求编号是101,那么对于这个节点,它的 checkpoint 就是101。那什么是 stable checkpoint (稳定检查点)呢?stable checkpoint 就是大部分节点 (2f+1) 已经共识完成的最大请求序号。比如系统有 4 个节点,三个节点都已经共识完了的请求编号是 213 ,那么这个 213 就是 stable ch原创 2021-04-08 17:29:19 · 620 阅读 · 0 评论 -
PBFT(五):client为何只需要f+1个相同的回复就可确认?
之前我们说,prepare和commit阶段为何都要2f+1个节点反馈,才能确认。client只需要f+1个相同的reply就可以了呢?我们还是来考虑最坏的情况,我们假设这f+1个相同的reply中,有f个都是恶意节点。所以至少有一个rely是正常节点发出来的,因为在prepare阶段,这个正常的节点已经可以保证prepared(m,v,n,i)为真,所以已经能代表大多数的意见,所以,client只需要f+1个相同的reply就能保证他拿到的是整个系统内“大多数正常节点“的意见,从而达到一致性。...原创 2021-04-08 17:28:00 · 517 阅读 · 0 评论 -
PBFT(四):prepare和commit阶段为何都要2f+1个节点反馈确认?
对于prepare和commit来说,节点需要在2f+1个状态复制机的沟通内就要做出决定,这是刚好可以保证一致性的,考虑最坏的情况:我们假设收到的有f个是正常节点发过来的,也有f个是恶意节点发过来的,那么,第2f+1个只可能是正常节点发过来的。(因为我们限制了最多只有f个恶意节点)由此可知,“大多数”正常的节点还是可以让系统工作下去的。所以2f+1这个参数和n>3f+1的要求是逻辑自洽的。还有网上的另一个证明,但是其实也是一个意思:某副本收到f+1个相同的反馈确认,如果这f+1个反馈中包含faul原创 2021-04-08 16:54:00 · 1036 阅读 · 1 评论 -
PBFT(三):为什么PBFT算法只能容忍(n-1)/3个作恶节点?
高级的说法: http://qyuan.top/2019/08/13/pbft-1/节点总数是n,其中作恶节点有f,那么剩下的正确节点为n - f,意味着只要收到n - f个消息就能做出决定(所以后面要对f做出限定条件),但是这n - f个消息有可能由f个是由作恶节点(作恶节点也可以什么都不干)冒充的,那么正确的消息就是n - f - f(最恶劣的情况下)个,为了多数一致,正确消息必须占多数,也就是n - f - f > f但是节点必须是整数个,所以n最少是3f+1个。或者可以这样理解,假定f个节原创 2021-04-08 16:31:47 · 2426 阅读 · 0 评论 -
PBFT(二):主节点与副本节点的关系
这一段怎么理解:PBFT是一种状态机副本复制算法,所有的副本在一个视图(view)轮换的过程中操作,主节点通过视图编号以及节点数集合来确定,即:主节点 p = v mod |R|。v:视图编号,|R|节点个数,p:主节点编号。PBFT算法中节点只有两种角色,主节点(primary)和副本(replica),两种角色之间可以相互转换。两者之间的转换又引入了视图(view)的概念,视图在PBFT算法中起到逻辑时钟的作用。解决:所以说副本节点并不是,将整个状态机进行复制,而是一个实实在在的节点。引用:原创 2021-04-08 16:08:10 · 1541 阅读 · 0 评论 -
PBFT(一):过程
PBFT 算法的基本流程主要有以下四步:客户端(不是主节点)发送请求给主节点(PBFT算法只是在各个服务器节点上运行的)主节点广播请求给其它节点,节点执行 pbft 算法的三阶段共识流程。节点处理完三阶段流程后,返回消息给客户端。客户端收到来自 f+1 个节点的相同消息后,代表共识已经正确完成。(要注意各个阶段确认消息的数量)下面介绍 pbft 算法的核心三阶段流程,如下图所示:算法的核心三个阶段分别是pre-prepare 阶段(预准备阶段)prepare 阶段(准备阶段)com原创 2021-04-08 16:05:31 · 2433 阅读 · 0 评论 -
Paxos
简介Paxos 其实是一类能够解决分布式一致性问题的协议,它能够让分布式网络中的节点在出现错误时仍然保持一致;Leslie Lamport 提出的 Paxos 可以在没有恶意节点的前提下保证系统中节点的一致性,也是第一个被证明完备的共识算法,目前的完备的共识算法包括 Raft 本质上都是 Paxos 的变种。作为一类协议,Paxos 中包含 Basic Paxos、Multi-Paxos、Cheap Paxos 和其他的变种Basic PaxosBasic Paxos 是 Paxos 中最为基础的协原创 2021-02-11 15:58:10 · 431 阅读 · 0 评论 -
拜占庭将军问题
大致:在 存在消息丢失的不可靠信道上 试图通过 消息传递 的方式达到 一致性 是 不可能 的来源由于当时拜占庭罗马帝国国土辽阔,为了达到防御目的,每个军队都分隔很远,将军与将军之间只能靠信差传消息。在战争的时候,拜占庭军队内所有将军和副官必须达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜原创 2021-02-06 21:10:42 · 499 阅读 · 0 评论