Skip to content

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/      IssuerService

Issuer 没有自建 Ent data layer;发行 token 与总供应量查询通过 Panurus wallet / ledger persistence 完成。

启动

  1. 加载配置并初始化 token symbol;
  2. 初始化 Signet / OpenTelemetry;
  3. 解析 BizHub mTLS,通常复用 FSC node identity;
  4. 从 BizHub 初始化 X.509 / policy wallet identity resolver;
  5. nodesdk.StartFSC
  6. 启动 Node Resolver Sync;
  7. 注册赎回响应 View;
  8. 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: websocketmaxSubConns: 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