主题
cbdc-chain · 快速开始
本章严格跟随 README.md:64-217 与各子项目 README / Makefile。
前置
一键启动(推荐)
来源:README.md:138-160、scripts/start-kms-system.sh。
sh
./scripts/start-kms-system.sh支持选项:
| flag | 用途 |
|---|---|
--skip-build | 跳过镜像构建 |
--quick | 快速重启(保留 KMS / CA) |
--local-kms | 本地 KMS / CA 模式 |
分步启动
来源:README.md:169-189。
Step 1:前置检查
sh
nc -z <kms-host> 9200 && echo "KMS OK"
curl http://<ca-host>:7054/cainfo && echo "CA OK"Step 2:网络
来源:cbdc-network/Makefile、cbdc-network/README.md:14-86。
sh
cd cbdc-network
make setup-kms # clean + cbdc-tool 镜像内 config-builder setup(KMS 配置) + 拉取 CA 根证书 + gen-compose → out/
make start # = start-fabric:在 out/ 下 docker compose up -d
make create-ns # 用 fxconfig 创建命名空间 cbdc其它常用 Network target(cbdc-network/Makefile):
| target | 用途 |
|---|---|
setup | 标准模式(config-builder 基于 configs/test-full.yaml,不走 KMS) |
teardown | compose down -v(停止 + 删卷 + 删 cbdc_net 网络) |
list-ns | 列出命名空间 |
version | 查 git tag network/* |
build-push | 构建并推送 orderer/committer-kms 镜像 |
Step 3:业务
来源:README.md:183-185、cbdc-biz/Makefile、cbdc-biz/docker/compose-local-run.yml。
sh
cd cbdc-biz
make setup # gen_crypto.sh 生成 MSP + cp_fabricx.sh 复制配置
make build # docker compose build
make start # docker compose -f docker/compose-local-run.yml up -dStep 4:Endorser 初始化
来源:README.md:188。
sh
grpcurl -plaintext -d '{}' localhost:9300 cbdc_biz.v1.EndorserService/InitKMS 命名空间初始化
来源:README.md:99-136。
sh
# 1) 登录拿 JWT
curl -X POST "http://localhost:9201/api/v1/namespace/signin" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"adminpw"}'
# 2) 创建命名空间
curl -X POST "http://localhost:9201/api/v1/create-ns" \
-H "Authorization: Bearer <JWT_TOKEN>" \
-d '{"name":"cbdc_namespace"}'
# 3) 拿 access token
curl -X POST "http://localhost:9201/api/v1/access-token" \
-H "Authorization: Bearer <JWT_TOKEN>" \
-d '{"nsId":"<NS_ID>"}'把返回的 access token 写到 cbdc-biz/.env 的 KMS_USER_PIN。
关键环境变量
来源:README.md:99-136、cbdc-network/.env.example。
| 变量 | 默认 / 用途 |
|---|---|
JWT_SECRET | KMS 命名空间管理器认证(README 示例值:c33c66f24581fc59bcf107da7f21e51d6549be30aa016cf21fb6c2f8dd70abdb) |
KMS_MANAGE_USERNAME / KMS_MANAGE_PASSWORD | KMS 管理凭据 |
KMS_USER_PIN | HSM Token 用户 PIN |
KMS_TOKEN_LABEL | 默认 KMS_TK |
SIGN_KMS_ENDPOINT | KMS gRPC 端点 |
CA_URL | Fabric CA URL |
TLS_ENABLED / TLS_CLIENT_AUTH_REQUIRED | TLS / mTLS 开关 |
验证
来源:README.md:191-196。
sh
nc -z localhost 9300 && echo "✓ Endorser"
docker ps | grep -E "cbdc"压测
来源:cbdc-stress/main.go、cbdc-stress/cmd/bootstrap/main.go、cbdc-stress/README.md。
sh
cd cbdc-stress
# 1) bootstrap 钱包(cmd/bootstrap)
go run ./cmd/bootstrap create-mother # 生成母钱包 mother.json
# 给 mother 地址外部充值后,由母钱包向子钱包分发资金(-fund-amt 默认 10.00)
go run ./cmd/bootstrap create-children -mother mother.json -n 100
# 2) 跑压测
go run . -url http://<host>:9502 -c 30 -d 60s -ramp 2s -mode ring -amt 0.50压测主程序 flag(cbdc-stress/main.go:26-35):
| 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 | 每笔金额 |