step1. request阶段

client发送消息给主导者:sign(REQUEST, o, t, c)

REQUEST= 消息内容m+ 消息摘要d(m)
o: 请求的具体操作
t: 请求时客户端追加的时间戳
c:客户端标识。

step2. pre-prepare阶段

主导者发送消息给其他副本节点: sign(<PRE-PREPARE, v, n, d>, m)
v:视图编号
n:预准备消息序号(要在某一个范围区间内的[h, H])

step3.
其他节点收到消息后,若同意,则发送prepared消息: sign(<PRE-PREPARE, v, n, d>, m),记录PRE-PREPARE和PREPARE消息到log,用于View Change恢复请求。

副本节点i收到主导者节点的PRE-PREPARE消息,需要进行校验:

  • 消息签名。
  • 是否已经收到一条在同一v下并且编号也是n,但是签名不同的PRE-PREPARE信息。
  • d与m的摘要是否一致。
  • n是否在区间[h, H]内。

step4.
进入prepared状态的节点,如果收到了2f+1个验证通过的PREPARE消息,则向其他节点发送commit消息:sign(COMMIT, v, n, d, i)消息。(记录COMMIT消息到日志,用于View Change恢复请求。记录PREPARE消息到log)

step5. REPLY

副本节点i收到了2f+1个验证通过的COMMIT消息,运行客户端的请求操作o,并返回<REPLY, v, t, c, i, r>

共识协议(6)PBFT详细步骤相关推荐

  1. 区块链共识协议最详细的分析

        共识机制是区块链的核心基石,是区块链系统安全性的重要保障.区块链是 一个去中心化的系统,共识机制通过数学的方式,让分散在全球各地成千上万的节点就区块的创建达成一致的意见.共识机制中还包含了促使 ...

  2. loadrunner ftp linux,loadrunner ftp协议使用详细步骤

    loadrunner ftp协议使用详细步骤 大家好,我会给大家讲解两种编写方式,手动和录制.^_^ 1.首先要了解loadrunner中几个FTP函数 在loadrunner联机帮助文档的索引中,输 ...

  3. CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码

    CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码 WEB-HTTP协议 1-请求方式 2-302跳转 3.cookie 4.基础认证 5.响 ...

  4. Cisco二层交换机协议配置详细步骤和作用

    Cisco二层交换机协议配置详细步骤和作用 以下是常见的Cisco二层交换机协议配置详细步骤和作用: 配置VLAN • 进入全局配置模式:config terminal • 创建VLAN:vlan & ...

  5. win10系统开启IPV6协议的详细步骤

    win10 64位系统上网都要涉及到很多协议,最常见的有IPV4.IPV6等.随着IPV4地址资源的枯竭,IPV6地址的应用越来越广泛.部分用户在升级到Windows 10专业版后无法正常联网,原来是 ...

  6. FastBFT共识协议:Scalable Byzantine Consensus via Hardware-assisted Secret Sharing

    文章目录 摘要 1.介绍(INTRODUCTION) 2.基础(PRELIMINARIES) 2.1状态机复制(State Machine Replication (SMR)) 2.2 Practic ...

  7. Nervos CKB 共识协议 NC-Max:突破 Nakamoto Consensus 吞吐量的极限

    带宽实际上是区块链吞吐量的最大限制,在美国旧金山举办的 Scaling Bitcoin Meetup 中,Nervos & Cryptape 研究员张韧从「带宽利用率」角度分析了诸多共识协议的 ...

  8. 链化未来共识协议详解(下)

    本系列分上下两篇,对链化未来共识协议进行详细介绍.文章首先介绍了常见共识协议的PoW,PoS,DPoS,从而引出了链化未来基于BFT的随机PoS共识算法(RPoS),随后详细介绍了链化未来共识协议的架 ...

  9. RedHat RHEL7.2系统的详细步骤(图文)

    vmware12中安装 RedHat RHEL7.2系统的详细步骤(图文) 这篇文章主要介绍了VM12中安装 RedHat RHEL7.2系统的详细步骤(图文),小编觉得挺不错的,现在分享给大家,也给 ...

最新文章

  1. 在请求完成后回调delegate的方法。然而回调时经常遇到这种情况:delegate已经被释放...
  2. mysql8.11安装_MySQL-mysql 8.0.11安装教程
  3. linux 网卡配置不一致,linux环境下,双网卡配置不同网段后,路由问题
  4. Linux crond实例
  5. spring jdbctemplate调用存储过程,返回list对象
  6. SQL SERVER 事务处理
  7. mysql 前缀索引 语法_PHP 之Mysql优化
  8. wxpython控件如何自动调整大小_wxpython:自动调整静态图像(staticbitmap)的大小以适应大小...
  9. 【Makefile由浅入深完全学习记录6】Makefile中变量的高级主题上
  10. Ansible 起步指南
  11. BotVS开发基础—2.4 获取订单、取消订单、获取未完成订单
  12. [Leetcode] 70. Climbing Stairs Java
  13. 32 开漏输出 高电平_MCU输入输出端口设置
  14. html中半圆怎么写,html 中画半圆的方法
  15. c++实现解释器模式完整源代码
  16. php ean13,php生成EAN_13标准条形码实例
  17. DAOS整体设计分析 (一)
  18. ios html5 audio mp3,H5 audio 微信端 在IOS上不能播放音乐
  19. Fping命令批量ping地址
  20. Beta测试与Alpha测试的区别?

热门文章

  1. 图的遍历:BFS和DFS
  2. org.hibernate.transientobjectexception:The given object has a null identifier: com.gxuwz.check.entit
  3. 13张图看懂综合类数据中心机房建设标准!
  4. 成功解决type object ‘h5py.h5.H5PYConfig‘ has no attribute ‘__reduce_cython__‘
  5. C++:C++语言入门级基础知识考察点回顾之函数、结构体和类
  6. Dataset之BDD100K:BDD100K数据集的简介、下载、使用方法之详细攻略
  7. TF之p2p:基于TF利用p2p模型部分代码实现提高图像的分辨率
  8. Keras之Mask R-CNN:《极限挑战》第四季第2期助力高考—使用Mask R-CNN代替Photoshop抠图、颜色填充框出目标检测/图像分割/语义分割
  9. 成功解决当Win10系统进行深度学习的时候发现系统C盘满了,教你如何正确卸载一些非必要的内容
  10. DL之YoloV2:Yolo V2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略