关键概念

注解

完整的Hyperledger Fabric介绍,请参考 Hyperledger Fabric Document

账本

账本是 Fabric 中所有 状态转换 有序的、防篡改的记录。 状态转换 是参与方提交的 链码 调用 交易 的结果。每个交易都会生成一组键值对,这些键值对以创建、更新或删除形式提交到 账本

Hyperledger Fabric 的账本包括两个组件: 世界状态交易日志 。每个参与者都拥有他们所属的每个 Hyperledger Fabric 网络的账本副本。

世界状态组件是账本的数据库,描述了在给定时间点的账本的状态。

交易日志组件是世界状态的更新历史,记录产生世界状态中当前值的所有交易。

账本中世界状态的数据存储是可替换的(默认使用 LevelDB 键值存储数据库)。交易日志只记录区块链网络使用账本数据库前后的值,不需要是可插拔的。

共识

交易 必须按照发生的顺序写入 账本,即使它们可能位于网络中不同的参与者集合之中。因此,必须建立 排序 ,即交易的顺序确认,且必须采用一种方法来拒绝错误(或恶意)插入到账本中的非法交易。

共识就是交易参与方为达成严格交易排序,共同为排序服务选择实现方式的过程。 Hyperledger Fabric 历史上支持Solo、Kafka和Raft三种排序服务,但在V2.0中前两者均被弃用,并推荐使用Raft排序服务。

教育联盟链成员达成共识,使用Raft作为联盟链的排序服务。

智能合约

Hyperledger Fabric 智能合约用 链码 编写。

区块链外部的应用程序通过调用链码与账本交进行交互。在大多数情况下,链码只与账本的数据库、世界状态(例如,查询)交互,而不与交易日志交互。

Hyperledger Fabric 目前支持 Go、Node.js 和 Java 链码。

安全和MSP成员服务

Hyperledger Fabric 支持的交易网络中,所有参与者都拥有已知的身份。公钥基础设施用于生成与组织、网络组件以及终端用户或客户端应用程序相关联的加密证书,可以在更广泛的网络和通道级别上操纵和管理数据访问控制。

隐私

根据网络的需求,企业对企业(B2B)网络中的参与者可能对他们共享的信息量非常敏感。

Hyperledger Fabric 在每个 通道 上使用不可变的账本,以及可操纵和修改当前状态(即更新键值对)的链码。账本存在于通道范围内,它可以在整个网络中共享(假设每个参与者都在同一个公共通道上),也可以被私有化,仅包括一组特定的参与者。

Fabric 通过 私有数据集合 支持单个成员在通道上定义的组织子集能够背书、提交或查询私有数据,而无需创建单独的通道。

Fabric 通过 通道 支持两个或多个特定网络成员之间进行私有和机密的交易。