• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链
您的位置:首页 > 网络安全 >区块链 > 基于以太坊的联盟链?Quorum机制初探(中)

基于以太坊的联盟链?Quorum机制初探(中)

作者:说点区块儿 字体:[增加 减小] 来源:互联网 时间:2018-11-03

说点区块儿向大家分享了基于以太坊的联盟链?Quorum机制初探(中),其中包含以太坊联盟链,Quorum机制等知识点,遇到此问题的同学们可以参考下

Quorum的共识机制

截止当前(2017年12月5日),Quorum前后用过两套共识算法:QuorumChain Consensus 和 Raft-Based Consensus。QuorumChain 是一种基于投票机制的共识算法,其利用以太坊的智能合约来实现投票和共识。Raft-based 则是在 Raft Consensus 算法基础上做了针对 Quorum 的修正。在 Quorum 1.2 之前的 Release 版本都采用了 QuorumChain。从 2.0 版本开始,Quorum 废弃了 QuorumChain 转而只支持 Raft-based Consensus。在这里我们任然会介绍 QuorumChain 的共识方式,以方便大家了解和比较。

QuorumChain Consensus

QuorumChain Consensus 是一个基于投票的共识算法。其主要特点有:

  • 通过智能合约来实现和管理共识。
  • 用以太坊Transaction的形式来完成网络上投票的动作。
  • 用以太坊的签名校验机制来校验来自Maker和Voter节点的签名。

在 QuorumChain 中,有三种身份 Maker, Voter, Observer。身份有 Maker 的节点有权利打包交易并生成区块。其他节点收到区块后会查看区块头里的 Maker 签名,校验生成此区块的节点是否拥有 Maker 身份。拥有 Voter 身份的节点可以为收到的区块投票。一个区块只有收到一定数量的投票后才能被所有节点校验通过。Observer 身份没有任何特殊的权限,只能做一个记录区块的节点。

一个节点可以同时拥有 Maker 和 Voter 身份。

Voting Smart Contract

QuorumChain 是由一个 Solidity 实现的 BlockVoting 智能合约实现的(合约源码)。在 Quorum 客户端被创建的时候,这个合约会被编译并存储到创世区块中。如果想修改投票的机制,则需要在 Quorum 客户端启动前重新编译新的 Solidity 代码。在BlockVoting中,合约提供了 addVoter, removeVoter, addBlockMaker, removeBlockMaker 等方法来增减 Voter 和 Maker。

当一个节点收到新的区块时,节点就会呼叫 Voting 合约,来确认上一轮区块的投票结果。这个结果将决定这个新区块将会连接到哪个区块上。

Maker Nodes

Maker 节点主要用来打包交易并生成区块。所有 Maker 节点的地址信息都会被注册在 BlockVoting 合约中。在 BlockVoting 合约中,必须至少存在一个注册在案的 Maker。在 Quorum 刚搭建的时候,Maker 节点的信息是被预设置在 genesis.json 中的。但是在网络运行过程中,可以通过 BlockVoting 合约中的特定方法来增删 Maker 节点。

Maker 节点同时也可以作为 Voter 节点存在。

Voter Nodes

Voter 节点的主要职责是给新生成的合法区块投票。和 Maker 一样,Voter 也会在网络启动的时候根据 genesis.json 中的预设配置进行初始化。同样,在网络运行过程中 Voter 可以通过 BlockVoting 合约来增删。Voter 节点可以给同一区块链深度的区块投票。在某一深度上,得票最多的区块就会成为链上该位置的区块并被整个网络共识。

Block Creation

在 QuorumChain 中,可以同时存在多个 Maker 节点。每个节点都会维护一份自己的随机时间。当这个随机时间到了以后,且这个 Maker 没有收到其他 Maker 生成区块的消息,那么它就会打包交易并生成区块。一旦生产区块这个动作开始,Maker 就会向网络上广播,告诉别的节点自己已经开始产块了。同时,刷新自己的随机时间,等待下一轮区块生成。对于别的节点,一旦收到这个有节点开始产块的消息,就立刻刷新自己的随机时间,等待时间读秒结束后开始产块。

当一个 Maker 节点准备生成新的区块时,它会校验本地的链上的最后一个区块的合法性。通过调用 BlockVoting 合约中的方法得到上一轮投票中获得投票最多的区块的HASH,然后对比这个 HASH 和本地最后一个区块的 HASH 是否有区别。如果两者一致,则表示本地的链没有问题,然后就可以把新的区块连接到本地的链上并广播出去。如果两者不一致,则本地的链不对。本地的最后一个区块并不是上一轮获得 Voter 投票最多的区块。生成区块的步骤将被终止。步骤可以参考下图:

Block Voting

在 QuorumChain 中,每一个周期区块的共识都包括:区块生成 -> 区块广播 -> 区块校验 -> 区块投票 这样一个流程。根据上面提到的区块生成机制,虽然可能性很小,但是还是会有一定几率出现两个 Maker 同时生成区块。为了解决这种情况,QuorumChain 推出了投票的机制。假设当前是第 n 轮区块共识过程。身份为 Voter 的节点收到新的区块后会首先校验区

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于以太坊的联盟链?Quorum机制初探(中)
  • 基于以太坊的联盟链?Quorum机制初探(上)

相关文章

  • 2018-11-03中国赚钱的方式已经彻底变了
  • 2018-11-03BCOS平台的行业应用实践
  • 2018-11-03什么是ICO(区块链众筹)?
  • 2018-11-03IBO的金融原理和应用方向分析
  • 2018-11-03黄金的历史告诉我们比特币作为价值储备的理由是什么
  • 2018-11-03区块链能解决“物联网”的问题吗?
  • 2018-11-03安全代币中的安全和隐私协议
  • 2018-11-03Qtum量子链研究院:闪电网络
  • 2018-11-03IOTA(埃欧塔)钱包使用教程
  • 2018-11-03如何从加密货币里获得被动收益

文章分类

  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链

最近更新的内容

    • BTC.com矿池-挖矿配置详细教程
    • 椭圆曲线——保障用户隐私的神奇加密算法
    • 蚂蚁S9 Hydro 矿机使用说明
    • 如何生成以及注册EOS公钥
    • 科普 | 非技术宅的区块链简介: 1.共识
    • OKEx解读合约的逐仓与全仓保证金区别
    • 挖矿生态系统的简单指南——GPU、矿池和合并挖矿
    • 稳定币的不稳定性
    • 升级您的以太坊智能合约的最佳实践
    • TGIC手机APP钱包使用详细指南

关于我们 - 联系我们 - 免责声明 - 网站地图

©2015-2018 All Rights Reserved. 微课江湖 版权所有