主题
cbdc-chain · 核心流程
1. 全栈启动顺序
来源:README.md:64-83, 138-189。
2. 一键启动脚本
来源:scripts/start-kms-system.sh、README.md:138-160。
3. KMS 命名空间初始化
来源:README.md:99-136。
4. 业务应用统一启动模板(Kratos)
来源:cbdc-biz/app/*/cmd/*/main.go(以 endorser/cmd/endorser/main.go 为代表)。
各应用流程基本一致;institution 额外在 kratos.Server 中挂载 HTTP server 与后台 worker(institution/cmd/institution/main.go:53-67)。入口位置见 04-modules。
5. Endorser Init
来源:README.md:188、cbdc-biz/api/cbdc-biz/v1/endorser.proto:7-8。
sh
grpcurl -plaintext -d '{}' localhost:9300 cbdc_biz.v1.EndorserService/InitEndorserService 仅定义 Init 一个 RPC(endorser.proto:8)。背书逻辑由 FSC View 响应器实现:cbdc-biz/app/endorser/cmd/endorser/main.go:107-110 注册 AuditResponderView / AuditAndEndorseView。
6. 网络生成(fxconfig 流水线)
来源:cbdc-network/Makefile、cbdc-network/README.md:53-86。
7. 压测流程(cbdc-stress)
来源:cbdc-stress/main.go、cbdc-stress/cmd/bootstrap/main.go、cbdc-stress/runner.go、cbdc-stress/metrics.go。
输出格式(进度行 cbdc-stress/runner.go:383,报告 cbdc-stress/metrics.go:143-157):
[ 3s] prep=18/0 submit=16/0 +16 last3s (5.3 TPS inst, 5.3 TPS avg)
...
==================== 压测报告 ====================
end-to-end TPS : 6.86 (428 笔 / 62.4s)
延迟分布 — prepare / submit / end2end 各 p50/p90/p95/p99/max
失败原因 top8. 镜像版本管理
来源:README.md:239-301。
子模块各自独立 tag(biz/v* / network/v* / infra/v*)。
9. 业务流(Issue / Transfer / Redeem / Audit)
业务流由 cbdc-biz/pkg/views/ 下基于 fabric-token-sdk 的 View 实现(issue.go 发行、transfer.go / accept_transfer.go 转账、redeem.go 赎回、endorsement.go 背书、audit.go 审计)。
端到端时序可参考 cbdc-chain/tests/(module cbdc-chain-tests):
tests/transfer/batch_transfer_test.go— 转账端到端tests/marked_tokens/marked_tokens_test.go— 资产标记tests/fees/— 费用收集tests/auditor_rulesets/limits_test.go— 审计规则限额tests/e2e/endorser_proxy_test.go/ledger_indexer_test.go— Endorser + 索引
10. RTGS 集成
来源:cbdc-biz/pkg/rtgs/、cbdc-biz/conf/bizhub/core.yaml:78-115。
BizHub 通过 SWIFT MT298(封装 SMT201 结算 / SMT211 资金预留两类子报文,见 pkg/rtgs/mt298/)与 RTGS 系统交互,报文经 SMB 文件共享(默认端口 445,in/out 两个 share)收发,签名密钥来自 JKS/PKCS12 keystore(pkg/keystore/)。相关参数(BIC、payment code、SMB、keystore)配置在 conf/bizhub/core.yaml 的 rtgs 段。