概述
超级账本 Fabric 是最流行的企业分布式账本实现,由 IBM、DAH 等企业于 2016 年初贡献到社区,目前在全球范围内得到了广泛的应用。
Fabric 提出了许多先进的理念和设计,包括多通道、身份证书机制、隐私保护、无限扩展的网络结构、运维管理接口等。目前,Fabric 可以满足不同场景下的性能需求,如虚拟机部署场景下可以达到 3500 tps 的吞吐量和小于 1 秒的延迟(参考《Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains》),更多物理资源情况下可以达到更大的(10 K+)的吞吐量。
Fabric 首个主版本 1.0.0 于 2017 年 7 月发布,该版本根据之前测试版的应用反馈,在架构上进行了重新设计,在可扩展性和可插拔性方面都有了不少改进。后续版本基本上按照每季度一个小版本的节奏发布。重点对性能和安全性、隐私性进行了完善和提升。
首个长期支持(Long-Term Support,LTS)版本 1.4 于 2019 年 1 月发布;第二个长期支持版本 2.2 于 2020 年 7 月发布。各个版本的新特性和改进如下表所示。
版本 | 发布时间 | 新特性 | 增强和改进 |
---|---|---|---|
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.1.0 | 2020-04-15 | 提供对服务的访问速率限制 | 增强私密数据支持(Peer 可指定隐式集合属性;发现服务支持集合层面的背书策略);升级到 Go 1.14 |
2.2.0 | 2020-07-09 | 提供对已批准链码定义的查询 peer lifecycle chaincode queryapproved | 支持 TLS 1.3;修正 Raft 模式下可能无法选举的 bug |
Fabric 网络中存在四种不同角色的服务节点,彼此协作完成整个区块链系统的记账功能:
-
背书节点(Endorser Peer):一些特殊的 Peer 节点,对交易提案(Transaction Proposal)进行检查,执行智能合约计算交易执行结果(读写集合)并对其进行背书;
-
记账节点(Committer Peer):负责维护账本的 Peer 节点,检查排序后交易结果合法性,并更新到本地账本。目前所有 Peer 默认都是记账节点;
-
排序节点(Orderer):排序节点负责接收交易,并对网络中所有交易进行排序,整理为区块结构。记账节点会从排序节点拉取新区块并提交到本地账本;
-
证书节点(CA):提供标准的 PKI 服务,负责对网络中所有的证书进行管理,包括签发和撤销。不参与网络中的交易过程。
节点角色划分是 Fabric 设计的一个特色。根据性能和安全需求,不同的节点可以由不同组织分别管理,共同构建联盟链。
此外,网络支持多个账本,每个账本对应一个独立通道(Channel)。每个通道内的成员可以共享账本,不同通道的账本彼此隔离。客户端可以向通道发送交易,经过共识后被通道内的 Peer 节点接收并更新到本地账本。
更多关于企业区块链和超级账本内容,可以参考刚面世的《区块链原理、设计与应用》第二版,讲解超级账本 Fabric 2.x 版本实现内幕。
===== 关于 TechFirst 公众号 =====
专注金融科技、人工智能、数据科学相关领域的热门技术与前瞻方向。欢迎投稿!
如果你喜欢公众号内容,欢迎鼓励一杯 coffee~
最后
以上就是朴素可乐为你收集整理的超级账本 Fabric 2.x 是如何演进的?的全部内容,希望文章能够帮你解决超级账本 Fabric 2.x 是如何演进的?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复