Hyperledger Fabric Transaction Flow——事务处理流程
Transaction Flow
本文概述了在标准资产交换过程中发生的事务机制。这个场景包括两个客户,A和B,他们在购买和销售萝卜(产品)。他们每个人在网络上都有一个peer,通过这个网络,他们发送自己的交易,并与Ledger(账本总账)进行交互。

假设,这个flow有一个channel被设置并运行。应用程序客户端已经注册并注册了该组织的证书颁发机构(CA),并获得了必要的加密材料,用于对网络进行身份验证。
chaincode(包含一组表示萝卜市场的初始状态的键值对)被安装在peers上,并在channel上实例化。chaincode包含定义一组事务指令的逻辑,以及一个萝卜商定的价格。该chaincode也已确定了一个背书策略,即peerA和peerB都必须支持任何交易。

1.客户端A发起事务
事务的发生过程——客户A正在发送一个请求来购买萝卜。该请求的目标是peerA和peerB,它们分别代表客户A和客户B。背书策略规定,双方都必须认可任何交易,因此请求将被发送到peerA和peerB。
接下来,将构造事务协议。使用任何一个被HyperLedger Fabric支持的SDK(node、Java、Python)的应用程序创建一个可用的API来生成一个事务协议。协议是请求调用chaincode函数,以便可以读取和/或写入数据(例如,为资产编写新的键值对)。SDK作为一个shim来将事务协议打包成适当的格式(在gRPC上的协议缓冲区),并使用用户的加密凭证来为这个事务协议生成一个惟一的签名。

2.背书peers验证签名并执行事务
背书peers验证内容:(1)事务的协议是完整的,(2)在过去尚未被提交过(再现攻击保护),(3)签名是有效的(使用MSP),(4)提交者(客户端,在这个例子中)是正确授权执行该操作在channel中(也就是说,每个背书peers都确保提交者满足channel的写入策略)。
{MSP是peer的一个组件,允许它们验证从客户端到达的事务请求,并签署事务结果(背书)。编写策略是在channel创建时定义的,并确定哪个用户有权向该channel提交事务。}

3.检查返回协议
应用程序验证背书peer的签名,并对提案响应进行比较,以确定提案的响应是否相同。如果chaincode只是查询了账本,应用程序将检查查询响应结果,并且通常不会将查询事务提交给orderer。如果客户端应用程序打算将事务提交到orderer来更新账本,则应用程序将确定在提交之前指定的背书策略是否已经完成(例如,peerA和peerB都支持)。体系结构是这样的,即使应用程序选择不检查请求响应或转发未签署的事务,背书策略仍将由peers执行,并支持在提交阶段验证。

4.客户端将背书合并到交易中
应用程序将transaction proposal(事务协议)和包含该“transaction message(事务消息)”的peer请求响应“广播”给orderer服务,该事务将包含peer请求返回的读写集、背书peers的签名以及channel ID。orderer执行其操作无需检查该事务的全部内容,它只是从网络上的所有channels中接收事务,对相同channel中的事务按时间排序,并为每一个channel中的一个或一列事务创建区块。

5.提交并验证事务
由事务集创建的区块将会被分发到channel上所有的peers中,在该区块中的事务集将被验证以确保满足背书策略,并确保在事务执行生成读取集之后,对读集变量的账本没有任何更改。区块中的事务集因此会被标记为有效或无效。

7.账本更新
每一个channel都会将生成的区块追加到所属的chain(链)上,对于每个有效事务,都会将事务中的写集提交到当前状态数据库中。因前述而发出一个事件,通知客户端应用程序,事务(调用)已被追加到该chain(链)中,并通知该事务是否被验证或无效。
Hyperledger Fabric Transaction Flow——事务处理流程的更多相关文章
- HyperLedger Fabric 1.4 交易流程(6.3)
区块链最主要的特性之一是去中心化,没有了中心机构的集中处理,为了达成数据的一致性,就需要网络中全民参与管理,并以某种方法达成共识,所以区块链的交易流程也就是共识的过程. 在Fabric中, ...
- Hyperledger Fabric Transaction Proposal过程
客户端将交易预提案(Transaction Proposal)通过 gRPC 发送给支持 Endorser 角色的 Peer 进行背书. 这些交易提案可能包括链码的安装.实例化.升级.调用.查询:以及 ...
- Hyperledger Fabric Ledger——账本总账
Ledger Ledger(账本)即所有的state transitions(状态切换),是有序且不可篡改的.state transitions(状态切换)是由参与方提交的chaincode(智能合约 ...
- HyperLedger Fabric 1.0的Transaction处理流程
如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为 ...
- hyperledger fabric超级账本java sdk样例e2e代码流程分析
一 checkConfig Before 1.1 private static final TestConfig testConfig = TestConfig.getConfig() ...
- HyperLedger Fabric Introduction——区块链超级账本介绍
介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...
- 第6章 Hyperledger Fabric模型
This section outlines the key design features woven into Hyperledger Fabric that fulfill its promise ...
- HyperLedger Fabric基于zookeeper和kafka集群配置解析
简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)--Fabric多节点集群 ...
- Hyperledger Fabric Chaincode for Operators——实操智能合约
什么是Chaincode(智能合约)? chaincode是一个程序,它是使用Go语言编写的,最终在Java等其他编程语言中实现了指定的接口.chaincode运行在一个被背书peer进程独立出来的安 ...
随机推荐
- cobbler自动安装系统(Centos7.X)
环境: [root@kickstart ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@kickstart ~]# unam ...
- python安装第三方库的三种方法
使用pip 大多数库都可以通过pip安装,安装方法为,在命令行窗口输入 pip install libname libname为库名 某些库通过pip安装不了,可能是因为没有打包上传到pypi中,可以 ...
- 初读"Thinking in Java"读书笔记之第二章 --- 一切都是对象
用引用操纵对象 Java里一切都被视为对象,通过操纵对象的一个"引用"来操纵对象. 例如, 可以将遥控器视为引用,电视机视为对象. 创建一个引用,不一定需要有一个对象与之关联,但此 ...
- Python 内嵌函数运用(探究模块)
Python库参考 http://python.org/doc/lib 1. 使用dir #查看 函数的所有特性(以及模块的所有函数.类.变量等.) 一些以下划线开始,暗示(约定俗成) ...
- SQLAlchemy基础操作二
多线程示例 import time import threading from sqlalchemy.ext.declarative import declarative_base from sqla ...
- js 跨域问题 汇总
前言 相信每一个前端er对于跨域这两个字都不会陌生,在实际项目中应用也是比较多的.但跨域方法的多种多样实在让人目不暇接.老规矩,碰到这种情况,就只能自己总结一篇博客,作为记录. 正文 1. 什么是跨域 ...
- 5.移植uboot-设置默认环境变量,裁剪,并分区
在上一章,我们使用网卡传输文件,每次启机时,环境变量都要变为默认值,需要重新设置ip,MAC地址才行,由于没有配置mtdparts命令,启动内核也不成功 所以本章主要学习: 1)修改环境变量默认值 2 ...
- 批量将webp格式的图片转成png的图片 https://cn.office-converter.com/WEBP-to-PNG
https://cn.office-converter.com/WEBP-to-PNG
- NOIP2017游记
日常大考之前感冒(这次感冒了3周..) Day -4~Day 0 停课一周,不写作业不上课是很爽,然而想到NOIP结束第二天就要期中考.. 在学校刷刷题,跟着一大堆大佬的步伐,做着一大堆大佬的题目(其 ...
- ACM讲座心得