Skip to content

cbdc-solution · 架构

运行分层

服务边界

Token 节点

四个节点都由 cbdc-token/pkg/nodesdk.StartFSC 装载 FSC 与 Panurus,并通过同一 cbdc-token 镜像运行:

节点业务服务FSC P2P主要职责
Issuer91009101发行、总供应量、赎回响应
Endorser93009301TMS 初始化、审计代理与背书响应
Wallet Node9500 / HTTP 95029501钱包、策略、选币、转账、赎回、交易查询
Auditor97509751审计规则、审计签章、拒绝记录、账本索引

fsc.web 另外使用 9102930295039752。P2P listenAddress 仍是 multiaddr 形式,但 fsc.p2p.type 已统一为 websocket

BizHub

BizHub 是一个 module、一个二进制、一个镜像,可通过 -mode runtime|management 选择注册边界;空值在开发环境同时启用两者。all 不是有效 mode。

  • Runtime 面面向 Wallet Node、Facade、Issuer、Auditor 等运行时调用。
  • Management 面面向 Central,服务方法通过 mtls.RequireRoles(...RoleCentral) 授权。
  • 两种 workload 使用同一 BizHub 数据库,但生产可部署为独立实例。
  • 数据库变更由 bizhub migrate 一次性任务执行,服务启动不自动改表。

Central

Central 管理人、权限、会话、审批、通知和审计日志;业务配置与机构数据通过 BizHub management RPC 读写。它自己的数据库是 cbdc_central,不再直接共享或迁移 cbdc_biz

Facade

Facade 是银行侧服务面,不再是空脚手架。它暴露 Wallet / Transfer / Transaction 三个服务,通过 Ed25519 请求签名确定调用银行,再:

  • 到 BizHub 分配钱包 ID、查询鉴权与 CA 身份相关数据;
  • 根据 wallet.ShardOf(wallet_id) 选择 Wallet Node;
  • 对外隐藏 shard_code 和内部节点地址。

P2P 与证书

cbdc-token/scripts/gen_crypto.sh 建立的链为 Fabric CA Root → 共享 TLS Intermediate CA → 节点叶证书。Wallet Node 的统一证书同时用于 FSC P2P 与调用 BizHub 的 mTLS;WebSocket 对端会按拨号主机校验证书,因此证书必须包含对应 DNS SAN 和 serverAuth

开发控制器在本机 debug 时为 P2P 地址使用 localhost 而非 127.0.0.1,与生成证书的 SAN 保持一致(dev/controller/main.go)。

动态节点注册

节点端点不再只靠静态 resolver:

  • BizHub NodeRegistryService 接收运行时节点注册和心跳;
  • Management API 管理节点注册数据;
  • Auditor、Endorser 使用 nodesdk.NewNodeRegistrarForNode 注册自己的外部可达地址;
  • Wallet Node、Issuer 使用 nodesdk.NewNodeResolverSyncForNode,把 BizHub 中的 Auditor / Endorser 快照同步到本地 FSC endpoint service;
  • Wallet Node 路由以 shard_code 为键,不从业务机构码推导。

静态 fsc.endpoint.resolvers 仍为启动配置的一部分,动态注册用于运行时发现与更新。

数据所有权

数据库所有者内容
cbdc_bizBizHub机构、钱包生命周期、节点注册、规则、费用、标记、结算、索引等
cbdc_centralCentralsys_*、审批、通知、WebAuthn 等管理台数据
cbdc_walletnode / 开发模板中的 cbdc_institutionWallet Node / PanurusFSC、钱包与交易本地持久化
cbdc_issuer / cbdc_endorser1 / cbdc_auditor对应 Token 节点 / Panurus各节点的 FSC / Token 本地状态

BizHub 当前有 20 个 Ent entity schema;Central 的 9 个 entity schema 文件定义 14 个 entity(审批相关 6 个集中在 approval.go),另有共享 mixin。具体清单见模块详解

镜像与网络归属

  • cbdc-token/docker/Dockerfile 构建 auditorissuerendorserwalletnode 四个二进制。
  • cbdc-infra/cbdc-network/ 构建 KMS-enabled Orderer / Committer 镜像。
  • 网络 topology 来源是 dev/config/network/,生成态位于 dev/run/config/cbdc-network/;旧的顶层 cbdc-network/ 运行入口已不再是开发环境权威路径。