Skip to content

cbdc-solution · 配置

配置来源优先级

来源作用
dev/config/cbdc-dev 使用的已提交开发模板
dev/envs/*.local.env本地/远程资源与镜像覆盖
dev/run/config/控制器渲染结果,不应手改
各 module conf/模块级、Docker 兼容或交付模板
offline-deployment/ / k8s-deploy/离线与 K8s 部署模板

配置 schema 由各模块 internal/conf/conf.proto 和公共 api/conf/v1 定义。容器 entrypoint 只对 YAML 执行 envsubst,证书和 keystore 保留为挂载文件。

端口与数据库

服务gRPCHTTPP2PFSC Web数据库
Issuer910091019102cbdc_issuer
Endorser930093019302cbdc_endorser1
Wallet Node9500950295019503module 模板 cbdc_walletnode;dev 模板 cbdc_institution
Auditor975097519752cbdc_auditor
BizHub9000cbdc_biz
Central80018000cbdc_central
Facade96009601

Token driver

不要脱离配置来源谈“当前 driver”:

yaml
# dev/config/token/*/core.yaml
token:
  tms:
    mytms:
      driver: zkatdlog

# cbdc-token/conf/*/core.yaml
token:
  tms:
    mytms:
      driver: fabtoken

./dev/cbdc-dev 默认使用第一组;模块配置或交付模板可能使用另一组。公共参数文件名也随 driver 不同,必须由同一启动配置决定。

FSC WebSocket P2P

四个节点使用相同结构:

yaml
fsc:
  identity:
    cert: { file: /data/keys/node.crt }
    key:  { file: /data/keys/node.key }
  p2p:
    listenAddress: /ip4/0.0.0.0/tcp/9501
    type: websocket
    opts:
      websocket:
        maxSubConns: 8192
        tls:
          serverRootCAs:
            files: [/data/keys/ca-cert.pem]
          clientRootCAs:
            files: [/data/keys/ca-cert.pem]

节点叶证书需要 clientAuth,serverAuth,并包含节点域名、短名与 localhost DNS SAN。listenAddress/ip4/.../tcp/... 只是 listener 地址格式,不能据此判断传输仍是 libp2p。

Wallet Node 路由

yaml
biz:
  cbdc:
    shardCode: "1"

当前单分片实现要求配置 shard 与 walletid.SingleShard 一致,否则 Wallet Node 启动 panic。Facade 与 BizHub 的 walletNodes[] 都按 shardCode 建立客户端;业务机构码不参与分片地址选择。

BizHub

关键配置:

  • server.grpc.tls:server cert、key、clientAuthRequired 和客户端根;
  • data.databasecbdc_biz
  • upstreams.issuer
  • upstreams.walletNodes[]shardCode、地址和 timeout;
  • ca:单一 wallet CA admin MSP 与 PKCS#11 defaults;
  • rtgs:MT298、SMB 与 keystore;
  • startup_mode 或 CLI -mode:空 / runtime / management。

Central

Central 使用 cbdc_central,通过显式 client cert/key 以 RoleCentral 连接 BizHub。Auditor upstream 当前为 plaintext。server.security 包含 session、密码轮换、锁定与 OTP key;notification.emailapproval.executor 默认关闭。

Facade

Facade 配置包含:

  • biz.server.grpc/http
  • biz.upstreams.bizhub:mTLS;
  • biz.upstreams.walletNodes[]:按 shard 的 Wallet Node;
  • biz.clientAuth.skewWindow
  • biz.clientAuth.refreshInterval

Facade 本身无数据库;认证公钥是从 BizHub 刷新的进程内快照。

dev 环境变量

控制器内置本地默认值。常见覆盖项:

变量用途
DEV_POSTGRES_RUNTIMEdocker / remote
DEV_KMS_RUNTIMEDEV_CA_RUNTIME必须同时为 dockerremote
DEV_RTGS_RUNTIMEdocker / remote / disabled
DEV_NETWORK_RUNTIMEdocker / remote
DOCKER_*_IMAGE指定远程或预构建镜像
DEV_REMOTE_*远程资源地址与凭据

个人覆盖应放在 dev/envs/<name>.local.env,不要提交运行凭据。

数据迁移

模块权威 schema迁移命令版本表
BizHubcbdc-bizhub/internal/data/ent/schemabizhub migratebizhub_schema_migrations
Centralcbdc-central/internal/data/ent/schemacentral migrateCentral 自有迁移链

两者不再共享 schema 权威或数据库。