主题
cbdc-chain · 架构
三层模型
来源:实测 cbdc-biz/conf/<role>/core.yaml、cbdc-biz/app/、cbdc-network/Makefile、cbdc-infra/Makefile。
监听端口(实测 cbdc-biz/conf/<role>/core.yaml):
| 服务 | gRPC | FSC p2p | 出处 |
|---|---|---|---|
| Endorser | 9300 | 9301 | cbdc-biz/conf/endorser1/core.yaml:7, 24 |
| Issuer | 9100 | 9101 | cbdc-biz/conf/issuer/core.yaml:9, 30 |
| Auditor | 9750 | 9751 | cbdc-biz/conf/auditor/core.yaml:16, 67 |
| Institution-001 | 9500 | 9501 | cbdc-biz/conf/institution-001/core.yaml:8, 46 |
| BizHub | 9000 | — | cbdc-biz/conf/bizhub/core.yaml:50 |
| Fabric CA | 7054 | — | cbdc-network/.env.example:32(CA_URL) |
| KMS gRPC / HTTP | 9200 / 9201 | — | sign-kms |
cbdc-biz 子结构
来源:cbdc-biz/app/、cbdc-biz/pkg/、cbdc-biz/api/。
5 个业务应用(共同模板)
cbdc-biz/app/<app>/
├── cmd/<app>/
│ ├── main.go —— Kratos app 启动
│ └── wire.go —— Wire DI
├── internal/
│ ├── biz/ —— 业务逻辑
│ ├── data/ —— 数据层(Repository + Ent ORM)
│ ├── service/ —— gRPC 服务实现
│ └── conf/ —— 配置 proto
└── Makefile公共包(cbdc-biz/pkg/)
| 包 | 职责 |
|---|---|
common/nodesdk | FSC 节点启动 SDK |
identity/ | 身份与钱包管理 |
keystore/ | 密钥存储(PKCS#11 + JKS) |
observability/ | OTel tracing 与日志 |
rtgs/ | SWIFT MT298 + SMB RTGS 集成 |
token_selector/ | UTXO 选币 |
utxo_management/ | UTXO 锁定与管理 |
auditor/ | 审计日志、规则树处理 |
scheduler/ | 定时任务(cron v3) |
signet/ | OpenTelemetry 集成 |
views/ | Token SDK View 实现 |
workerpool/ | 工作线程池 |
API 定义(cbdc-biz/api/)
16 个 .proto 文件(proto3,均在 cbdc-biz/api/cbdc-biz/v1/)。顶层服务:EndorserService / IssuerService / AuditorService / InstitutionOpsService;kms/ 下 KmsService / KmsManageService;bizhub/ 下 ManageService / WalletService / ApprovalService / SettlementService / IndexerService / CAService 等。
cbdc-network 关键事实
来源:cbdc-network/README.md:1-228、cbdc-network/Makefile。
| 项 | 值 |
|---|---|
| 默认 KMS 配置 | configs/test-full-kms.yaml(Makefile:82 KMS_CONFIG) |
| TLS 默认 | TLS_ENABLED=true / TLS_CLIENT_AUTH_REQUIRED=true(.env.example:39-40) |
| 镜像版本来源 | git tag network/*,make version 查看(Makefile:312) |
| 编排输出 | cbdc-network/out/docker-compose.yaml(由 cbdc-tool 镜像内 config-builder gen-compose 生成,Makefile:110-115) |
环境变量(cbdc-network/.env.example):
SIGN_KMS_ENDPOINT=cbdc-dev.sign.global:9200
KMS_TOKEN_LABEL=KMS_TK
KMS_USER_PIN=<JWT token>
CA_URL=http://admin:adminpw@cbdc-dev.sign.global:7054
TLS_ENABLED=true
TLS_CLIENT_AUTH_REQUIRED=truecbdc-infra 关键事实
来源:cbdc-infra/Makefile、cbdc-infra/cbdc-tool/Dockerfile。
cbdc-infra/ 下仅 cbdc-tool/ 一个目录;Makefile 的 build-all 构建 cbdc-tool 与 cbdc-ca-server-kms 两个镜像(Makefile:15)。
| 镜像 | 内容 |
|---|---|
cbdc-tool | 基于 ghcr.io/built-by-sign/fabric-x-tool,叠加从 sign-kms 镜像复制的 libkms_pkcs11.so(cbdc-tool/Dockerfile:8,20);提供 config-builder / fxconfig |
环境变量(cbdc-infra/.env-example):
IMAGE_PREFIX=cbdc-dev.sign.global:5000
SIGN_KMS_IMAGE=cbdc-dev.sign.global:5000/sign-kms:v0.1.5
PLATFORM=linux/arm64,linux/amd64镜像版本来源:git tag infra/*(README.md:10-24)。
cbdc-stress 关键事实
来源:cbdc-stress/README.md:1-251、cbdc-stress/main.go:26-35、cbdc-stress/go.mod。
| 项 | 值 |
|---|---|
| 实现 | 纯 Go(crypto/ecdsa + net/http),go.mod 无第三方依赖 |
| 分发模型 | 原子计数器环形分发,避免 worker 撞同一 sender |
| 默认 URL | http://34.60.193.75:9502(-url flag,main.go:27) |
| 默认并发 | 30 worker,60s 时长,慢启动 2s(-c、-d、-ramp,main.go:30-32) |
| 报告输出 | P50 / P90 / P95 / P99 + 失败原因汇总 |
启动依赖关系
来源:README.md:64-83。
Docker 镜像版本管理
来源:README.md:239-302。
| 模块 | git tag 前缀 | 示例 |
|---|---|---|
| cbdc-biz | biz/v* | biz/v0.0.6 |
| cbdc-network | network/v* | network/v0.1.0 |
| cbdc-infra | infra/v* | infra/v0.0.3 |
docs/ 与 plans/
文档已与代码脱节,不作事实依据
cbdc-chain/docs/(含 ARCHITECTURE.md / DEPLOYMENT_AND_SCALING.md / CAPACITY_PLAN_*.md / AUDIT_PERFORMANCE_PLAN.md / cbdc-central-integration-design.md 等)与 cbdc-chain/docs/plans/ 中的描述与当前代码已经出现明显差异(典型例子:cbdc-monitoring/ 目录在文档中存在但代码仓库内无对应目录;README 列出的 retail/ / wholesale/ 子目录在 cbdc-biz/app/ 下不存在)。
本 wiki 不再从这些文档摘录事实。如需了解历史设计意图请直接读原文,但请以 cbdc-biz/ / cbdc-network/ / cbdc-infra/ 等代码为准。