Skip to content

fabric-token-sdk · 核心流程

1. 事务编排(TTX 服务)

来源:docs/services/ttx.mdtoken/services/ttx/docs/tokenapi.md

详细行号 [未核] —— 见 token/services/ttx/

2. Issue / Transfer / Redeem

来源:token/driver/action.go:20-70docs/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.goRequest.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.mdtoken/services/selector/

Selector 实现:

  • Simple(token/services/selector/simple/
  • Sherdlock(token/services/selector/sherdlock/

5. Auditor 流程

来源:token/services/auditor/token/core/fabtoken/v1/auditor.go:16token/core/zkatdlog/nogh/v1/audit/

Auditor 角色:审计与合规(docs/services.md)。具体审计接口与流程 [未核]。

6. TMS 构造与生命周期

来源:token/tms.go:38docs/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

TokensUpgradeServicetoken/driver/tokens.go:34):NewUpgradeChallenge(line 37)/ GenUpgradeProof(line 41)/ CheckUpgradeProof(line 45)。升级机制说明见 docs/upgradability.md(线索,以代码为准)。

9. tokengen 公共参数生成

来源:cmd/tokengen/main.go:55-59docs/public_parameters.md

sh
tokengen gen <driver> [...]  # 生成公共参数(driver 为 fabtoken.v1 或 zkatdlognogh.v1)
tokengen update [...]        # 更新公共参数
tokengen pp print [...]      # 检视公共参数

具体 flag 与 PP 结构 [未核]。