主题
12 · 运行流程 QA
当前银行侧入口是什么?
Facade。它提供 Wallet、Transfer、Transaction 三组 API,监听 gRPC 9600 与 HTTP 9601。Facade 不是空脚手架,也不是 Token 状态源;它完成银行请求验签、身份解析与 Wallet Node 路由。
Institution 应用还存在吗?
业务概念仍叫 institution,但源码应用已重命名为 Wallet Node:
- 路径:
cbdc-token/app/walletnode - 二进制:
walletnode - 内部服务:
WalletNodeOpsService - 开发运行单元:
walletnode-1
控制器可识别 institution-001 兼容别名,不代表旧应用仍存在。
一笔两阶段转账有哪两层签名?
至少要区分:
- Facade 的 Ed25519 请求签名,用来认证银行 API client;
- Token owner 对
message_to_sign的签名,用来授权花费。
之后协议还会产生 Auditor、Endorser 和 Fabric-X 相关签名。具体次数依 driver、钱包类型和网络实现而变化,不应在通用文档中固定写成“每笔必定 N 次”。
SubmitTransfer 成功是否等于交易上链?
不是。当前 Submit 在 broadcast 被接受后返回 tx_id,finality 由 Wallet Node 后台 worker 处理。需要查询交易状态确认最终提交或失败。
为什么 Prepare 成功后 Submit 找不到交易?
PendingTransactionStore 位于 Wallet Node 进程内。最常见原因是两个请求被负载均衡到不同实例,或节点重启/记录过期。distributed Token Selector 不会共享这个 store。
收款方是否要对每笔普通 Transfer 交互签名?
当前 Transfer View 会完成交易分发,收款节点注册对应 accept responder;owner 花费授权来自 sender 的 signer。具体 policy wallet 规则可能要求其他签名,不能把普通钱包结论外推到所有策略钱包。
Wallet Node 是否直接连接 Auditor?
每笔交易的审计主链路是 Wallet Node → Endorser → Auditor。Endorser 的 responder 代理 RequestAuditView,再把 Auditor 签名返回给 Wallet Node。
所有节点都会注册并同步 Node Registry 吗?
不会。Auditor 与 Endorser 注册自身地址;Issuer 与 Wallet Node 拉取所需快照并更新 resolver。两类职责是非对称的。
当前默认 Token driver 是什么?
取决于配置来源:
dev/config/token/*:zkatdlog;cbdc-token/conf/*:fabtoken。
所以排障和性能报告必须写明实际加载的 core.yaml 与 pp 文件。
哪些节点需要 Token 公共参数?
四个 FSC Token 应用:Auditor、Issuer、Endorser、Wallet Node。BizHub、Central 与 Facade 不运行 Token SDK TMS,不使用该 pp 作为本地 Token 节点配置。
BizHub 与 Central 是否共用数据库?
不共用。BizHub 拥有 cbdc_biz;Central 拥有 cbdc_central。Central 通过 BizHub management RPC 管理机构和业务配置。
应用启动会自动建表吗?
当前 BizHub 与 Central 都提供显式版本化 migration 命令。部署时应先执行 bizhub migrate / central migrate,不能依赖旧文档所述 Ent auto-migrate。
BizHub 的 all mode 是否有效?
无效。有效值是 runtime、management 或空值;空值注册完整服务集。
如何启动本地开发环境?
使用:
bash
./dev/cbdc-dev具体子命令以 ./dev/cbdc-dev --help 为准。旧 scripts/start-kms-system.sh、顶层 cbdc-network/ 和根 Makefile 链不是当前基线。
Facade 如何选择 Wallet Node?
Facade 使用 wallet.ShardOf(wallet_id)。当前为单分片实现,配置 shard code 必须与 walletid.SingleShard 一致;客户端不应自己计算或指定 shard。
可以直接把 Wallet Node 扩成任意多副本吗?
不能直接这样推断。除选币协调外,还要解决 Prepare/Submit pending 状态、finality worker 状态、FSC runtime 和 TLS/节点身份。详见扩容指南。
代码能证明 5 万或 10 万 TPS 吗?
不能。仓库提供 cbdc-stress 和若干调优入口,但容量结论必须在目标 driver、KMS、数据库、网络与硬件上端到端测量,并以 ledger finality 而非单次 RPC 返回作为完成标准。