Files
MAcode/tcs-iptv/contracts/tcs_registry/README.md
selfrelease a329d4906b init: AIGC-Hub/AVCC 方案文档 + TCS-IPTV 内容可信锁定系统 MVP
- 方案文档: AVCC 体系建设、IPTV TCS 需求(0-req)/PRD(1-prd)/任务(2-task)/二三四期任务
- tcs-iptv: Go 后端(哈希SDK/MA码生成/可信数据空间mock/业务编排/HTTP API+HMAC鉴权)
- web-console: React+AntD 监管大屏(角色工作台/全流程演示/监管片库)
- 一剧一码+集级哈希, 集级下架/恢复, 全栈测试通过
2026-06-14 16:50:31 +08:00

54 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# tcs_registry — ChainMaker 智能合约(Go
可信数据空间的链上合约,实现 TCS-IPTV 的四类核心数据结构与合约方法。
`internal/chain``Client` 接口语义一一对应:MVP 用 `MemoryChain` 开发测试,
真实部署时由 chain-svc 通过 ChainMaker Go SDK 调用本合约。
## 合约方法(对应需求16-AC2)
| 方法 | 权限 | 说明 |
|------|------|------|
| `IssueMA(maCode, ctid, merkleRoot, fileHash, contentJSON)` | 仅监管节点 | 签发 MA 码并 1:1 强绑定哈希;不可重复、不可解绑 |
| `RegisterHashBinding(ctid, bindingJSON)` | 审核/监管 | 追加哈希绑定(转码版父子关系) |
| `RegisterMapping(ctid, party, partyID, cdnEndpoint)` | 三方 | 注册编码映射;MA 必须已签发 |
| `VerifyHash(maCode, fileHash) -> bool` | 任意 | 校验提交哈希与绑定哈希是否一致 |
| `QueryContent(maCode) -> json` | 任意 | 查询内容主记录 |
| `QueryMappings(maCode) -> json` | 任意 | 查询全部三方映射与 CDN 端点 |
| `RecordVersionChange(ctid, vcJSON)` | 审核/监管 | 记录版本变更,触发重审 |
| `Revoke(maCode, reason)` | 仅监管节点 | 下架,返回受影响映射 |
## 权限模型(对应需求14
合约内通过 `sender()` 的组织/角色证书判断调用方身份:
- `RoleRegulator`(监管主体):`IssueMA` / `Revoke` 唯一发起方
- `RoleReviewer`(审核主体/CSPS/媒资库):哈希绑定、版本变更
- `RoleCP`:送审时注册哈希、本方映射
- `RoleOperator`:注册本方映射、验真
## 国密
底层链使用长安链 ChainMaker(国密 SM2 签名 / SM3 哈希)。
内容哈希在链外用 SHA-256 计算(哈希SDK),链上仅存哈希值与映射,明文不入链(需求20-AC2)。
## 状态键设计(KV
```
content:{maCode} -> Content JSON
binding:{maCode}:{idx} -> HashBinding JSON
hashidx:{fileHash} -> maCode (防换壳重发)
mapping:{maCode}:{idx} -> Mapping JSON
version:{maCode}:{idx} -> VersionChange JSON
ctid2ma:{ctid} -> maCode
```
## 构建与部署(真实链,二期接入)
```bash
# 依赖 ChainMaker contract SDK
go mod init tcs_registry
# 编译为 wasm 或 docker-go 合约,按 ChainMaker 部署流程发布
```
> MVP 阶段:业务逻辑与规则已在 `internal/chain.MemoryChain` 完整实现并测试通过,
> 本合约为真实链落地的等价实现规格,二期搭建 ChainMaker 测试网后落地替换。