目录
1成员管理服务(MSP)
2 区块链服务
2.1 区块链(Blockchain)
2.2 交易(Transaction,交易分为两种类型)
3 链码(Chaincode)服务
4 事件流(Event Stream)
5 订购服务(Ordering Service)
6 通道(Channel)
7 节点类型和角色
8 账本(Ledger)和状态数据库(World State)
9 客户端应用程序(Client Applications)
10 安全性和身份验证
Hyperledger Fabric是一个开源的企业级分布式账本平台,旨在支持跨组织的商业网络。它提供了一个可扩展的、高度安全的基础架构,用于构建区块链解决方案。
1成员管理服务(MSP)
MSP负责对网络中的成员身份进行管理,包括注册、审核和认证。它是Hyperledger Fabric中的一个模块,用于生成和管理参与方的身份证书,验证和授权交易,并定义参与方的角色和权限。
2 区块链服务
区块链服务包括共识管理、分布式账本实现、账本的存储以及网络中各节点之间的通信实现。
2.1 区块链(Blockchain)
区块链模块接收区块并进行验证,验证通过后将区块存储在当前的区块链中。它确保所有的交易按照一致的顺序被添加到账本中,并维护账本的完整性和安全性。
2.2 交易(Transaction,交易分为两种类型)
部署交易:部署交易用于将开发完成的链码(Chaincode,也称为智能合约)部署到Hyperledger Fabric网络中。链码具有自己的生命周期,包括安装和实例化。
- 安装:开发完成的链码必须安装在Fabric指定的节点中,以便后续的实例化和调用。
- 实例化:安装完成的链码必须执行实例化操作,初始化账本数据。
调用交易:调用交易用于通过调用已部署的链码来操作区块链(账本)中的数据,分为两种类型:
- 查询(query):查询命令用于只读地查询账本数据,不会对账本状态进行修改。
- 调用(invoke):调用命令可实现对账本数据的添加、修改或删除等操作。
3 链码(Chaincode)服务
链码是Hyperledger Fabric中智能合约的实现。它必须运行在安全容器(如Docker)中,并提供了操作和访问账本数据的接口。链码可以使用不同的编程语言编写,如Go、Java等。
4 事件流(Event Stream)
事件流模块为Hyperledger Fabric的各个组件提供了异步通信的能力。它允许节点之间发送和接收事件通知,以便及时响应网络中发生的重要事件。事件流可以用于实现自定义的事件驱动机制,以满足特定的业务需求。
5 订购服务(Ordering Service)
- 订购服务是Hyperledger Fabric网络中的一个重要组件,负责接收、排序和将交易打包成区块,并将区块广播给网络中的Peer节点。订购服务确保网络中的各个Peer节点对交易的顺序达成一致,并通过共识算法保持整个网络的一致性。
6 通道(Channel)
- 通道是Hyperledger Fabric中用于隔离和隐私的机制。通过创建通道,网络中的参与方可以将自己组织成独立的子组,每个通道都有自己的账本和智能合约。这种隔离性使得参与方只能在其所属的通道上进行交易和与其他参与方进行通信,从而提供了更好的隐私和安全性。
7 节点类型和角色
- Hyperledger Fabric网络中的节点可以分为不同的类型和角色。其中,背书节点(Endorsing Peers)负责执行智能合约并进行事务背书,排序节点(Ordering Peers)负责交易排序和区块生成,而锚节点(Anchor Peers)则用于在通道之间传播配置更新和消息。
8 账本(Ledger)和状态数据库(World State)
Hyperledger Fabric使用账本和状态数据库来存储交易和当前状态。账本用于记录和存储交易的历史,而状态数据库(也称为World State)则用于存储当前状态。状态数据库采用了一种特殊的数据结构(如Merkle树)来支持高效的数据查询和验证。
9 客户端应用程序(Client Applications)
客户端应用程序是与Hyperledger Fabric网络进行交互的应用程序。它们可以使用Hyperledger Fabric提供的SDK或API来提交交易请求、查询账本状态、监听事件等。客户端应用程序可以是各种类型,如Web应用程序、移动应用程序等。
10 安全性和身份验证
Hyperledger Fabric通过使用加密技术和身份验证机制来确保网络的安全性。参与方使用数字证书来证明其身份,并通过MSP进行身份验证。此外,Fabric网络还支持访问控制策略,以确保只有授权的参与方才能执行特定的操作和访问数据。