Skip to content

Panurus · 核心流程 ​

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 结构 [未核]。