前面几个博客文章已经介绍了这三种BFT共识技术,其中PBFT是比较早的实用BFT算法。Aardvark/RBFT都是在其之上的改进。
以下说明差异:

共识协议:

  • PBFT: 采用三阶段算法保证节点之间的一致性。
  • Aardvark:同PBFT。
  • RBFT:在PBFT的基础上前置了PROPAGATE阶段且client需要广播消息而不是只给“primary”,用以保证好的replica一定能够收到请求。

view change:

  • PBFT: 从节点有timer来监控请求的执行。如果timer超时,则会认为primary有问题,触发view change。
  • Aardvark replica会监控节点性能。1、primary需要满足最低吞吐量阈值,而replica会逐渐增加这个阈值,最终使primary无法满足而触发view change。2、replica有timer,会监听pre-prepare消息,如果超时也会触发view change。
  • RBFT: 通过replica监控来触发:1、master的吞吐量比backup的平均吞吐量低超过阈值。2、每条请求有最大执行时间。3、client在不同的replica之前的请求时间差异阈值。满足之上的3个任意一个都会触发view change。view change 会改变所有的实例primary。

与PBFT比的创新点:

  • Aardvark 网络分隔(多网卡),独立队列、轮询获取请求、MAC-签名混合验证、p2p技术取代广播、重试碰撞规避、cache、黑名单等机制,更主动的view change策略。
  • RBFT 多线程模型执行多个PBFT实例,协议上增加PROPAGATE阶段需要client广播请求。同样采用MAC-签名混合验证黑名单等机制。view change策略改变。

PBFT/Aardvark/RBFT差异相关推荐

  1. 【问链-区块链基础知识系列】 第十课 首席架构师谈区块链技术演进

    一.区块链和比特币,都有"币-链-网"三层含义 1.第一层含义是"币".这个"币"并不是刚才王行长所说的真正意义上的"货币&quo ...

  2. 中国的区块链技术,究竟发展到哪里了?

    作者 | 刘为怀 责编 | 胡巍巍  背景 区块链在本质上,是一个共享.可信的公共总账,任何人都可以对它进行核查,但不存在一个单一的用户可以对它进行控制.在区块链系统中的参与者们,会共同维持总账的更新 ...

  3. 拜占庭共识算法RBFT:Redundant Byzantine Fault Tolerance

    最近在研究拜占庭共识,做个记录吧,有些可能也没理解透. RBFT : Redundant Byzantine Fault Tolerance 论文地址:http://lig-membres.imag. ...

  4. 拜占庭共识机制Aardvark介绍

    撸了一整天Aardvark,总结记录一下,可能有些地方理解的也不是很到位. Aardvark: http://static.usenix.org/events/nsdi09/tech/full_pap ...

  5. 以太坊和Hyperledger Fabric之间的差异

    在这篇文章中,我们将介绍区块链中两个主要平台之间的差异:以太坊和Hyperledger.如果你正在考虑在项目中使用哪一个.这个博客的亮点是希望帮助你做出决定.但在我们详细说明之前,我们先来看一些定义. ...

  6. 国内与国外区块链关键技术现状及差异

    国内外区块链发展几乎同时起步,从全球来看,全球区块链发展正从全面否定与全面推崇的感性认识趋于理性认识,国外内都更加专注于探索区块链潜在的应用价值和商业模式.然而,国内外针对区块链技术的发展重点.部署策 ...

  7. 如何评估两张图片的差异

    如何评估两张图片的差异 方法一,图像直方图比较 就像人的指纹一样,没有哪两张的照片的直方图会是一样的(拍摄的图片),所以只要将两张图片拉倒ps里面看直方图就可以了. 方法二,DiffImg 方法三,I ...

  8. Go 学习笔记(11)— 切片定义、切片初始化、数组和切片差异、字符串和切片转换、len()、cap()、空 nil 切片、append()、copy() 函数、删除切片元素

    1. 切片定义 Go 语言切片是对数组的抽象. Go 中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容 ...

  9. 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较

    1: /// <summary> 2: /// 对比两个同类型的泛型集合并返回差异泛型集合 3: /// </summary> 4: /// <typeparam nam ...

最新文章

  1. Python检查系统可疑用户
  2. linux命令dmesg查看进程被杀死原因
  3. [保护模式]段间跳转和跨段跳转
  4. Codeforces Round #394 (Div. 2) A. Dasha and Stairs 水题
  5. [LeetCode] Invert Binary Tree - 二叉树翻转系列问题
  6. 总结4:input文本输入框自动提示
  7. stl源码剖析_《STL源码剖析》学习笔记
  8. MacOs中Docker与宿主机网络互通问题解决
  9. 如何在小程序里面放入企业官网
  10. CocosCreator物理引擎Demo源码分析(1)-infinite-world
  11. c语言汉字转拼音,c语言汉字转拼音函数源码
  12. 详细总结卡尔曼滤波原理+具体案例分析
  13. 微信小程序转发功能详解
  14. matlab拟合度R方,...1),问题是什么是拟合优度?、R^2大于多少说明拟合度很好,R^2在...-拟合度-数学-冀群是同学...
  15. excel如何在选定区域内跳过空值自动编号
  16. 如何在Win10中使用Windows图片查看器打开图片
  17. 单链表上的直接插入排序
  18. iis7.0官方下载 IIS 7.0(微软Web服务器组件IIS 7.0) 官方(windows 2003,XP,2000)
  19. 如何取消excel密码_办公软件操作技巧020:如何给excel工作表设置密码
  20. brew Error: Cask ‘adoptopenjdk8‘ is unreadable

热门文章

  1. 威客怎样选合适的任务
  2. 【COCI2013】slasticar
  3. Python3 教你如何写一个登录器
  4. Elasticsearch 用Monitoring和Alerting监控Elasticsearch集群
  5. KubeSphere(v3.1.1)学习---KubeSphere介绍和基于K8S的安装
  6. Hard Life poj3155
  7. Camtasia Studio2022简体中文安装激活教程
  8. 34213-34-8,Methyl 2,3,4-Tri-O-acetyl-β-D-glucuronic Acid Methyl Ester,甲基 2,3,4-三-O-乙酰基-β-D-葡萄糖醛酸甲酯
  9. Web前端-JavaScript--jQuery
  10. 软件工程课程团队项目——第3、4周开发日志