Skip to content

07 总体架构与部署边界

07.1 架构概览

平台采用分层、职责分离的许可型架构。对外接入、业务编排、Token 处理、账本最终性、身份与密钥管理、数据存储及可观测性相互协作,但不应由任一单点服务同时承担全部职责。

图中为逻辑边界,不替代正式网络拓扑、端口矩阵和部署清单。生产网络分区、主备模式、节点数量和跨数据中心部署依赖甲方基础设施与性能/灾备要求确认。

07.2 组件边界

层级组件主要责任不应承担的责任
接入层Facade、机构接口协议适配、认证、输入校验、访问控制账本权威状态或私钥托管
业务控制层Central、BizHub管理、规则、审批、机构协同、结算编排绕过账本直接确认数字货币最终性
Token 业务层Issuer、Wallet Node、Endorser、Auditor发行、持有、交易、背书、审计职责未授权跨机构数据访问
账本层Orderer、Committer、Query排序、验证、提交、最终性、查询业务 UI 与政策审批
信任层CA、KMS/HSM证书、密钥、签名和生命周期控制业务规则裁决
数据与运行层PostgreSQL、Redis、OTel 等持久化、协调、遥测、备份与恢复代替应用层授权

07.3 当前项目技术基线

当前代码库可见的业务组件包括 cbdc-facadecbdc-centralcbdc-bizhub 和 Token 节点(Issuer、Wallet Node、Endorser、Auditor);账本相关组件包括 Fabric-X Orderer、Committer 和查询能力;身份与签名能力通过 CA 与 Sign-KMS/HSM 集成提供。实现细节参见系统整体架构cbdc-solution 架构

实际生产部署应以获批版本、环境配置和容量设计为准。开发用 Docker Compose、样例端口和默认配置不构成生产架构承诺。

07.3.1 Wallet Cluster 与钱包服务分片

Wallet Cluster 是平台侧承载钱包执行能力的逻辑集群,由一个或多个 Wallet Node 分片组成。Wallet Node 是平台执行组件,不等同于商业银行或某一种钱包类型。它负责其服务范围内的钱包注册和查询、Token/UTXO 管理、交易准备与提交、余额查询,以及钱包所有权策略的本地执行投影。

钱包相关请求按以下路径路由:

text
银行系统 → Facade → 根据 wallet_id 解析服务分片 → Wallet Node → Fabric-X 账本

各组件的责任边界如下:

组件对钱包的责任
Facade认证银行调用方;按钱包 ID 将钱包相关请求路由到内部服务分片;不向银行侧暴露分片拓扑
BizHub管理钱包 ID 分配、生命周期、所属机构和钱包所有权策略,是相关控制面信息的权威来源
Wallet Node保存并执行该分片所需的钱包投影和本地 Token/UTXO 状态
Fabric-X 账本保存最终 Token 所有权、交易顺序和提交结果

每个钱包在任一时刻只由一个 Wallet Node 分片服务。institution_code 表示钱包所属银行,shard_code 表示平台内部执行分片,两者不得混用:一个分片可以服务多个机构和多个钱包类别;扩展部署中,同一机构的钱包也可以分布到多个分片。

当前已实现的首发基线为单 Wallet Node 分片:所有有效钱包均解析到 shard 1。Facade、BizHub 和 Wallet Node 使用同一 ShardOf(wallet_id) 规则;启动检查会拒绝当前路由规则无法覆盖的第二个 Wallet Node,避免产生静默误路由。因此,当前版本不将多 Wallet Node 分片表述为已经交付的生产能力。

多分片属于后续扩展能力。正式启用前必须通过 ADR 明确放置算法、路由表权威来源、扩缩容和迁移流程、跨分片交易处理、故障切换、对账及验收证据。可选方案包括完整钱包 ID 哈希、UID 区间或由 BizHub 管理的放置映射。分片信息不编码进钱包 ID,以保证重新分片时不需要重新签发钱包 ID。

07.3.2 分片术语边界

本方案中存在三种用途不同的“分片”,不得相互替代:

分片类型作用是否决定钱包业务类别
Wallet Node 分片划分钱包执行、Token/UTXO 和请求处理负载
Fabric-X Orderer/Batcher 分片划分交易批处理和排序负载
Redis、缓存或锁分片降低本地或分布式并发竞争

Wallet Node 分片与 Fabric-X 排序分片是不同层级的扩展机制;钱包类别、所属机构和生命周期状态均不能作为二者的同义词。钱包业务分类和标识规则见第 04 章

07.4 跨组件调用规则

  • 接口以版本化 gRPC/Proto 或批准的 HTTP 契约为准,禁止通过读取其他服务私有数据库集成。
  • 所有同步出站调用须设置 deadline;重试只适用于幂等且明确可恢复的失败。
  • 后台 Worker 和多副本任务应使用数据库锁、租约、幂等记录或等效控制,不能只依赖进程内锁。
  • 资金类操作应在业务记录、账本状态和外部结果之间维持可恢复的状态机。
  • 组件升级应验证新旧 API、Schema、配置和证书的兼容性。

07.5 部署边界与网络

生产部署至少区分外部接入区、业务服务区、账本区、数据区、密钥/证书区和监控运维区。跨区访问采用最小开放端口、受控网络策略、TLS/mTLS 与审计。数据库、缓存、KMS/HSM 管理接口和运维接口不得直接暴露到不受信网络。

正式部署图须列明:环境、区域/数据中心、节点/副本、网络区、入口与出口、端口、协议、证书身份、数据存储、备份位置、监控接入和故障切换路径。

07.6 架构验收证据

架构评审至少交付逻辑架构图、部署图、数据流图、接口清单、信任边界、端口/防火墙矩阵、组件责任矩阵、依赖清单和 ADR。各图表需绑定版本,并与实际部署配置一致。