Hyperledger Fabric 交易流程

2024-04-03 05:18

本文主要是介绍Hyperledger Fabric 交易流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

Transaction Flow
Client A 初始化一个交易
Endorsing peers验证签名并执行交易
Proposal回应被检查
Client将endorsement装配到交易中
交易被验证并提交
账本更新
1. Client A 初始化一个交易
enter image description here
发生了什么? - 客户端A发送购买萝卜的请求。请求目标peerA和peerB谁分别代表clientA和clientB。Endorsement策略规定两个peer必须签署任何交易,因此请求转到peerA和peerB。

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

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

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

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

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

这篇关于Hyperledger Fabric 交易流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/871994

相关文章

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

springboot启动流程过程

《springboot启动流程过程》SpringBoot简化了Spring框架的使用,通过创建`SpringApplication`对象,判断应用类型并设置初始化器和监听器,在`run`方法中,读取配... 目录springboot启动流程springboot程序启动入口1.创建SpringApplicat

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装