超级账本的共识机制

Fabric中的共识机制主要分为三步

  • 交易背书 - 模拟执行交易并进行签名,将结果返回给提交者
  • 交易排序 - 排序节点接收已经背书的交易,并对交易进行排序,将排好序的交易进行打包,生成区块,并分发给各组织的主节点(Anchor)。
  • 交易验证 - 验证交易是否有效

交易排序

对交易进行排序的目的是为了保证系统交易顺序的一致性(有限状态机)
Fabric中有两种排序方式,Solo和Kafuka

区块分发

排序节点的区块分发是数据中间状态的区块,并不是实实在在存储在Peer中的区块,是否存储区块要经过Peer的验证后才决定。Orderer节点并不保证区块交易的有效性,它只负责打包

多通道数据隔离

排序节点在收到交易提议时,会根据通道类型分别打包,不同通道的数据互不影响,互不相通。Peer收到不同通道的区块时,也会独立存储,从而达到数据隔离。

世界状态

  • 世界状态是交易执行后所有区块的最新数据
  • 世界状态是区块链的一个快照,可以随时通过区块重新构造
  • 提升链码执行效率

历史数据索引

如果智能合约需要查询历史数据,则需要开启这个功能。历史数据索引只记录改变操作,不记录改变了什么。

区块存储

  • 命名为blockfile_xxx
  • 一个区块64M,硬编码
  • 一个账本(一条链)最大容量 64M * 1000000(区块编号最大值)

区块读取

  • 区块文件流
  • 区块流
  • 区块迭代器

区块索引

  • 快速定位区块
  • 索引建可以是区块高度,区块哈希,交易哈希
  • 索引值是 区块文件编号 + 文件内容偏移 + 区块数据长度
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 接触区块链的童鞋都知道比特币或者说以太坊,但是了解超级账本(Hyperledger)的肯定不多。在区块链的世界观里...
    思想黑客阅读 1,209评论 0 0
  • 共识机制 什么是共识机制 区块链作为一个去中心化的分布式账本系统,然而在实际运行中,怎么解决因为去中心化后,保证整...
    HeartGo阅读 3,054评论 0 1
  • 转载声明:本文来自微信公众号:火龙果园长,仅供学习交流,禁止用于商业用途,转载需关注公众号取得文章作者同意。 写在...
    火龙果园长阅读 7,387评论 0 18
  • DATx是针对当前广告行业的再一次创新运动,致力于建立一个以去中心化为基石,以人工智能为引擎的新型智能广告生态系统...
    呵呵哒_81bd阅读 750评论 0 0
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 4,340评论 0 13