主题
fabric-token-sdk · 架构
架构层(来自 docs/tokensdk.md)
来源:docs/tokensdk.md:1-100。
各层节点对应 token/ 实际目录:Services→token/services/、Token API→token/(tms.go / request.go / wallet.go / vault.go)、Driver→token/driver/。
TMS — Token Management Service
来源:token/tms.go:38、docs/tokenapi.md。
ManagementService(token/tms.go:38)是 TMS 主入口,管理 wallet、vault、selector、public parameters。
核心 token 数据模型
来源:token/token/token.go、token/driver/action.go。
| 类型 | 文件 | 行号 |
|---|---|---|
Token(Owner / Type / Quantity) | token/token/token.go | 42 |
ID(TxId + Index) | token/token/token.go | 16 |
IssueAction interface | token/driver/action.go | 20 |
TransferAction interface | token/driver/action.go | 62 |
Output interface(支持 IsRedeem) | token/driver/action.go | 50 |
TokensService interface(解混淆、接收人提取) | token/driver/tokens.go | 52 |
TokensUpgradeService interface | token/driver/tokens.go | 34 |
两种驱动
来源:token/core/、docs/drivers/。
| 项 | FabToken | ZKAT-DLOG (NOGH) |
|---|---|---|
| 路径 | token/core/fabtoken/v1/ | token/core/zkatdlog/nogh/v1/ |
| 隐私等级 | 明文 | 值 + 类型 + 身份隐私 |
| 值/类型隐私 | 否 | 是(Pedersen commitments) |
| 身份隐私 | 否(X.509) | 是(Idemix 伪名) |
| 图隐私 | 否 | 否(NOGH) |
| Driver 实现 | token/core/fabtoken/v1/driver/ | token/core/zkatdlog/nogh/v1/driver/ |
| Service | token/core/fabtoken/v1/service.go:23 | token/core/zkatdlog/nogh/v1/service.go:17 |
| Issue / Transfer | token/core/fabtoken/v1/issue.go / transfer.go | token/core/zkatdlog/nogh/v1/issue/ / transfer/ |
| Validator | token/core/fabtoken/v1/validator/ | token/core/zkatdlog/nogh/v1/validator/ |
| Auditor | token/core/fabtoken/v1/auditor.go:16 | token/core/zkatdlog/nogh/v1/audit/ |
| Actions | token/core/fabtoken/v1/actions/ | (继承自 driver interface) |
| Crypto 原语 | — | token/core/zkatdlog/nogh/v1/crypto/ |
token/core/common/ 含共享工具与编码。
服务生态
来源:token/services/、docs/services.md。
| 服务 | 路径 | 功能 |
|---|---|---|
auditor | token/services/auditor/ | 审计与合规 |
benchmark | token/services/benchmark/ | 性能基准 |
certifier | token/services/certifier/ | 令牌认证管理 |
config | token/services/config/ | 配置 |
identity | token/services/identity/ | 身份(idemix / x509 / 多签) |
interop | token/services/interop/ | 跨链(HTLC) |
logging | token/services/logging/ | 日志 |
network | token/services/network/ | Fabric / Fabric-X 桥接 |
nfttx | token/services/nfttx/ | NFT 事务 |
selector | token/services/selector/ | UTXO 选择器(Simple / Sherdlock) |
storage | token/services/storage/ | 存储(ttxdb / tokendb / auditdb 等) |
tokens | token/services/tokens/ | 令牌操作 |
ttx | token/services/ttx/ | 令牌事务编排 |
utils | token/services/utils/ | 工具 |
关键依赖
来源:go.mod。
| 依赖 | 版本 | 用途 |
|---|---|---|
github.com/hyperledger-labs/fabric-smart-client | v0.11.0 | 事务编排 / 存储 |
github.com/hyperledger/fabric-chaincode-go/v2 | v2.3.0 | Fabric chaincode |
github.com/hyperledger/fabric-lib-go | v1.1.3 | — |
github.com/hyperledger/fabric-protos-go-apiv2 | v0.3.7 | — |
github.com/hyperledger/fabric-x-common | v0.2.2 | — |
github.com/IBM/idemix | v0.0.2 | 身份隐私 |
github.com/IBM/mathlib | v0.1.0 | 椭圆曲线 |
github.com/consensys/gnark-crypto | v0.20.1 | ZK 证明 |
github.com/jackc/pgx/v5 | v5.9.2 | PostgreSQL |
modernc.org/sqlite | v1.50.1 | SQLite |
github.com/spf13/viper | v1.21.0 | 配置 |
github.com/onsi/ginkgo/v2 | v2.29.0 | 测试 |
github.com/stretchr/testify | v1.11.1 | 测试 |
go.uber.org/zap | v1.28.0 | 日志 |
golang.org/x/crypto | v0.52.0 | 加密 |
github.com/prometheus/client_golang | v1.23.2 | 指标 |
github.com/gin-gonic/gin | v1.12.0 | Web |