PBFT算法的相关问题

PBFT(99、02年发了两篇论文)-从开始的口头算法(指数级)到多项式级

要求 n>3f

why:

  个人简单理解:注意主节点是可以拜占庭的,从节点对于(n,v,m)的投票最开始也是基于主节点给的(n,v,m)。那么N个中其实有f个拜占庭,以及f个可能被拜占庭节点影响的好节点(好节点可能没收到所有应答或者收到了来自拜占庭的错误应答,为什么不能超过f?因为超过f+1可以触发视图更改),所以最后只剩下N-2f,必须大于f(f个可能的来自拜占庭节点的决策)

  prepare阶段保障的是safety,确保至少有f+1个好节点收到了同样的(n,v,m)的投票,commit阶段其实为了保障liveness,保证至少f+1个好节点对于同样的(n,v,m)已经达到了确认提交,提交意味着执行,所以视图变更时,这些已经提交的操作必须传递到下一个视图,不然就得回滚(回滚是复杂的)。所以viewchange的quorum也是2f+1,保证了f+1个好节点与之相交至少存在1个好节点会正确传递上一视图的所有已提交信息,保证了liveness。

  所以quorum都是2f+1是因为这里面f个应答可能是来自拜占庭节点的

原文地址:https://www.cnblogs.com/zhang-qc/p/8692848.html

时间: 2024-07-31 15:29:05

PBFT算法的相关问题的相关文章

PBFT算法java实现

PBFT 算法的java实现(上) 在这篇博客中,我会通过Java 去实现PBFT中结点的加入,以及认证.其中使用socket实现网络信息传输. 关于PBFT算法的一些介绍,大家可以去看一看网上的博客,也可以参考我的上上一篇博客,关于怎么构建P2P网络可以参考我的上一篇博客. 该项目的地址:GitHub 使用前的准备 使用maven构建项目,当然,也可以不使用,这个就看自己的想法吧. 需要使用到的Java包: t-io:使用t-io进行网络socket通信,emm,这个框架的文档需要收费(699

算法基础课相关代码模板

算法基础课相关代码模板 活动链接 -- 算法基础课 快速排序算法模板 -- 模板题 AcWing 785. 快速排序 void quick_sort(int q[], int l, int r) { if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { do i ++ ; while (q[i] < x); do j -- ; while (q[j] > x);

对PBFT算法的理解

PBFT论文断断续续读了几遍,每次读或多或少都会有新的理解,结合最近的项目代码,对于共识的原理有了更清晰的认识.虽然之前写过一篇整理PBFT论文的博客,但是当时只是知道了怎么做,却不理解为什么.现在整理下思路,写一篇关于PBFT的理解. 1. 前提假定 1.1 同步模型 在分布式系统中谈论共识,首先需要明确系统同步模型是synchrony,asynchrony还是partial synchrony? synchrony: 节点所发出的消息,在一个确定的时间内,肯定会到达目标节点: asynchr

&lt;密码学入门&gt;关于DES加密算法解密算法及相关问题

题外话:个人觉得DES加密解密真的是一种过程冗长的方法,S盒,P盒还有各种各样的变换让人眼花缭乱. (一)Feistel密码结构 要先说Feistel密码结构的原因是DES加密过程是和Feistel密码结构完全一致的. Feistel密码结构首先要将待加密的部分分为左右R0,L0,下一步的操作是将L0不做处理直接传递给R1,R0首先要经过一个轮函数F(Rx,Kx)的处理之后再和L0的每一位进行半加操作,一般情况下,在左右两部分不断交换的过程中,子密钥Kx也会不断地发生变化,实质上是使F(Rx,K

数据挖掘之决策树算法ID3算法的相关原理

ID3决策树:针对属性选择问题,是决策树算法中最为典型和最具影响力的决策树算法. ID3决策树算法使用信息增益度作为选择测试属性. 其中p(ai) 表示ai 发生的概率. 假设有n个互不相容的事件a1,a2,a3,-.,an,它们中有且仅有一个 发生,则其平均的信息量可如下度量: 对数底数可以为任何数,不同的取值对应了熵的不同单位. 通常取2,并规定当p(ai)=0时 =0 Entropy(S,A)=∑(|Sv|/|S|)* Entropy(Sv)公式2 以去不去打羽毛球为例子 A:属性:out

算法的相关资料

关于算法的一些资料 A.书籍类 1.[ACM国际大学生程序设计竞赛题解].赵端阳,袁鹤.高清文字版 2.C语言经典算法100例(省纸版) 3.程序设计导引及在线实践 4.程序员编程艺术系列之经典算法研究 5.十五个经典算法研究与总结.目录+索引 6.数据结构(应用游戏) 7.数据结构完稿 刘喜勋编 8.算法竞赛入门经典完整版(白皮书) 9.算法竞赛入门经典训练指南 10.算法设计与分析(第2版) 链接: http://pan.baidu.com/s/1kTWHYZH 密码: ryr1

排序算法的相关问题

 排序算法的稳定性问题 之前笔试.面试时,一直问到关于常见排序算法的稳定模型问题,有时候还往往是多选,虽然之前曾看到好多这样的问题,可还是每一次都拿捏不准.在此总结一下,希望能够有所收获. 首先,排序算法的稳定性大家都应该知道,通俗地讲就是能够保证排序,2个相等的数其在序列的前后顺序和排序后他们两个的前后位置顺序相同.再简单形象点,如果Ai=Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前. 其次,说一下稳定性的好处.排序算法如果是稳定的,那么从一个键上排序,然后再从另外一个键上排序,第一个

81.视频图像去噪滤波算法的相关介绍

一.为什么要去噪 图像去噪是数字图像处理中的重要环节和步骤.去噪效果的好坏直接影响到后续的图像处理工作如图像分割.边缘检测等.图像信号在产生.传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生).椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等:所以前端的滤波没做好的话,会给后端的图像处理带来很多的麻烦,其实它最终的反应是图像在显示器上给人的视觉效果,我们要针对不同的应用达到最大优化. 二.怎么去噪 纵观网上

顾广华白细胞图像的自动分割算法的相关改进

1.以寻找极点为基础,参考半径根据终止条件(质心是否改变)进行动态的改变,如不变并且还存在至少3个以上的极点,就需增大参考半径,以使因为参考半径太小而被丢弃的正确极点,重新处于有效状态. 2.当出现凹进去的区域时,可以通过圆形度增大和极值点变少两个条件,有效的去除凹进去的那个极值点,因为若选择了凹进去的极值点,圆形度几乎不会增大并且极值点也不会减少,根据此就可以排除凹进去的极值点,因为如果选择了外面正确的极值点,凹进去的极值点和外面两个极值点就会消失,从而在极值点方面就至少会少3个,圆形度自然也