Skip to content

新手入门:整套系统如何跑起来

三十秒版本

这套系统把“银行接入、钱包授权、合规审计、Token 背书、排序和记账”拆成独立服务:

  1. 银行客户端向 Facade 发起经过 Ed25519 签名的请求;
  2. Facade 确认调用银行,并按钱包 ID 路由到 Wallet Node;
  3. Wallet Node 选币、构造交易,银行在平台外用自持密钥签名;
  4. Endorser 把交易送给 Auditor 审计,再完成背书;
  5. Fabric-X Orderer 排序,Committer 验证并落账;
  6. Finality 回到 Wallet Node,确认或释放本地 token 锁。

系统地图

进程职责

进程一句话职责代码位置
Facade银行侧请求验签、统一 API、分片路由cbdc-facade/
Wallet Node钱包、策略、选币、两步转账、交易与赎回cbdc-token/app/walletnode/
Issuer发行与供应量cbdc-token/app/issuer/
Auditor强制审计、查询、拒绝日志、索引cbdc-token/app/auditor/
EndorserTMS Init、审计代理与 proposal 背书cbdc-token/app/endorser/
BizHub钱包生命周期、节点注册、机构/规则/费用/结算权威cbdc-bizhub/
Central央行管理台、RBAC、审批、通知与审计日志cbdc-central/
Orderer / Committer排序出块 / 验证防双花与落账fabric-x-orderer/fabric-x-committer/

名称变化

旧版把银行执行节点称为 institution。当前源码 app 名称是 walletnodeinstitution_code 仍代表业务机构,shard_code 代表执行分片。

钱包与密钥

钱包可使用 X.509 或 Idemix owner identity:

  • X.509:银行在本地生成私钥和 CSR,平台 CA 只签发证书;
  • Idemix:blind enrollment 让秘密 key 不离开 holder;
  • Policy wallet:多个 X.509 / Idemix member 由 policy expression 和版本管理;
  • Facade / BizHub / Wallet Node 都不会把内部 shard 路由当作银行 API 的业务字段返回。

一笔转账

花钱授权的 owner key 由银行自持;节点身份签名可以通过 PKCS#11 进入 sign-kms。策略钱包会把签名与明确的 key_id 绑定,不默认使用 key 列表第一项。

Token driver

本仓库不是单一固定 driver:

  • ./dev/cbdc-dev 使用的 dev/config/token 当前为 zkatdlog
  • cbdc-token/conf 当前为 fabtoken

zkatdlog 提供金额隐私和证明路径;fabtoken 是透明 Token。实际行为、公共参数和性能必须以进程最终加载的配置为准。

节点通信

四个 Token 节点当前使用 FSC WebSocket P2P,不是 libp2p。WebSocket 层启用 TLS 双向根验证,节点证书包含 client/server EKU 与 DNS SAN。节点地址既可来自静态 resolver,也可通过 BizHub Node Registry 动态同步。

如何本地启动

sh
cd cbdc-solution
./dev/cbdc-dev up --verify

开发控制器会启动 Infra、Network、Apps,渲染配置、生成证书并初始化 Endorser。更多命令见 cbdc-solution 快速开始