> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/blockchain_guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/blockchain_guide/09_fabric_deploy/intro.md).

# 简介

Fabric 是超级账本社区首个项目也是最流行的分布式账本实现，由 IBM、DAH 等会员企业于 2015 年底贡献到社区。

作为面向企业场景的联盟链，Fabric 中有许多经典的设计和先进的理念。包括多通道、身份证书机制、隐私保护、运维管理接口等。另外，其可扩展的架构可以满足不同场景下的性能需求，如虚拟机部署场景下可以达到 3500 tps 的吞吐量和小于 1 秒的延迟（参考《Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains》），更多物理资源情况下可以达到更大的（10 K+）的吞吐量。

## 主要版本历史

Fabric 首个主版本 1.0.0 于 2017 年 7 月发布，该版本根据之前测试版的应用反馈，在架构上进行了重新设计，在可扩展性和可插拔性方面都有了不少改进。后续版本持续围绕性能、安全性和隐私性完善。Fabric 2.5.x 是当前 LTS 系列，Fabric 3.x 已是正式发布系列。Fabric 的主要版本历史总结如下表所示，也可在 <https://github.com/hyperledger/fabric/releases> 找到。

| 版本    | 发布时间       | 新特性                                                                                               | 增强和改善                                                                                 |
| ----- | ---------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| 1.0.0 | 2017-07-11 | 重新设计架构，支持多通道、Kafka 共识机制、系统链码、分角色节点                                                                | 大幅度提升性能和可扩展性                                                                          |
| 1.1.0 | 2018-03-15 | Node.js 链码，链码加密库，链码中基于证书属性的访问控制，节点之间的双向 TLS，Fabric CA 中对 CRL 的支持。部分实验特性，如 sideDB、idemix、细粒度的权限控制。 | 大幅优化了性能，某些场景下可提升一个数量级；提供基于通道的事件通知模型                                                   |
| 1.2.0 | 2018-07-04 | 正式支持私有数据库（Private Data），提供可插拔的 ESCC 和 VSCC，细粒度访问控制，服务自动发现                                         | 提高了稳定性和易用性                                                                            |
| 1.3.0 | 2018-10-11 | 正式支持 Java 链码；提供细粒度的基于状态的背书策略；支持 idemix 增强隐私保护                                                     | 部分重构链码生命周期管理；通过分页机制优化链码中对大量数据的查询                                                      |
| 1.4.0 | 2019-01-09 | 提供运维相关的 RESTful API（统计、健康检查、日志级别）；使用新的日志控制环境变量                                                    | 增强私有数据：新 Peer 自动获取缺失私有数据，客户端层面对私有数据的权限控制；开始支持新的 RAFT 排序机制                             |
| 2.0.0 | 2020-01-29 | 新的面向通道的链码生命周期管理；独立 shim 库；外部链码启动器                                                                 | 增强私有数据支持；移除系统链码白名单；改进性能                                                               |
| 2.2.0 | 2020-07-07 | 长期支持版本 (LTS)；增强私有数据及其协调机制                                                                         | 引入异步区块处理；优化链码生命周期                                                                     |
| 2.5.0 | 2023-01-23 | 长期支持版本 (LTS)；新增私有数据历史清理能力（需启用 V2\_5 应用能力）                                                         | 发布 amd64/arm64 二进制和镜像；发布二进制采用静态链接；Docker 镜像转为 Ubuntu 基础镜像                             |
| 3.0.0 | 2024-09-17 | 正式引入基于 SmartBFT 的 BFT 排序服务；支持 Ed25519 MSP 凭证（需启用 V3\_0 通道能力）                                      | 移除系统通道、Solo/Kafka 排序、旧链码生命周期和 `fabric-tools` 镜像；通道创建转向 participation API 和 `osnadmin` |

*注：Kafka 排序服务已在 Fabric 2.x 中弃用，并在 Fabric 3.x 中移除。新部署应使用 Raft；需要拜占庭容错时再评估 Fabric 3.x 的 BFT 排序服务。*

## 网络基本结构

Fabric 网络中存在背书节点（Endorser）、记账节点（Committer）、排序节点（Orderer）和证书节点（CA）等不同组件，彼此协作完成整个区块链系统的记账功能。

关于网络架构和详细的节点角色说明，请参考 [Fabric 架构与设计](/blockchain_guide/13_fabric_design.md) 章节。

客户端可以向网络内发送交易，交易经过共识后被通道内的 Peer 节点接收并更新本地对应的账本。

本章后续将详细介绍安装、部署 Fabric 网络并进行启动的操作过程，建议读者跟随步骤进行实践学习。
