Hyperledger Fabric 2.4 Fabric Gateway文档翻译

2024-05-07 06:08

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

翻译:原文地址

Fabric Gateway是Hyperledger Fabric v2.4 在peers上增加的一项服务,为向网络提交事务提供简单的小型的API。之前客户端SDK的需求,比如从不同组织的peers中收集交易背书,在v2.4中通过使用Fabric Gateway服务,只需要一个peer运行一个应用进程即可提交事务。

写客户端应用

使用Fabric2.4,写客户端应用可以用到 Fabric Gateway 的一些API,而且流程经过了优化。这些API如同v1.4版本时介绍的高水平编程模型。

Fabric Gateway 管理如下事务步骤:

  • 评估交易提案。这将在一个peer上调用职能合约并返回结果给客户端。这个操作通常用于查询当前账本的状态而不是用于账本更新。gateway优先选择同一个组织的peer作为the gateway peer ,且选择的是账本中区块最高的peer。如果gateway的组织内没有合适的peer,此时会从其他组织中选择peer。
  • 背书(签署)交易提案。gateway会收集足够的背书来满足联合签名策略,将准备好的交易envelope返回给客户端,让其进行签名。
  • 提交交易。提交交易事务到order服务上,提交到账本中。
  • 等待提交状态事件。让客户端可以等待交易提交到账本后的结果,获取交易状态码
  • 接收链码事件。这会允许客户端应用根据链码执行后返回的数据进行响应。

Fabric Gateway 客户端的 API组合Endorse/Submit/CommitStatus 动作到一个 SubmitTransaction函数,来做到一行代码实现交易事件。或者,可以使用单个操作来支持灵活的应用程序模式。

客户端应用API

Fabric Gateway及其API设计的目的是,让客户端应用开发者能够专注于业务逻辑,而不必关系Fabric的基础架构逻辑。因此,API提供了组织和合约的逻辑抽象,而不是对操作抽象也不是对链码和peer的抽象。【旁注——很明显,管理API希望公开这些操作抽象,而不是管理API】

Fabric当前支持以下三种客户端应用编程语言:

  • Go 查看GO API
  • Node,查看Node API
  • Java,查看 Java API

 gateway怎么背书(签署)交易提案

为了交易事务成功提交到账本中,需要满足背书策略要求的背书数量。获取一个组织的背书需要联系组织中的一个peer,并让它在自己复制的账本上模拟执行。peer通过调用链码来模拟执行交易事务,以交易的名称和参数做标记,建立一个读写集合。这个读写集包含了当前账本状态和执行交易后的状态。

应用于事务的背书策略或多个策略之和取决于正在调用的链码函数的实现,可以使以下各项的组合:

  • 链码背书策略。channel的组织成员在批准链码时同意的策略。如果链码函数调用了另一个链码,则两方策略都需要满足。
  • 私有数据集合背书策略。如果链码向私有数据中写入一个状态,则该集合的认可策略将覆盖该状态的链码策略。
  • 如果链码函数从私有数据集合中读取数据,则它将仅限于该集合成员的组织。
  • 基于状态的背书策略(SBE)。这些策略也被称为密钥级签名策略,可应用于单独的状态,并将覆盖链码策略或者私有数据集合的策略。背书策略存贮在账本上,可以通过交易事务更新。

应用于交易事务的背书策略组合是在链码运行是确定的,不一定是从静态分析得出的。gateway使用以下过程代表客户端管理交易背书的复杂性:

  • gateway从组织中选择peer做背书,选择的是最高块高度的peer。假设在gateway peer组织内的peer都是被联系它的客户端所信任的。
  • 在选定的peer上模拟交易提案。该模拟获取有关访问状态的信息,因此,需要将背书策略结合起来(包括peer上任何独立地基于状态的背书策略)。
  • 捕获的背书策略被组装入ChaincodeInterest 协议结构,并将其传递给发现服务,以得出特定于交易事务的背书计划。
  • gateway通过请求满足计划中所有政策所需来批准应用批准计划。对于每个组织,gateway peer会选取组织中区块最高的peer

gateway是依靠discovery service 来获取需要联系的peer和order的信息,并计算交易事务需要背书所需哪些peer。所以在gateway服务开启的peer上,discovery service也要开启。

gateway背书进程对私密数据有严格的限制,数据会以临时数据的方式在组织中传递,因为私密数据往往是敏感和个人数据,不能在全部组织中传递。对于这种情况,gateway需要限制背书组织为私密数据集合的成员(或读或写)。如果限制没有满足背书策略,gateway会返回error到客户端,而不是继续将私密数据在组织间传递,因为这可能会被私密数据拒绝访问。这种情况下客户端应用需要写清楚 explicitly define which organizations should endorse。

指明背书peer

在某些情况下,一个客户端应用必须明确指定需要哪些组织来审议和背书交易提案。例如,临时数据经常包含个人或敏感信息只能写入到私密数据集合,因此需要限制背书组织集合。这些情况下,客户端应用指明背书组织,以满足隐私和背书需求;gateway需要从指定的背书组织中选取区块最高的peer。但是,如果客户端指明的背书组织没有满足背书策略,交易依然会获取指明的peer的背书,并提交到order,但在验证和提交阶段,所有peer会使交易无效。这次无效会记录在账本上,但交易不会写入到状态任何peer的状态数据库中。

重试和错误处理

gateway处理节点有重试连接,错误和延时处理。

重试

gateway会使用discovery service的信息来重试连接不可以用peer和node。如果一个组织运行了多个peer或order节点,那另一个合格的节点会被尝试连接。如果一个组织背书交易时失败,那另一个组织会被尝试。如果一个组织一致背书失败,一组满足条件的组织会成为新的目标。只有没有了满足背书策略的peer可用,gateway才会停止尝试。gateway会一致尝试,直到所有可能的背书peer都被试过。

错误处理

Fabric gateway通过gRPC联系网络中的peer和order。如果gateway请求错误源于peer和order的网络(也就是gateway外部),gateway会返回错误,端口,和组织ID信息给客户端在details字段中。如果details字段为空,那错误来自原gateway peer。

超时

Fabric gateway的评估和背书方法向外部的gateway发送gRPC请求。为了限制客户端需要等待响应的时间,core.yaml中的peer.gateway.endorsementTimeout可以再gateway中重置。

Fabric gateway客户端api也提供了默认设置和单次调用超时设置的机制。

接收事件

gateway 提供了简单的接受chaincode events的API。客户端API提供了一种机制,可以使用特定于语言的习惯用法来处理这些事件。

这篇关于Hyperledger Fabric 2.4 Fabric Gateway文档翻译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

浅谈Redis Key 命名规范文档

《浅谈RedisKey命名规范文档》本文介绍了Redis键名命名规范,包括命名格式、具体规范、数据类型扩展命名、时间敏感型键名、规范总结以及实际应用示例,感兴趣的可以了解一下... 目录1. 命名格式格式模板:示例:2. 具体规范2.1 小写命名2.2 使用冒号分隔层级2.3 标识符命名3. 数据类型扩展命

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl