主题
cbdc-token/app/issuer
Issuer 是 CBDC 发行节点,监听 gRPC 9100、WebSocket P2P 9101、FSC Web 9102。它与其他 Token 节点共用 cbdc-token module 和镜像。
结构
text
app/issuer/
├── cmd/issuer/ 启动与 Wire
└── internal/
├── biz/ IssueWithMarked / TotalSupply
├── conf/
├── server/
└── service/ IssuerServiceIssuer 没有自建 Ent data layer;发行 token 与总供应量查询通过 Panurus wallet / ledger persistence 完成。
启动
- 加载配置并初始化 token symbol;
- 初始化 Signet / OpenTelemetry;
- 解析 BizHub mTLS,通常复用 FSC node identity;
- 从 BizHub 初始化 X.509 / policy wallet identity resolver;
nodesdk.StartFSC;- 启动 Node Resolver Sync;
- 注册赎回响应 View;
- Wire 构造
IssuerService与 gRPC server。
API
cbdc_token.v1.IssuerService:
| RPC | 作用 |
|---|---|
IssueToken | 解析金额,校验可选 asset mark,发起 IssueCashView,返回 tx id |
TotalSupply | 枚举默认 issuer wallet 已发行 token 并按 symbol 汇总 |
IssueTokenRequest 包含 amount、recipient、message、可选 asset mark 与 recipient node。跨节点身份材料由 BizHub resolver 提供。
发行流程
Wallet Node 在 main.go 注册 AcceptCashView ← IssueCashView。源码中不再有 app/institution 路径。
P2P 与配置
模块模板 cbdc-token/conf/issuer/core.yaml 使用 fabtoken;开发权威模板 dev/config/token/issuer/core.yaml 使用 zkatdlog。二者都使用 Fabric-X driver 和 WebSocket P2P TLS。
fsc.p2p 的关键字段:type: websocket、maxSubConns: 8192、server/client root CA。生成的 Issuer 节点证书包含 clientAuth,serverAuth 与 DNS SAN。
动态发现
Issuer 启动 NewNodeResolverSyncForNode,从 BizHub 拉取 Auditor / Endorser 快照并更新本地 FSC endpoint service。不要只依赖文档中写死的 resolver 地址判断实际拓扑。
构建
sh
cd cbdc-token
make test
make build镜像内二进制为 /usr/bin/issuer,运行命令 issuer --conf /app-conf。