主题
新手入门:整套系统如何跑起来
三十秒版本
这套系统把“银行接入、钱包授权、合规审计、Token 背书、排序和记账”拆成独立服务:
- 银行客户端向 Facade 发起经过 Ed25519 签名的请求;
- Facade 确认调用银行,并按钱包 ID 路由到 Wallet Node;
- Wallet Node 选币、构造交易,银行在平台外用自持密钥签名;
- Endorser 把交易送给 Auditor 审计,再完成背书;
- Fabric-X Orderer 排序,Committer 验证并落账;
- Finality 回到 Wallet Node,确认或释放本地 token 锁。
系统地图
进程职责
| 进程 | 一句话职责 | 代码位置 |
|---|---|---|
| Facade | 银行侧请求验签、统一 API、分片路由 | cbdc-facade/ |
| Wallet Node | 钱包、策略、选币、两步转账、交易与赎回 | cbdc-token/app/walletnode/ |
| Issuer | 发行与供应量 | cbdc-token/app/issuer/ |
| Auditor | 强制审计、查询、拒绝日志、索引 | cbdc-token/app/auditor/ |
| Endorser | TMS Init、审计代理与 proposal 背书 | cbdc-token/app/endorser/ |
| BizHub | 钱包生命周期、节点注册、机构/规则/费用/结算权威 | cbdc-bizhub/ |
| Central | 央行管理台、RBAC、审批、通知与审计日志 | cbdc-central/ |
| Orderer / Committer | 排序出块 / 验证防双花与落账 | fabric-x-orderer/、fabric-x-committer/ |
名称变化
旧版把银行执行节点称为 institution。当前源码 app 名称是 walletnode;institution_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 快速开始。