以下是Fabric网络的核心节点关系示意:
graph TBsubgraph "应用程序层"App[客户端应用<br/>SDK/CLI]Admin[网络管理员]endsubgraph "组织1 (Org1)"CA1[证书权威机构<br/>CA1]subgraph "Peer节点集群"Peer1_Anchor[锚节点<br/>peer0.org1]Peer1_2[对等节点<br/>peer1.org1]endLedger1[(账本)]CC1[链码容器]endsubgraph "组织2 (Org2)"CA2[证书权威机构<br/>CA2]subgraph "Peer节点集群"Peer2_Anchor[锚节点<br/>peer0.org2]Peer2_2[对等节点<br/>peer1.org2]endLedger2[(账本)]CC2[链码容器]endsubgraph "排序服务"Orderer1[排序节点1<br/>Orderer]Orderer2[排序节点2<br/>Orderer]Orderer3[排序节点3<br/>Orderer]OS_Channel[系统通道]App_Channel[应用通道]end%% 连接关系App -->|交易提案| Peer1_AnchorApp -->|交易提案| Peer2_AnchorPeer1_Anchor -->|背书响应| AppPeer2_Anchor -->|背书响应| AppApp -->|交易广播| Orderer1Orderer1 -->|区块分发| Peer1_AnchorOrderer1 -->|区块分发| Peer2_Anchor%% 组织内部连接CA1 -->|颁发证书| Peer1_AnchorCA1 -->|颁发证书| Peer1_2CA2 -->|颁发证书| Peer2_AnchorCA2 -->|颁发证书| Peer2_2Peer1_Anchor -->|同步| Ledger1Peer1_2 -->|同步| Ledger1Peer2_Anchor -->|同步| Ledger2Peer2_2 -->|同步| Ledger2Peer1_Anchor -->|运行| CC1Peer2_Anchor -->|运行| CC2%% 节点间通信Peer1_Anchor -.->|Gossip协议<br/>区块同步| Peer1_2Peer2_Anchor -.->|Gossip协议<br/>区块同步| Peer2_2Peer1_Anchor -.->|跨组织发现| Peer2_Anchor%% 排序服务集群Orderer1 <-->|Raft共识| Orderer2Orderer2 <-->|Raft共识| Orderer3Admin -->|通道配置| Orderer1Admin -->|组织管理| CA1Admin -->|组织管理| CA2%% 通道关系Peer1_Anchor -->|加入| App_ChannelPeer2_Anchor -->|加入| App_ChannelOrderer1 -->|管理| App_Channel
关键节点关系说明:
1. 客户端节点
- 应用程序/管理员:发起交易和管理的入口
2. Peer节点(对等节点)
- 背书节点:执行链码并背书交易
- 提交节点:验证交易并维护账本
- 锚节点:负责跨组织通信发现
- 领导节点:与排序服务通信的代表
3. 排序服务节点
- 排序节点集群:使用Raft/Kafka等共识算法排序交易
- 系统通道:管理网络配置
- 应用通道:隔离业务数据
4. 证书权威机构(CA)
- 每个组织拥有独立的CA
- 负责颁发身份证书
5. 数据存储
- 世界状态:CouchDB/LevelDB
- 区块链:文件系统存储区块
- 私有数据:可选私有数据库
典型交易流程:
- 提案:客户端 → 背书节点
- 模拟执行:背书节点执行链码
- 背书签名:背书节点返回响应
- 排序:客户端 → 排序服务
- 验证提交:排序服务 → 所有节点
- 账本更新:节点更新本地账本
这个架构支持多组织参与、通道隔离、模块化扩展等企业级特性。