目录
1、逻辑架构
答疑:什么叫做背书策略?
2、运行时架构
答疑:什么是锚节点?
1、逻辑架构
Hyperledger Fabric从1.X开始,在扩展性及安全性方面有了很大的提升,且新增了诸多特性。
- 多通道:支持多通道,提高隔离安全性。
- 可插拔的组件:支持共识组件、权限管理组件等可插拔功能。
- 账本数据可被存储为多种格式。
- 分化了Peer节点的多种角色,可以根据具体情况实现灵活部署。
Hyperledger Fabric整体逻辑架构如下图所示。
Hyperledger Fabric的四大核心组件如下
1)成员服务(Membership Service):成员服务管理保证了Hyperledger Fabric平台访问的安全性,提供了成员的注册、管理及审核功能。
2)区块链服务(Blockchain Service):区块链的核心部分,为区块链的主体功能提供了底层支撑;包括共识管理、分布式账本实现、账本的存储及网络中各节点之间的通信
实现。①区块链(Blockchain):区块之间以Hash连接为结构的交易日志。Peer节点从Order
Service节点接收交易区块,并根据背书策略和并发冲突标记区块上的交易是否有效,然后
将该区块追加到Peer文件系统中的Hash Chain上。②交易(Transaction):交易分为对链码的部署和调用两种操作类型。
- 部署交易:部署是请求在Per上启动链码容器;创建新的链码并设置一个程序作为参数。一个部署交易执行成功,表明链码已被成功安装到区块链上。
- 调用交易:调用是从账本中请求读写集,是在之前已部署链码的情况下执行一个操作。调用交易将使用链码提供的一个函数。当成功时,链码执行特定的函数对账本数据进行操作(修改状态),并返回操作结果。
3)链码服务(Chaincode Service):提供链码(Chaincode)的部署及运行时的所需环境。
4)事件(Event Stream):为各组件之间的异步通信提供技术实现。
注意
链码是一个可以对账本数据进行操作的可开发的组件程序,部署运行在一个安全的容器中,用户可以通过调用链码中的指定函数对账本数据进行修改或读取。
答疑:什么叫做背书策略?
- 背书策略是区块链网络中用于判断交易有效性的一种规则或机制。在区块链中,交易需要经过一定的验证过程才能被认可并添加到区块中。
- 背书策略通常涉及多个节点的参与,这些节点可以是网络中的不同实体或者特定的角色。根据具体的区块链系统和应用场景,背书策略的具体规则可以有所不同。
- 一种常见的背书策略是要求多个节点对交易进行确认或背书,只有当足够数量的节点对交易达成共识时,该交易才会被认为是有效的并被添加到区块中。这种背书策略可以增加交易的可信度和安全性,防止单个节点的作恶行为或错误导致的异常交易被接受。
- 除了节点数量外,背书策略还可以涉及节点的身份或权限。例如,特定类型的节点可能具有更高的背书权重,其确认的交易对整体的有效性影响更大。这样的设计可以根据节点的可信度或专业性来提高系统的可靠性。
总之,背书策略是区块链系统中的一项关键机制,用于确保交易的合法性、可靠性和一致性。不同的背书策略可以根据具体需求和设计目标进行选择和定义。
2、运行时架构
逻辑架构图说明了Hyperledger Fabric的各个核心组件/模块。由于Hyperledger Fabric
是一个需要保证交易数据安全的分布式系统,所以在实际运行时将不同的服务器配置成
为不同的Node(节点),担任不同的角色,从而实现逻辑架构中不同的核心组件/模块
功能。
实际运行时架构如下图所示。
运行时架构图中各项解释如下:
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种角色。
- 背书节点:根据指定的策略调用智能合约,对结果进行背书,返回提案响应到客户端。
- 提交节点:验证数据并保存至账本中。
- 锚节点:通道中的每个组织(Og)都有一个锚节点,锚节点可以允许同一通道中不同组织的Peer节点发现通道内的所有Peer节点。
- Leader节点:作为组织内所有节点的代表,能够连接到排序服务节点,将从排序服务节点接收到的批量区块广播给组织内的其他节点。
- 网络中只有部分Peer节点为背书节点角色,网络中所有Peer节点都为提交节点角色。
答疑:什么是锚节点?
在Hyperledger Fabric中,锚节点(Anchor Node)具有重要的作用。锚节点是网络中的特殊节点,用于维护和传播其他组织的区块链网络地址。以下是锚节点的几个主要作用:
地址维护和传播:锚节点负责维护其他组织的网络地址信息。每个组织在Fabric网络中都有一个唯一的网络地址,当新的组织加入网络或者已有组织的网络地址发生变化时,锚节点会更新并广播这些地址信息给其他组织。
跨组织通信:锚节点在跨组织的交互中起到关键作用。它们充当了跨组织通信的桥梁,其他组织可以通过与锚节点进行通信来实现跨组织的交互操作和数据共享。
连接点稳定性:锚节点的选择通常考虑到节点的可用性和稳定性。由于锚节点在网络中扮演着重要角色,选择稳定可靠的节点作为锚节点可以确保网络连接的稳定性,并减少因节点故障引起的中断。
8)Chaincode:在Hyperledger Fabric中称为链式代码,简称链码;运行在一个安全的容器中,提供相应的API与账本数据进行交互。
9)Ledger:即账本,由排序服务构建的一个全部有序的交易哈希链块,保存在同一通道所有的Peer节点中。账本提供了在系统运行过程中发生的可验证历史,它包含所有成功的状态操作(有效交易)和不成功的状态操作(无效交易)。
1.应用程序或客户端到底需要连接到哪些Peer节点?
只需要连接到背书节点即可。
2.背书节点怎么指定?
在实例化链码时由背书策略指定