主题
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 保留为挂载文件。
端口与数据库
| 服务 | gRPC | HTTP | P2P | FSC Web | 数据库 |
|---|---|---|---|---|---|
| Issuer | 9100 | — | 9101 | 9102 | cbdc_issuer |
| Endorser | 9300 | — | 9301 | 9302 | cbdc_endorser1 |
| Wallet Node | 9500 | 9502 | 9501 | 9503 | module 模板 cbdc_walletnode;dev 模板 cbdc_institution |
| Auditor | 9750 | — | 9751 | 9752 | cbdc_auditor |
| BizHub | 9000 | — | — | — | cbdc_biz |
| Central | 8001 | 8000 | — | — | cbdc_central |
| Facade | 9600 | 9601 | — | — | 无 |
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.database:cbdc_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.email 和 approval.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_RUNTIME | docker / remote |
DEV_KMS_RUNTIME、DEV_CA_RUNTIME | 必须同时为 docker 或 remote |
DEV_RTGS_RUNTIME | docker / remote / disabled |
DEV_NETWORK_RUNTIME | docker / remote |
DOCKER_*_IMAGE | 指定远程或预构建镜像 |
DEV_REMOTE_* | 远程资源地址与凭据 |
个人覆盖应放在 dev/envs/<name>.local.env,不要提交运行凭据。
数据迁移
| 模块 | 权威 schema | 迁移命令 | 版本表 |
|---|---|---|---|
| BizHub | cbdc-bizhub/internal/data/ent/schema | bizhub migrate | bizhub_schema_migrations |
| Central | cbdc-central/internal/data/ent/schema | central migrate | Central 自有迁移链 |
两者不再共享 schema 权威或数据库。