Skip to content

cbdc-solution · 模块详解

工作区模块

路径Go module说明
cbdc-token/github.com/built-by-sign/cbdc-token四个 FSC / Token 节点及共享 Token 业务包
cbdc-bizhub/github.com/built-by-sign/cbdc-bizhub业务权威与 RTGS 编排
cbdc-central/github.com/built-by-sign/cbdc-central管理服务与 Web Console
cbdc-facade/github.com/built-by-sign/cbdc-facade银行侧 API 网关
cbdc-common/github.com/built-by-sign/cbdc-common跨模块公共库和公开客户端
cbdc-rtgs-mock/github.com/built-by-sign/cbdc-rtgs-mockRTGS mock
cbdc-stress/cbdc-stress压测工具
dev/controller/github.com/built-by-sign/cbdc-chain/dev/controller开发环境控制器
tests/cbdc-solution-tests集成测试

cbdc-token

应用

应用入口业务端口Proto 服务
Issuerapp/issuer/cmd/issuer9100IssuerService
Endorserapp/endorser/cmd/endorser9300EndorserService
Wallet Nodeapp/walletnode/cmd/walletnode9500 / HTTP 9502WalletNodeOpsService
Auditorapp/auditor/cmd/auditor9750AuditorService

四个应用共享 cbdc-token/docker/Dockerfile。构建循环和镜像内二进制名称都是 auditor issuer endorser walletnode

公共包

职责
pkg/nodesdkFSC 启动、动态 node resolver 同步
pkg/token/viewsissue / transfer / redeem / audit / endorsement 等 FSC View
pkg/token/wallet钱包身份、策略钱包、pending transaction、签名器
pkg/token/idemixholder银行自持 Idemix 密钥与 enrollment 辅助
pkg/token/selectormemory / Redis 分布式 UTXO 选择器
pkg/token/utxomgrUTXO 合并、拆分与规划
pkg/token/fee / marked费用与资产标记
pkg/audit/*规则集、撤销、拒绝和审计信封签名
pkg/client/bizhubToken 节点访问 BizHub 的 mTLS client

关键依赖

cbdc-token/go.mod 当前直接依赖 Panurus、FSC v0.14.2、Fabric-X common v0.2.7、Kratos v3 和 Redis。Panurus module 通过 replace 指向 Built-by-Sign fork;旧的 fabric-token-sdk v0.11.0 描述已过时。

cbdc-bizhub

BizHub 内部按边界拆分:

text
api/management/v1       Central-facing 管理 API
api/runtime/v1          Token / Facade 运行时 API
api/v1/bizhub           结算、费用、审批、审计和索引兼容 API
internal/service/*      DTO、认证、use-case 调用
internal/biz/<module>   状态机、事务和 Ent 访问
internal/data           数据库与通用事务基础设施
internal/worker         结算、策略 reconcile、节点注册调度

当前 Ent schema 共 20 个:

text
account_type             asset_mark              asset_mark_limit
audit_rejection_log      auditor_ruleset         auth_client
fee_config               fee_transaction         index_cursor
institution              ledger_transaction      node_registry
node_registry_meta       settlement_request      sys_message
tx_selector_group        wallet_lifecycle        wallet_meta
wallet_status_log        wallet_tag

bizhub migrate 使用独立的 bizhub_schema_migrations 版本链。BizHub 是 cbdc_biz 的 schema 与迁移权威。

cbdc-central

Central 包含:

  • internal/auth:密码、session、OTP、WebAuthn;
  • internal/approval:审批定义、实例、任务与执行命令;
  • internal/audit:管理操作审计与字段脱敏;
  • internal/client:BizHub management 与 Auditor 客户端;
  • internal/data:Central 自有数据库;
  • web:React / Vite 管理前端。

Central 的 9 个 entity schema 文件为 approvalnotificationsys_audit_logsys_rolesys_role_permissionsys_sessionsys_usersys_user_rolesys_webauthn_credential,另有共享 mixin。approval.go 定义 6 个审批 entity,因此合计生成 14 个 entity。业务机构、费用、标记、标签与规则不在 Central DB 保留权威副本。

cbdc-facade

Facade 当前不是脚手架,结构为:

text
api/v1/{wallet,transfer,transaction}.proto
internal/auth       请求签名规范化、校验、公钥快照
internal/client     BizHub + 分片 Wallet Node clients
internal/service    三个银行侧服务的编排与响应映射
internal/server     gRPC / HTTP 注册、统一错误 envelope

Facade 无本地数据库。它从 BizHub 刷新 auth_client 公钥,依据签名上下文确定调用机构;钱包绑定请求按钱包 ID 分片路由。

cbdc-common

当前公共能力包括:

职责
auth/mtls从已验证客户端证书提取角色,RequireRoles 显式授权
client/*Auditor / BizHub / Issuer / Wallet Node 客户端与生成快照
noderegistry节点注册模型和同步协议
wallet / walletlifecycle / policy钱包 ID、生命周期和策略共享类型
transport/grpcTLS client 配置与拨号
observability/signetOpenTelemetry / Signet 初始化
scheduler / syncutil / workerpool后台调度、周期同步和并发边界

cbdc-infra 与 dev

cbdc-infra 负责:

  • cbdc-tool 镜像;
  • cbdc-orderer-kms
  • cbdc-committer-kms

dev/controller 负责解析环境组合、构建/拉取镜像、生成证书和配置、启动分层 Compose、切换 host debug、初始化 Endorser 以及执行验证。开发 topology 位于 dev/config/network/

tests

集成测试当前覆盖:审计规则、费用、标记 token、批量转账、Endorser proxy、账本索引以及 Idemix policy key。测试连接地址和 BizHub mTLS 材料由 controller 在 verify 阶段注入。