主题
fabric-token-sdk · 核心流程
1. 事务编排(TTX 服务)
来源:docs/services/ttx.md、token/services/ttx/、docs/tokenapi.md。
详细行号 [未核] —— 见 token/services/ttx/。
2. Issue / Transfer / Redeem
来源:token/driver/action.go:20-70、docs/tokenapi.md。
关键接口(token/driver/action.go):
IssueAction(内嵌Action+ActionWithInputs):Serialize / NumOutputs / GetSerializedOutputs / GetOutputs / IsAnonymous / GetIssuer / GetMetadata / IsGraphHiding / ExtraSigners(line 20)TransferAction(内嵌Action+ActionWithInputs):Serialize / NumOutputs / GetSerializedOutputs / GetOutputs / IsRedeemAt / SerializeOutputAt / IsGraphHiding / GetMetadata / GetIssuer(line 62)Output.Serialize / IsRedeem / GetOwner(line 50)
业务侧入口(token/services/ttx/transaction.go):Transaction.Issue(line 279)/ Transaction.Transfer(line 286)/ Transaction.Redeem(line 293),底层委托给 token/request.go 的 Request.Issue(line 286)/ Request.Transfer(line 347)/ Request.Redeem(line 399)。
Redeem 无独立 action 类型:Request.Redeem 返回 *TransferAction,即通过转账实现销毁(TransferAction.GetIssuer 用于含赎回的转账,token/driver/action.go:81-82)。
3. 驱动差异(FabToken vs ZKAT-DLOG)
来源:token/core/、docs/drivers/。
4. Token 操作(Vault & Selector)
来源:docs/tokenapi.md、token/services/selector/。
Selector 实现:
- Simple(
token/services/selector/simple/) - Sherdlock(
token/services/selector/sherdlock/)
5. Auditor 流程
来源:token/services/auditor/、token/core/fabtoken/v1/auditor.go:16、token/core/zkatdlog/nogh/v1/audit/。
Auditor 角色:审计与合规(docs/services.md)。具体审计接口与流程 [未核]。
6. TMS 构造与生命周期
来源:token/tms.go:38、docs/tokenapi.md。
公共参数生命周期:docs/public_parameters.md(4125 字节)[未核]。
7. Interop(HTLC)
来源:token/services/interop/。
HTLC 实现于 token/services/interop/htlc/(含 transaction.go / keys.go / finality.go / scanner.go 等);编码在 token/services/interop/encoding/。
8. TokensUpgradeService
来源:token/driver/tokens.go:34。
TokensUpgradeService(token/driver/tokens.go:34):NewUpgradeChallenge(line 37)/ GenUpgradeProof(line 41)/ CheckUpgradeProof(line 45)。升级机制说明见 docs/upgradability.md(线索,以代码为准)。
9. tokengen 公共参数生成
来源:cmd/tokengen/main.go:55-59、docs/public_parameters.md。
sh
tokengen gen <driver> [...] # 生成公共参数(driver 为 fabtoken.v1 或 zkatdlognogh.v1)
tokengen update [...] # 更新公共参数
tokengen pp print [...] # 检视公共参数具体 flag 与 PP 结构 [未核]。