主题
cbdc-chain · API 参考
gRPC 服务
来源:cbdc-biz/api/cbdc-biz/v1/(16 个 .proto,package 均为 cbdc_biz.v1)。
各应用暴露的主服务:
| 服务 | proto | 端口 | RPC 示例 |
|---|---|---|---|
EndorserService | endorser.proto | 9300 | Init |
IssuerService | issuer.proto | 9100 | IssueToken、TotalSupply |
AuditorService | auditor.proto | 9750 | GetBalance、GetHistory、ListTransactions、ManualRulesetSync |
InstitutionOpsService | institution.proto | 9500(gRPC)/ 9502(HTTP) | PrepareTransfer、SubmitTransfer、ListWallets、PrepareRedeem 等 |
BizHub(端口 9000)聚合多个服务,定义在 api/cbdc-biz/v1/bizhub/:ApprovalService、SettlementService、WalletService、ManageService(钱包标签 / 规则组 / 审计规则集 / 费用 / 资产标记 / 拒绝记录)、CAService、ClientAuthManagementService、IndexerService、InstitutionManageService、BizhubAuditorService。
KMS 客户端代理定义在 api/cbdc-biz/v1/kms/:KmsService(GenerateKeypair / GetPublicKey / Sign)、KmsManageService(Signin / CreateNs / GetAccessToken / ListNamespaces 等)。
完整 RPC 与请求 / 响应类型见对应 .proto。
HTTP(bank-node REST)
仅 institution 应用启用 Kratos HTTP transport(app/institution/cmd/institution/main.go:32,62、app/institution/internal/server/http.go),HTTP 端口硬编码为 :9502(http.go:38)。路由来自 institution.proto 中的 google.api.http 注解,例如:
| 方法 | 路径 | RPC |
|---|---|---|
| GET | /api/v1/wallets | ListWallets |
| POST | /api/v1/wallets/create | CreateWallet |
| POST | /api/v1/transfers/prepare | PrepareTransfer |
| POST | /api/v1/transfers/submit | SubmitTransfer |
| POST | /api/v1/transactions | ListTransactions |
OpenAPI 文档在 /q/openapi.yaml,Swagger UI 在 /q/swagger-ui(http.go:52-58)。这就是 cbdc-stress 默认调用的 bank-node REST(-url 默认 http://34.60.193.75:9502)。
KMS 管理 HTTP(命名空间初始化)
来源:README.md:99-136(实际是 sign-kms 的接口,cbdc-chain 仅消费)。
| 方法 | 路径 | 用途 |
|---|---|---|
| POST | /api/v1/namespace/signin | 登录拿 JWT |
| POST | /api/v1/create-ns | 创建 namespace |
| POST | /api/v1/access-token | 拿 access token |
CLI
cbdc-stress 主程序
来源:cbdc-stress/main.go:19-37。
sh
cbdc-stress [flags]| flag | 默认 | 含义 |
|---|---|---|
-env | (空) | 环境预设 dev / local,展开 -url/-wallets(显式传参优先) |
-url | http://34.60.193.75:9502 | bank-node REST |
-wallets | wallets.json | 钱包文件 |
-active | 0 | 使用前 N 个钱包(0 = 全部) |
-c | 30 | 并发 worker |
-d | 60s | 时长(不含 ramp) |
-ramp | 2s | 慢启动 |
-mode | ring | ring / ring_once / query |
-timeout | 120s | 单请求 HTTP 超时 |
-amt | 0.50 | 每笔金额 |
cbdc-stress bootstrap 工具
来源:cbdc-stress/cmd/bootstrap/main.go:81-95。
sh
bootstrap create-mother # 生成母钱包到 mother.json
bootstrap create-children -n <N> -fund-amt <X> # 创建 N 个子钱包,逐个从母钱包充值
bootstrap fund-existing -mother <f> -wallets <f> # 对已有 wallets.json 补充值各子命令支持 -env dev|local 预设。完整 flag 见 cmd/bootstrap/main.go 各子命令的 FlagSet。
cbdc-network Makefile target
来源:cbdc-network/Makefile。
| target | 用途 |
|---|---|
setup | 标准模式(cryptogen) |
setup-kms | KMS 模式 |
start | 启动网络 |
teardown | 停止 + 清理 |
create-ns | 创建命名空间 |
list-ns | 列出 |
version | git tag network/* |
build-push | 构建并推送 |
cbdc-biz Makefile target
来源:cbdc-biz/Makefile。
| target | 用途 |
|---|---|
setup | make clean + gen_crypto.sh 生成 MSP + cp_fabricx.sh 复制配置 |
build / build-base / build-push | 构建应用 / 基础 / 构建并推送镜像 |
start / start-infra | compose-local-run.yml / compose-local-run-infra.yml up |
stop / teardown | 停止 / 停止并清理(down -v) |
version | git tag biz/* |
cbdc-infra Makefile target
来源:cbdc-infra/README.md:8-23、cbdc-infra/Makefile。
| target | 用途 |
|---|---|
version | git tag infra/* |
build-all | 构建所有镜像 |
build-push | 构建并推送 |
TAG=<custom> 可覆盖版本。
顶层脚本
来源:README.md:138-160、scripts/。
| 脚本 | 用途 |
|---|---|
scripts/start-kms-system.sh | 一键启动(--skip-build / --quick / --local-kms) |
scripts/check-auditor-key.sh | 审计密钥检查 |
服务端口
业务应用(cbdc-biz/docker/compose-local-run.yml,gRPC 端口同 conf/<role>/core.yaml):
| 服务 | gRPC | FSC P2P |
|---|---|---|
| BizHub | 9000 | — |
| Issuer | 9100 | 9101 |
| Endorser | 9300 | 9301 |
| Institution-001 | 9500 | 9501(另 HTTP 9502) |
| Auditor | 9750 | 9751 |
基础设施(cbdc-biz/docker/compose-local-run-infra.yml):
| 服务 | 端口 |
|---|---|
| KMS gRPC / HTTP | 9200 / 9201 |
| Fabric CA | 7054(另 9443) |
测试入口
端到端 / 集成测试在 cbdc-chain/tests/(独立 module cbdc-chain-tests)。所有 _test.go 带 //go:build integration,需加 -tags=integration(tests/README.md:42-60):
sh
cd tests
go test -tags=integration -v ./e2e/... # 端到端
go test -tags=integration -v ./transfer/... # 转账
go test -tags=integration -v ./marked_tokens/... # 资产标记
go test -tags=integration -v ./fees/... # 费用
go test -tags=integration -v ./auditor_rulesets/... # 审计规则cbdc-biz 自身的单元测试与被测代码同包(pkg/、app/ 下的 *_test.go)。测试框架:Go testing + stretchr/testify v1.11.1(tests/go.mod:7、cbdc-biz/go.mod:25)。