透视Hyperledger Fabric的逻辑架构与运行时的架构

透视Hyperledger Fabric的逻辑架构与运行时的架构_第1张图片

01   逻辑架构

Hyperledger Fabric从1.X开始,在扩展性及安全性方面有了很大的提升,且新增了诸多特性。

多通道:支持多通道,提高隔离安全性。

可插拔的组件:支持共识组件、权限管理组件等可插拔功能。

账本数据可被存储为多种格式。

分化了Peer节点的多种角色,可以根据具体情况实现灵活部署。

Hyperledger Fabric整体逻辑架构如下图所示。

透视Hyperledger Fabric的逻辑架构与运行时的架构_第2张图片

Hyperledger Fabric的四大核心组件如下。

1)成员服务(Membership Service):成员服务管理保证了Hyperledger Fabric平台访问的安全性,提供了成员的注册、管理及审核功能。

2)区块链服务(Blockchain Service):区块链的核心部分,为区块链的主体功能提供了底层支撑;包括共识管理、分布式账本实现、账本的存储及网络中各节点之间的通信实现。

  • 区块链(Blockchain):区块之间以Hash连接为结构的交易日志。Peer节点从Order Service节点接收交易区块,并根据背书策略和并发冲突标记区块上的交易是否有效,然后将该区块追加到Peer文件系统中的Hash Chain上。

  • 交易(Transaction):交易分为对链码的部署和调用两种操作类型。

部署交易:部署是请求在Peer上启动链码容器;创建新的链码并设置一个程序作为参数。一个部署交易执行成功,表明链码已被成功安装到区块链上。

调用交易:调用是从账本中请求读写集,是在之前已部署链码的情况下执行一个操作。调用交易将使用链码提供的一个函数。当成功时,链码执行特定的函数对账本数据进行操作(修改状态),并返回操作结果。

3)链码服务(Chaincode Service):提供链码(Chaincode)的部署及运行时的所需环境。

4)事件(Event Stream):为各组件之间的异步通信提供技术实现。

链码是一个可以对账本数据进行操作的可开发的组件程序,部署运行在一个安全的容器中,用户可以通过调用链码中的指定函数对账本数据进行修改或读取。

02   运行时架构

逻辑架构图说明了Hyperledger Fabric的各个核心组件/模块。由于Hyperledger Fabric是一个需要保证交易数据安全的分布式系统,所以在实际运行时将不同的服务器配置成为不同的Node(节点),担任不同的角色,从而实现逻辑架构中不同的核心组件/模块功能。

实际运行时架构如下图所示。

透视Hyperledger Fabric的逻辑架构与运行时的架构_第3张图片

运行时架构图中各项解释如下:

1)App:代表一个CLI(客户端)或SDK,作用是创建交易并获取到足够的背书之后向Orderer节点(排序服务节点)提交交易请求(Peer节点与Orderer节点提供了gRPC远程访问接口,供客户端调用)。

2)CA:负责对网络中所有的证书进行管理(对Hyperledger Fabric网络中的成员身份进行管理),提供标准的PKI(Public Key Infrastructure,公钥基础设施)服务。

3)MSP(Member Service Provider):为客户端和Peer提供证书的系统抽象组件。

4)Channel:即通道,其将一个大的网络分割成为不同的私有子网。通道提供一种通信机制,将指定的Peer和Orderer连接在一起,形成一个具有保密性的通信链路(虚拟),进行数据隔离(区块数据只能存储在已加入到通道中的成员节点内)。要加入通道的每个节点都必须拥有自己的、通过成员服务提供商(MSP)获得的身份标识。

5)Orderer(排序服务节点):对客户端提交的交易请求进行排序,之后生成区块广播给通道内的Peer。

6)Org1:代表联盟中的某一个组织(一个联盟可以由多个不同的组织组成)。

7)Peer:表示组织中的节点(Node);Peer节点以区块的形式从排序服务节点接收有序状态更新,维护状态和账本。在Hyperledger Fabric网络运行环境中,Peer节点可以划分为如下4种角色。

  • 背书节点:根据指定的策略调用智能合约,对结果进行背书,返回提案响应到客户端。

  • 提交节点:验证数据并保存至账本中。

  • 锚节点:通道中的每个组织(Org)都有一个锚节点,锚节点可以允许同一通道中不同组织的Peer节点发现通道内的所有Peer节点。

  • Leader节点:作为组织内所有节点的代表,能够连接到排序服务节点,将从排序服务节点接收到的批量区块广播给组织内的其他节点。

网络中只有部分Peer节点为背书节点角色,网络中所有Peer节点都为提交节点角色。

8)Chaincode:在Hyperledger Fabric中称为链式代码,简称链码;运行在一个安全的容器中,提供相应的API与账本数据进行交互。

9)Ledger:即账本,由排序服务构建的一个全部有序的交易哈希链块,保存在同一通道所有的Peer节点中。账本提供了在系统运行过程中发生的可验证历史,它包含所有成功的状态操作(有效交易)和不成功的状态操作(无效交易)。

——本文摘自《Hyperledger Fabric菜鸟进阶攻略》

推荐阅读

透视Hyperledger Fabric的逻辑架构与运行时的架构_第4张图片

透视Hyperledger Fabric的逻辑架构与运行时的架构_第5张图片

长按二维码
了解及购买

作者:黎跃春 韩小东 付金亮 编著 

书籍简介:

1)区块链践行者联合撰写,充分考虑疑难点,将学习路径放大讲解,初学者友好,

2)本书涵盖Hyperledger Fabric架构、应用、原理与综合案例,多维度引导读者掌握区块链,

透视Hyperledger Fabric的逻辑架构与运行时的架构_第6张图片

你与世界

只差一个

公众号

你可能感兴趣的:(透视Hyperledger Fabric的逻辑架构与运行时的架构)