Skip to content

cbdc-chain · 快速开始

本章严格跟随 README.md:64-217 与各子项目 README / Makefile。

前置

  • 已部署 sign-kms(端口 9200
  • 已部署 sign-ca(端口 7054
  • Docker(含 buildx / compose;构建用 DOCKER_BUILDKIT=1

一键启动(推荐)

来源:README.md:138-160scripts/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/Makefilecbdc-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)
teardowncompose down -v(停止 + 删卷 + 删 cbdc_net 网络)
list-ns列出命名空间
version查 git tag network/*
build-push构建并推送 orderer/committer-kms 镜像

Step 3:业务

来源:README.md:183-185cbdc-biz/Makefilecbdc-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 -d

Step 4:Endorser 初始化

来源:README.md:188

sh
grpcurl -plaintext -d '{}' localhost:9300 cbdc_biz.v1.EndorserService/Init

KMS 命名空间初始化

来源: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/.envKMS_USER_PIN

关键环境变量

来源:README.md:99-136cbdc-network/.env.example

变量默认 / 用途
JWT_SECRETKMS 命名空间管理器认证(README 示例值:c33c66f24581fc59bcf107da7f21e51d6549be30aa016cf21fb6c2f8dd70abdb
KMS_MANAGE_USERNAME / KMS_MANAGE_PASSWORDKMS 管理凭据
KMS_USER_PINHSM Token 用户 PIN
KMS_TOKEN_LABEL默认 KMS_TK
SIGN_KMS_ENDPOINTKMS gRPC 端点
CA_URLFabric CA URL
TLS_ENABLED / TLS_CLIENT_AUTH_REQUIREDTLS / mTLS 开关

验证

来源:README.md:191-196

sh
nc -z localhost 9300 && echo "✓ Endorser"
docker ps | grep -E "cbdc"

压测

来源:cbdc-stress/main.gocbdc-stress/cmd/bootstrap/main.gocbdc-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(显式传参优先)
-urlhttp://34.60.193.75:9502bank-node REST
-walletswallets.json钱包文件
-active0使用前 N 个钱包(0 = 全部)
-c30并发 worker
-d60s时长(不含 ramp)
-ramp2s慢启动
-moderingring / ring_once / query
-timeout120s单请求 HTTP 超时
-amt0.50每笔金额

下一步