一、架构

Fabric是一个permissioned blockchain system,也就是整个区块链网络的每一个peer都可以及时知道其他peer的存在。

多个peer可以组成organization,在organization内,peers之间互相信任,每一个peer都维护一份ledger的副本,ledger包含有效和无效的transaction,除此之外peer还以状态数据库的形式维护一个当前状态。

除了peer外,还有一个重要的角色是ordering service,用来给transaction排序。

二、工作流程

Fabric基本的流程包括四个阶段,分别是

  • 模拟(simulate)、
  • 排序(order)、
  • 验证(validata)、
  • 提交(commit),

如下图所示:

1. 模拟

如其名字所说的一样,这一阶段只是模拟进行交易,并不真正更新ledger。

  • client发起交易请求,请求被发送至endorsers(endorsement peer,这些peer是根据endorsement policy选出来的),
  • endorsers根据当前本地的ledger状态并行模拟进行这些交易,虽然不改变ledger状态,但是会产生一个read set和一个write set记录这个交易的影响,模拟完成后,endorser对read set和write set进行签名并将其一起返回给client。
  • 如果client收到的read set和write set是一致的(可能存在恶意endorser或者智能合约存在不确定的算法导致出现不一致),那么client就会生成一个真正的交易请求,包含read set、write set和对应的签名,并将这个请求发送给ordering service。

2. 排序

ordering service对来自client的交易进行排序,需要注意的是这里并不检查交易的内容,默认按照交易到达的顺序进行排序(这种简单的排序可能导致大量的交易冲突,降低性能,如果按某一特定的顺序排序可以极大的较少交易冲突,提高吞吐量,这也是这篇论文Blurring the Lines between Blockchains and Database Systems: the Case of Hyperledger Fabric提出的最重要的工作,这里就不细说)。

ordering service将交易排序后打包成block,发送给网络中的peers,这里不保证所有的peer同时收到这个block,但保证收到的block的顺序是一致的(使用gossip协议)。

3. 验证

当peer收到block后,就开始验证阶段。

验证阶段主要包括两个检查:

Endorsement Policy检查

检查交易是否满足endorsement policy以及是否包含有效的签名,否则说明交易可能被client或者恶意peer篡改过,直接丢弃。

交易冲突检查

检查交易之间是否存在冲突,也就是是否读脏数据的问题(某个交易在读取ledger之前,ledger被前一个交易改变了),如果存在就丢弃该交易。

A block T 1· · · T nis valid when, if a key k is read by transaction T i , then k has not been written by a transaction Tj  with j < i.

两次检查都通过的话就可以进入commit阶段了。

4. 提交

peer将block添加到链上,注意这里是所有的交易(有效的和无效的)都加进来了。然后根据有效的交易改变当前的ledger状态。

————————————————
版权声明:本文为CSDN博主「yijiull」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yijiull/article/details/94966044

Hyperledger Fabric的工作流程相关推荐

  1. Blurring the Lines between Blockchains andDatabase Systems: the Case of Hyperledger Fabric(翻译)

    Blurring the Lines between Blockchains and Database Systems: the Case of Hyperledger Fabric ABSTRACT ...

  2. Hyperledger Fabric 2.0 官方文档中文版 第3章 关键概念

    Hyperledger Fabric 2.0 官方文档中文版 第3章 关键概念 总目录 3.关键概念 引言 什么是区块链? 区块链为什么有用? 什么是Hyperledger Fabric? Hyper ...

  3. Hyperledger Fabric相关文件解析

    1相关文件说明 这一部分涉及相关配置文件的解析, 网络的启动涉及到多个文件,本文按以下顺序进行分析: . ├── base │ ├── docker-compose-base.yaml #1 │ └─ ...

  4. hyperledger fabric 实战开发——水产品溯源交易平台(二)

    文章目录 前言 一.技术学习 1.Hyperledger fabric 1.1 流程 1.2 配置 1.3 范例解析并自写 1.3 算法实现 二.Web编写 前言 hyperledger fabric ...

  5. HyperLedger Fabric 1.0的Transaction处理流程

    如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为 ...

  6. Hyperledger Fabric的网络拓扑图与交易流程

    1. Fabric中的四种节点 客户端节点 介于应用程序与底层之间,是两者之间交互的媒介节点.它不能独立存在,必须与Orderer节点与Peer节点建立连接,才可以发挥作用,比如连接到Orderer节 ...

  7. Hyperledger Fabric笔记3--BYFN启动流程分析

    Hyperledger Fabric笔记3--BYFN启动流程分析 BYFN--构建你的第一个网络,该方案提供了一个示例Hyperledger Fabric网络,该网络由两个组织组成,每个组织都维护两 ...

  8. hyperledger fabric交易流程

    首先,先简单看看上面这个交易流程图吧,下面就这个图详细的说明一下整个fabric整个交易流程: 1.区块链客户端把交易请求发给之前约定好的所有背书节点(endorsing peer).这里说明一下en ...

  9. Hyperledger Fabric SDK Go构建第一个应用

    写在前面: 本文内容翻译自:https://chainhero.io/2018/03/tutorial-build-blockchain-app-2/ ,文档中的命令操作均在实际环境进行验证,现将成果 ...

  10. HyperLedger Fabric Introduction——区块链超级账本介绍

    介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...

最新文章

  1. trunk口_什么是Trunk?Trunk详解
  2. ZStack实践汇 | ZStack部署实战之VDI异构部署
  3. 修复 Windows 10 设置界面里面混乱的语言翻译
  4. 汇编——Masm使用及程序结构
  5. 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学排名第31(2018年TFE美国排名)...
  6. USACO 2018 February Contest, Silver-Rest Stops
  7. python二分查找时间复杂度_时间复杂度 二分查找
  8. MATLAB中用李沙育图形分析光栅尺sincos信号正交性
  9. 夕阳红旅游团第三周报告
  10. 手机克隆常见问题 安卓版手机便签怎么导出
  11. java集成微信发送模板消息
  12. python3 class写法_Python抽象类的新写法
  13. 视频教程-Python数据分析案例实战 视频课程-Python
  14. 阿里云高校计划免费领取半年服务器流程
  15. idea将web项目打包成war包并部署到服务器上运行
  16. 数据库查询优化的方式
  17. Docker 初级使用
  18. linux 添加用户主目录,linux下修改用户主目录的方法
  19. pandas 中diff 一阶差分的理解
  20. 习题6-8 单词首字母大写

热门文章

  1. [置顶] 任务一 基本的数据库连接——以类为单位的编程思想
  2. 信息熵与二进制--信息论系列
  3. 《Linux性能及调优指南》 Linux进程管理
  4. PHP7 学习笔记(十二)gRPC
  5. 解决Eclipse中文乱码的问题
  6. 在电脑上安装Intel HAXM(硬件加速执行管理器)
  7. 《深入浅出struts》读书笔记(2)
  8. 小新pro13睡眠后无法唤醒_电脑休眠后,就无法唤醒了?怎么办?快速教你解决这个问题...
  9. 【大数据部落】银行信用数据SOM神经网络聚类实现
  10. 拓端tecdat|excel数据分析——贝叶斯分析预测