Fabric 基本概念与架构

Fabric 基本概念与架构1 Peer 节点在 HyperledgerF 网络中 Peer 节点指提供交易背书 交易验证 提交账本等服务功能的逻辑节点 包括 Endorser 背书节点 Committer 记账节点等 通常采用进程实例 或线程 g

大家好,欢迎来到IT知识分享网。

1、Peer节点

在Hyperledger Fabric网络中,Peer节点指提供交易背书、交易验证、提交账本等服务功能的逻辑节点,包括Endorser背书节点、Committer记账节点等,通常采用进程实例(或线程、goroutine等)与功能模块的实现方式,运行在物理服务器、Docker容器等环境中提供服务。因此,不同功能角色的Peer节点可以同时运行在同一个物理节点、虚拟机或容器中。其中,推荐对性能有严格要求的生产环境将Peer节点部署在物理节点上,开发测试环境可以考虑虚拟机或容器环境以方便开发调试与测试。

类似于P2P网络,Fabric中每个Peer节点的功能地位都是对等的,它们之间通过服务分工协作以响应来自Fabric客户端(包括CLI命令行客户端和多种语言SDK客户端)的交易请求消息,并共同维护Fabric分布式账本的数据一致性。目前,Fabric提供了如下两种功能角色的Peer节点,其中:

·Endorser背书节点:负责接收来自客户端的签名提案消息请求,检查消息后模拟执行交易提案,并对模拟执行结果签名背书,即使用私钥对请求提案、状态变更(读写集)等签名,表示Endorser背书节点认为此次交易是合法有效的,然后将签名背书信息等打包成提案响应消息回复给客户端;

·Committer记账节点:负责检查交易消息结构的完整性与合法性、调用VSCC验证交易背书策略、执行MVCC检查读写集冲突等,标记交易的有效性并提交账本,更新本地账本数据库与文件,包括区块数据文件、隐私数据库、区块索引数据库、状态数据库、历史数据库等。

2、Orderer排序节点

Orderer排序节点同样属于逻辑节点,负责管理系统通道与应用通道,维护通道账本与配置,提供Broadcast交易广播服务、Orderer共识排序服务、Deliver区块分发服务等。

通常,Orderer节点通过Broadcast()服务接口接收与处理交易消息请求(普通交易消息与配置交易消息),过滤检查后提交共识组件进行排序,并添加到本地待处理的缓存交易消息列表,按照约定的交易出块规则(如配置出块时间、配置出块字节数限制、通道配置消息单独出块等)切割打包成新区块,再保存到本地账本的区块数据文件中。对于配置交易消息,Orderer节点还负责创建新的应用通道或更新通道配置。同时,Orderer节点通过Deliver()服务接口接收与处理区块请求消息,从本地账本中获取请求范围内的区块数据回复给请求节点。因此,Orderer节点在整个Fabric系统中属于核心功能模块,其处理交易排序达成共识的性能将直接影响到整个Fabric系统的出块效率。

另外,Orderer节点支持独立的多通道(Channel)管理,包括系统通道与应用通道,可以保持各通道内节点的账本数据彼此隔离,账本数据只会同步给加入通道的合法Peer节点,从而确保数据的隐私性与安全性。

3、Client客户端

客户端(Client)是用户与Fabric网络组件发送请求进行交互的接口,包括如下两种客户端。

·Fabric-CA客户端:负责节点注册登记,包括登记注册用户信息、获取注册证书与私钥信息等;

·Fabric客户端:负责网络配置与节点管理,包括初始化与更新配置、启动和停止节点等。同时,还负责通道管理(创建、更新、查询等)与链码生命周期管理(安装、实例化、调用、升级等),能够通过Peer节点服务客户端发送消息给Endorser节点与Orderer节点请求处理,包括交易背书、创建通道、更新通道配置、交易排序、请求区块数据等。

目前,Fabric客户端包括CLI(Command Line Interface)命令行客户端和多种语言SDK客户端,如Node.js、GoJavaPython等,负责与其他服务节点进行交互,提供配置操作、通道操作、链码操作、节点操作、日志操作等相关API接口,支持开发丰富的应用程序

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/107310.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信