当前位置: 首页 > news >正文

Hyperledger Fabric 节点拓扑与交易流程

Fabric网络的核心架构和典型交易流程:

graph TB%% ========== 网络参与者 ==========subgraph "客户端/应用程序层"Client[客户端应用程序<br/>/ SDK]Admin[网络管理员<br/>/ CLI]endsubgraph "组织1 - Org1"CA1[证书权威机构<br/>CA1]subgraph "Peer节点集群"P1_Anchor[锚节点/背书节点<br/>peer0.org1.com]P1_Commit[提交节点<br/>peer1.org1.com]endLedger1[(账本<br/>世界状态 + 区块链)]Chaincode1[链码容器<br/>(智能合约)]P1_Anchor -->|运行| Chaincode1P1_Anchor -->|维护| Ledger1P1_Commit -->|同步| Ledger1CA1 -->|颁发身份| P1_AnchorCA1 -->|颁发身份| P1_Commitendsubgraph "组织2 - Org2"CA2[证书权威机构<br/>CA2]subgraph "Peer节点集群"P2_Anchor[锚节点/背书节点<br/>peer0.org2.com]P2_Commit[提交节点<br/>peer1.org2.com]endLedger2[(账本<br/>世界状态 + 区块链)]Chaincode2[链码容器<br/>(智能合约)]P2_Anchor -->|运行| Chaincode2P2_Anchor -->|维护| Ledger2P2_Commit -->|同步| Ledger2CA2 -->|颁发身份| P2_AnchorCA2 -->|颁发身份| P2_Commitendsubgraph "排序服务集群 (Raft共识)"Orderer1[排序节点1]Orderer2[排序节点2]Orderer3[排序节点3]Orderer1 <-->|Raft共识| Orderer2Orderer2 <-->|Raft共识| Orderer3Orderer3 <-->|Raft共识| Orderer1OS_Channel[系统通道<br/>管理网络配置]App_Channel[应用通道<br/>myChannel]end%% ========== 通道成员关系 ==========P1_Anchor -->|加入| App_ChannelP2_Anchor -->|加入| App_ChannelOrderer1 -->|服务| App_Channel%% ========== 典型交易流程 ==========subgraph "交易流程"style Client fill:#e1f5e1,stroke:#2e7d32,stroke-width:2pxstyle P1_Anchor fill:#e1f5e1,stroke:#2e7d32,stroke-width:2pxstyle P2_Anchor fill:#e1f5e1,stroke:#2e7d32,stroke-width:2pxstyle Orderer1 fill:#e1f5e1,stroke:#2e7d32,stroke-width:2pxend%% 步骤1: 提案Client -- "1. 交易提案<br/>(包含链码调用参数)" --> P1_AnchorClient -- "1. 交易提案" --> P2_Anchor%% 步骤2: 模拟执行与背书P1_Anchor -- "2. 模拟执行链码<br/>生成读写集" --> Chaincode1P2_Anchor -- "2. 模拟执行链码<br/>生成读写集" --> Chaincode2P1_Anchor -- "3. 返回签名背书" --> ClientP2_Anchor -- "3. 返回签名背书" --> Client%% 步骤3: 排序Client -- "4. 广播已背书交易<br/>到排序服务" --> Orderer1%% 步骤4: 区块分发Orderer1 -- "5. 排序并生成区块<br/>通过Gossip分发" --> P1_AnchorOrderer1 -- "5. 排序并生成区块<br/>通过Gossip分发" --> P2_Anchor%% 步骤5: 验证与提交P1_Anchor -- "6. 验证交易<br/>(检查背书策略)" --> Ledger1P2_Anchor -- "6. 验证交易<br/>(检查背书策略)" --> Ledger2%% 步骤6: 账本更新P1_Anchor -- "7. 更新世界状态<br/>追加区块到链" --> Ledger1P2_Anchor -- "7. 更新世界状态<br/>追加区块到链" --> Ledger2%% Gossip协议通信P1_Anchor -.->|Gossip协议<br/>区块同步| P1_CommitP2_Anchor -.->|Gossip协议<br/>区块同步| P2_CommitP1_Anchor -.->|Gossip协议<br/>跨组织发现| P2_Anchor%% 管理操作Admin -->|创建/更新通道| Orderer1Admin -->|安装/实例化链码| P1_AnchorAdmin -->|安装/实例化链码| P2_Anchor

Hyperledger Fabric 交易流程详解

阶段1:交易提案 (步骤1-3)

  1. 客户端构建提案:创建包含链码调用参数的交易提案
  2. 发送到背书节点:根据背书策略发送给指定组织的背书节点
  3. 模拟执行:背书节点执行链码(不更新账本),生成读写集
  4. 生成背书:节点签名并返回背书响应给客户端

阶段2:排序服务处理 (步骤4)

  1. 收集背书:客户端收集足够数量的有效背书
  2. 提交排序:将已背书交易提交到排序服务
  3. 全局排序:排序服务使用共识算法(如Raft)对交易排序
  4. 打包区块:将交易打包成区块

阶段3:验证与提交 (步骤5-7)

  1. 区块分发:排序服务将区块分发给通道内的所有Peer节点
  2. 交易验证:每个Peer独立验证交易(检查背书、版本冲突等)
  3. 账本更新:有效交易更新世界状态,区块追加到区块链
  4. 事件通知:通知客户端交易完成

关键架构特点

1. 模块化设计

  • 解耦执行与排序:提高性能和扩展性
  • 可插拔共识机制:支持Raft、Kafka等
  • 灵活的成员服务:每个组织独立CA

2. 通道隔离

  • 数据隔离:通道间账本完全隔离
  • 策略定制:每个通道独立的背书、访问控制策略
  • 灵活参与:组织可选择加入多个通道

3. 高可用性

  • 多节点冗余:Peer节点、排序节点均可集群部署
  • Gossip协议:高效的P2P数据分发
  • 故障容错:共识机制确保网络稳定性

4. 隐私保护

  • 私有数据集合:敏感数据可存储在私有数据库
  • 通道隔离:限制数据访问范围
  • 交易加密:端到端数据保护

这个架构使Fabric特别适合企业联盟链场景,能够在多个互不信任的组织间建立可信的协作网络。

http://www.jsqmd.com/news/150990/

相关文章:

  • C++实现漂亮数组问题的高效解法
  • 构建企业级AI应用首选:高性能TensorRT推理服务架构设计
  • Linux网络编程1(OSI模型与TCP/IP协议栈)
  • 不想被竞品甩开?快把TensorRT集成进你的大模型产品线
  • MMCV包的安装教程
  • NX系统中GPIO抽象层开发完整示例
  • Linux网络编程2(HTTP 协议、IO 多路复用)
  • XDMA在Ultrascale+开发板上的上电调试实战示例
  • 边缘计算也能跑大模型?TensorRT + Jetson超详细部署教程
  • Seurat V5 结构树和基础整合pipeline
  • STM32 HAL库I2S驱动编写:手把手教程
  • Keil MDK下载与工程创建完整示例:从零实现嵌入式项目
  • CCS20多文件编译优化协调策略一文说清
  • 深度剖析sbit:底层寄存器映射机制揭秘
  • Transformer模型层融合技巧:来自TensorRT的底层优化逻辑
  • 大模型服务成本太高?用TensorRT镜像降低GPU资源消耗
  • 以视频为空间感知源的统一建模关键技术研究
  • STLink引脚图详解:STM32调试接口全面讲解
  • STM32移植ModbusTCP协议栈的项目应用
  • 大模型推理延迟下降70%?看我们是如何用TensorRT做到的
  • 图解说明STM32平台波形发生器设计原理
  • TensorRT技术揭秘:如何让HuggingFace模型在生产环境飞起来?
  • 科研协作匹配平台:研究方向关联由TensorRT智能发现
  • 患者随访管理系统:提醒与反馈收集通过TensorRT自动化
  • Keil5新建项目操作指南:适用于初学者
  • 基于COMSOL计算微纳结构中的多级散射
  • 远程手术指导系统:操作建议传输通过TensorRT低延迟保障
  • STM32实现ModbusRTU通信:手把手教程(从零开始)
  • 研发项目进度预测:里程碑达成概率由TensorRT持续估算
  • 利用STM32硬件I2C模拟SMBus协议:操作指南