Transaction Flow
本文件概述了在标准资产交换期间发生的交易机制。该方案包括两个clientA和B,他们购买和销售萝卜。他们分别在网络上有一个peer,通过peer发送他们的交易并与账本交互。

假设
此流程假定通道已设置并运行。应用程序用户registe并向组织的证书颁发机构(CA)enroll,并收回了必要的加密材料,用于向网络进行身份验证。

Chaincode(包含表示萝卜市场初始状态的一组键值对)被安装在peer上并在channel上实例化。Chaincode包含了定义一组交易指令和商定的萝卜价格的逻辑。Endorsement策略也被定为chaincode,指出peerA和对等体peerB必须支持任何交易。

Transaction Flow
Client A 初始化一个交易
Endorsing peers验证签名并执行交易
Proposal回应被检查
Client将endorsement装配到交易中
交易被验证并提交
账本更新
1. Client A 初始化一个交易

发生了什么? - 客户端A发送购买萝卜的请求。请求目标peerA和peerB谁分别代表clientA和clientB。Endorsement策略规定两个peer必须签署任何交易,因此请求转到peerA和peerB。

接下来,构建交易proposal。利用支持SDK(node,java,python)的应用程序使用可用的API之一来生成交易建议。该proposal是调用chaincode函数的请求,以便可以将数据读取和/或写入账本(即为资产写入新的键值对)。SDK用作中间件(shim),将交易proposal打包为适当的架构的格式(通过gRPC的协议缓冲区),并采用用户的加密凭证为该交易建议生成唯一的签名。

2. Endorsing peers验证签名并执行交易

Endorser验证1)交易proposal正确的组织,2)交易在之前并没有被提交(重访攻击保护),3)签名的合法性(使用MSP),4)提交者(示例中的客户端A)被正确地授权在该channel上执行建议的操作(即,每个endorser确保提交者满足channel的Writer策略)。Endorser将交易proposal作为输入invoked的chaincode的函数的参数,并针对当前状态数据库执行它们以产生包括响应值,读集和写集的交易结果。此时不会更新账本。这些值的集合,以及支持peer的签名和YES / NO认可语句作为“建议响应”传递回SDK,该SDK解析用于应用消费的有效载荷。

{MSP是在peer上运行的本地进程,它允许它们验证从客户端到达的交易请求并签署交易结果(endorsement)。ACL(访问控制列表)在信道创建时定义,并确定允许哪些对等端和最终用户执行某些操作。}

3. Proposal回应被检查

应用程序验证endorser签名并且比较proposal的响应(链接到包含有效载荷的表示的词汇表术语)以确定proposal响应是否相同以及是否已经满足指定的endorsement策略(即,是否peerA和peerB两者都endorse)。该架构使得即使应用程序选择不检查响应或以其它方式转发未endorsed的交易,该策略仍然将由peer实施并且在提交验证阶段被维护。

4. Client将endorsement装配到交易中

应用程序将“交易消息”中的交易proposal和响应“广播”到排序服务。交易将包含读/写集合,被承认的peer签名和channel ID。Ordering服务不会读取交易详细信息,它只是从网络中的所有渠道接收交易,根据channel安时间顺序对其进行排序,并为每个渠道创建交易块。

5. 交易被验证并提交

交易块被“传递”到信道上的所有peer。块内的交易被验证以确保endorsement策略被满足并且确保账本的read集变量状态没有改变,因为read集是由交易执行生成的。块中的交易标记为有效或无效。

6. 账本更新
每个peer将块附加到channel的链,并且对于每个有效交易,write集被提交到当前状态数据库。发出事件以通知客户端应用程序交易(调用)已被不可变地附加到链,以及通知交易是否被验证或无效。

Hyperledger Fabric 交易流程相关推荐

  1. HyperLedger Fabric 交易流程

    在生产环境中,一个最小的Fabric联盟链网络由4个结点组成,如下图: 为了避免单点故障,进行结构冗余,每个节点的角色安排如下: · 192.168.1.120 peer1, orderer1, zo ...

  2. hyperledger fabric交易流程

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

  3. hyperledger fabric 交易结构以及解析

    Fabric 1.0源代码分析(43) Tx(Transaction 交易)_yinchengmvp的技术博客_51CTO博客 Hyperledger Fabric的区块结构 交易结构Hyperled ...

  4. Fabric交易流程

    本文概述了资产交易过程中的事务机制.该场景包含客户A和B,在进行萝卜买卖.他们各自有一个网络节点,通过节点他们发送交易并和账本进行交互. 该流程假设通道已建立并正常运行.用户已注册并使用组织认证授权( ...

  5. Hyperledger Fabric on SAP Cloud Platform(SAP云平台上的超级账本简介)

    今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva ...

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

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

  7. 深度探索Hyperledger技术与应用之超级账本的典型交易流程

    上一篇分享了超级账本的系统逻辑架构和网络节点架构,本篇主要分享超级账本的典型交易流程. 1 典型交易流程 下图所示为Hyperledger Fabric 1.0典型的交易流程图. 从上一节的网络节点架 ...

  8. Hyperledger Fabric从源码分析交易

    在上一章Hyperledger Fabric从源码分析区块结构中提到了区块的概念,并从源码角度对区块的结构进行了剖析,知道一个简单的区块包含了下面几个部分 BlockHeader, 区块头 Block ...

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

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

最新文章

  1. AS插件-Android Parcelable code generator.
  2. cmake的使用--目标的编译附源码
  3. 转:10个常见的 Android 新手误区
  4. 编程环境中Runtime(运行时)的三个含义
  5. 新建Mybatis工程
  6. 希尔排序是一种稳定的排序算法_排序算法—希尔排序
  7. [DFS|剪枝] leetcode 22 括号生成
  8. mvc% html.%,MVC的html.doc
  9. android 终端 核心,android模块/核心板用于手持终端应用,选几米物联。
  10. vue 下载文档乱码
  11. 怎么给ChemDraw反应式添加分数系数
  12. 聚焦Java性能优化 打造亿级流量秒杀系统【学习笔记】09_防刷限流技术
  13. Android 接入穿山甲SDK之开屏广告
  14. Swift\本地文件管理
  15. Qt 配置使用IPP库
  16. Kali下卸载程序和安装程序的方法
  17. opencv-Python 目标跟踪(一)《Meanshift算法、Camshift算法》
  18. 如何将Word文件转化为Latex文件:word-to-latex-2.56详解
  19. 机器学习算法--逻辑回归原理介绍
  20. 电子商务15条营销方式汇总

热门文章

  1. C++中的private protected public区别
  2. 专业的LaTeX: 在Linux下编写高质量的文档
  3. NewRandomAccessFile failed to Create/Open问题解决
  4. keras 自定义评估函数和损失函数loss训练模型后加载模型出现ValueError: Unknown metric function:fbeta_score
  5. 【云炬大学生创业基础笔记】第1章第4节 为什么需要创业测试
  6. xp 无线连接 服务器,NPS配置无线策略XP能正常连接,WIN连接不成功
  7. MFC子对话框初始化问题_从一个“断言”报警说起
  8. 【MFC】1.Windows程序内部运行原理
  9. Delphi如果要追赶C#,最应该做的
  10. Nhibernate 对view 查询的几种方法