Hyperledger Fabric 架构概览

fabric 版本 v2.4.1

超级账本 Fabric 自诞生以来已经发布了两个主要版本:1.0 系列版本(2017 年 7 月)和 2.0 系列版本(2020 年 1 月)。2016 年 9 月,Fabric 发布了 v0.6.0 预览版本,通过这一版本社区收集了大量来自实践的反馈和建议,主要集中在性能、安全、可扩展性等方面。2017 年 7 月推出 1.0 系列版本,这一版本重新设计了整体架构,改善了可扩展性和安全性,消除了性能瓶颈,首次实现每秒数千次的吞吐性能。最新的 2.0 系列版本则进一步提高了可扩展性和安全性。重新设计了链码生命周期管理,支持外部链码来解耦 Peer 和链码;同时扩展了共识机制,能够更好地支持 Raft 等扩展性更优的共识算法。


核心特性

目前,为了实现安全、可扩展、易管理的企业级分布式账本,Fabric 在架构设计上主要包括了如下特性:

●采用 “背书(Endorse)-> 排序(Order)-> 提交(Commit)” 模型,解耦排序处理与其他逻辑,消除网络整体瓶颈。

●交易节点逻辑上分为背书节点(Endorser)、记账节点(Committer)等角色,允许根据负载情况调整部署。

●支持多通道特性,不同通道之间的账本数据彼此完全隔离。配合私密数据库和权限管理,实现细粒度的隐私保护。

●支持可拔插的架构,包括共识、权限管理、加解密、账本机制、链码执行等模块,支持多种实现和多种合约语言。

●支持运行时的管理接口,可以在线查询健康状态和系统的各项运行指标,实时变更日志级别等,方便运维管理。

●集成了身份证书管理服务,通过 Fabric CA 项目提供完整的证书签发和撤销等管理功能。


整体架构

超级账本 Fabric 的整体架构,包括应用、账本、链码、区块链结构、数据库、共识、权限管理、数字证书、网络层等多个组件。

其中,账本是最核心的资源,记录合约和交易数据,应用通过发起交易调用合约来向账本中记录数据。合约执行的逻辑通过链码来实现。多个节点共同组成网络,网络运行中发生的事件可以通过事件机制通知给应用甚至其他系统。权限管理则负责在整个过程中进行合适的访问控制。

账本实现依赖于核心的区块链结构、数据库存储、共识机制等技术;链码实现则依赖容器、状态机等技术;权限管理利用了已有的 PKI 体系、数字身份证书、加解密算法等诸多安全技术。

最底层由多个节点组成 P2P 网络,彼此通过 gRPC 通道进行交互,利用 Gossip 协议进行数据同步。层次化结构提高了架构的可扩展和可插拔性,底层开发者在二次开发时仅需修改相关的模块单元。


典型工作流程

根据交易生命周期各个阶段工作负载侧重不同的特点,Fabric 将网络内节点分为 CA 节点、Orderer(排序)节点和 Peer 节点三大类。Peer 节点在逻辑上全部对应通道内的记账节点,部分 Peer 节点还可兼任背书节点(Endorser)角色。这种角色分工,可以让不同类型节点专注处理自己所擅长的业务。

●客户端创建请求:客户端应用使用 SDK 与 Fabric 网络打交道。首先,客户端从 CA 获取合法的身份证书以便加入网络内的应用通道。发起正式交易前,需要先构造交易提案(Proposal)提交给 Endorser 进行背书。客户端收集到足够(背书策略决定)的背书支持后,可以利用背书构造一个合法的交易请求,发给 Orderer 进行排序处理。客户端还可以通过事件机制来监听网络中消息,获知交易是否被成功接收。

●Endorser 节点进行背书:主要提供供客户端调用,完成对交易提案的背书(目前主要是签名)处理。收到来自客户端的交易提案后,首先进行合法性和 ACL 权限检查,检查通过则模拟运行交易,对交易导致的状态变化(以读写集形式记录,包括所读状态的键和版本,所写状态的键值)进行背书,并返回结果给客户端。

●Committer 节点更新账本:负责维护区块链结构和数据库(包括状态数据库、历史数据库、索引数据库等)。该节点定期地从 Orderer 或领导节点获取排序后的批量交易区块结构,对这些交易进行落盘前的最终检查(包括交易消息结构、签名完整性、是否重复、读写集合版本是否匹配等)。检查通过后,将合法交易的执行结果写入账本,同时构造新的区块,更新区块中 BlockMetadata [2](TRANSACTIONS_FILTER)元数据,添加合法性标记。所有 Peer 都担任 Committer 角色。

●排序节点进行排序:Orderer 为网络中所有合法交易进行全局排序,并将排序后的一批交易组合生成区块结构。Orderer 不需要与交易内容打交道。

●CA 管理身份证书:参照 PKI 架构,负责网络中所有证书的管理(签发的、撤销等)。实现位于单独的 fabric-ca 项目中。CA 在签发证书后,自身并不参与网络中的交易过程。

经过这些步骤,网络中的交易得到共识并记录到账本中,任何节点都无法推翻或篡改交易历史。

fabric 区块链

相关推荐

  1. Spring Security(一)架构概览

    2024-01-09 10:36:04       31 阅读
  2. Docker基本架构概览-1

    2024-01-09 10:36:04       7 阅读
  3. 安全架构概述

    2024-01-09 10:36:04       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-09 10:36:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-09 10:36:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-09 10:36:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-09 10:36:04       18 阅读

热门阅读

  1. Serverless架构的理论基础和发展历程

    2024-01-09 10:36:04       35 阅读
  2. 【flink番外篇】14、Flink异步I/O访问外部数据示例

    2024-01-09 10:36:04       40 阅读
  3. Docker的基本概念和优势

    2024-01-09 10:36:04       34 阅读
  4. OpenCV 配置选项参考(一)

    2024-01-09 10:36:04       46 阅读
  5. 站长工具之PHP单文件实现IP归属地批量查询

    2024-01-09 10:36:04       31 阅读
  6. Kafka内外网访问

    2024-01-09 10:36:04       39 阅读
  7. 文本分析之词云图的绘制

    2024-01-09 10:36:04       34 阅读
  8. 编程语言的新趋势

    2024-01-09 10:36:04       38 阅读
  9. Python数据可视化交互式HvPlot库

    2024-01-09 10:36:04       34 阅读
  10. [设计模式 Go实现] 结构型~享元模式

    2024-01-09 10:36:04       37 阅读