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 监管大屏(角色工作台/全流程演示/监管片库) - 一剧一码+集级哈希, 集级下架/恢复, 全栈测试通过
This commit is contained in:
@@ -0,0 +1,469 @@
|
||||
# TCS-IPTV 内容可信锁定系统 — 开发任务文档(MVP / 一期)
|
||||
|
||||
> 版本:V1.0
|
||||
> 编制日期:2026年6月
|
||||
> 上游文档:0-req-IPTV.md(需求)、1-prd-IPTV.md(PRD)
|
||||
> 文档编号:2-task-IPTV
|
||||
> 本期范围:**MVP(一期)** — 单省单运营商微短剧全流程
|
||||
> 目标闭环:送审 → 赋码 → 审核 → 入库 → 发布 → 注入 → 下架
|
||||
|
||||
---
|
||||
|
||||
## 一、MVP 范围与功能映射
|
||||
|
||||
| 功能编号 | 功能 | 对应需求 | 本期 |
|
||||
|---------|------|---------|:----:|
|
||||
| F01 | 母版多维哈希生成SDK | 需求1 | ✅ |
|
||||
| F02 | 送审申报与哈希上链 | 需求2 | ✅ |
|
||||
| F03 | MA码签发与1:1强绑定 | 需求3 | ✅ |
|
||||
| F04 | 送审文件验真 | 需求4 | ✅ |
|
||||
| F05 | CSPS审核对接与转码版哈希绑定 | 需求5 | ✅ |
|
||||
| F06 | 媒体资源库入库/发布与编码映射 | 需求6 | ✅ |
|
||||
| F07 | CDN注入校验 | 需求7 | ✅ |
|
||||
| F10 | 全生命周期监管大屏查询 | 需求10 | ✅ |
|
||||
| F11 | 违规应急下架 | 需求11 | ✅ |
|
||||
| F12 | 版本变更与重审触发 | 需求12 | ✅ |
|
||||
| F14 | 角色权限控制(三角色矩阵) | 需求14 | ✅ |
|
||||
| F15 | 异常处理规则 | 需求15 | ✅ |
|
||||
| F16 | 可信数据空间存证与智能合约 | 需求16 | ✅ |
|
||||
| F17 | 标准化开放API | 需求17 | ✅ |
|
||||
| — | 安全与可信基线(哈希本地计算/链上存证/鉴权) | 需求20 | ✅ |
|
||||
| F08/F09/F13/F18-F22 | 终端抽检/数据聚合/跨省/权益场景 | — | ⛔ 二期 |
|
||||
|
||||
---
|
||||
|
||||
## 二、技术栈(已确认)
|
||||
|
||||
| 层 | 选型 | 说明 |
|
||||
|----|------|------|
|
||||
| 联盟链 | 长安链 ChainMaker 2.x(国密 SM2/SM3/SM4)| 可信数据空间底层,合规优先 |
|
||||
| 智能合约 | Go(ChainMaker 链原生合约)| issueMA / registerMapping / verifyHash 等 |
|
||||
| 后端服务 | **Go 1.22 + Gin** | 验真、签发编排、映射、媒资对接、下架、监管查询等全部业务服务 |
|
||||
| 链交互 | Go + ChainMaker Go SDK | chain-svc,屏蔽底链细节,提供 REST/gRPC;与合约同语言无跨语言摩擦 |
|
||||
| 哈希SDK | Go 核心库 + HTTP API 对外 | 文件SHA-256 / 分段Merkle / 感知哈希 |
|
||||
| 关系数据库 | PostgreSQL 16 | 业务元数据、映射缓存、内容主表镜像 |
|
||||
| 数据访问 | GORM / sqlc | DB 访问与迁移 |
|
||||
| 缓存 | Redis 7.x | 验真结果缓存、限流、会话 |
|
||||
| API网关 | Kong / APISIX | 鉴权、限流、日志 |
|
||||
| 监管大屏前端 | React 18 + Ant Design 5 + ECharts | 全链路查询、应急下架操作台 |
|
||||
| 鉴权 | API Key + HMAC-SHA256 / Bearer Token | 三方接入鉴权 |
|
||||
| 构建 | Go Modules + Makefile | — |
|
||||
| 测试 | Go testing + testify + Testcontainers-go | 单元/集成测试 |
|
||||
| 部署 | Docker + Kubernetes(试点可单集群)| 静态二进制,镜像小 |
|
||||
| CI/CD | GitLab CI | 自动构建测试 |
|
||||
|
||||
> 待确认项:① 哈希SDK 是否需要向 CP 提供非 Go(如 Python)绑定(MVP 暂定 Go 库 + HTTP API 供外部);② CSPS 与媒体资源库的实际对接接口规范(需对接方提供)。
|
||||
|
||||
> 说明:合约本体与全部应用层后端服务统一采用 **Go**,与 ChainMaker 链原生同语言,链交互最顺、部署最轻;监管大屏前端采用 React。二期若业务编排显著变重(分账结算/复杂对账/报表),可再评估引入 JVM 业务中台。
|
||||
|
||||
---
|
||||
|
||||
## 三、任务分解(按工作包)
|
||||
|
||||
> 进度图例:`[ ]` 未开始 · `[~]` 进行中 · `[x]` 已完成
|
||||
> 每个任务标注:**目标** / **对应** / **验收** / **依赖**
|
||||
|
||||
### 工作包 0:项目脚手架与基础设施
|
||||
|
||||
- [x] **T0.1 代码仓库与工程骨架**
|
||||
- 目标:建立 monorepo(chain-svc / api-svc / hash-sdk / web-console)与基础工程结构
|
||||
- 对应:全局
|
||||
- 验收:各模块可独立构建;统一 lint/格式化;README 说明
|
||||
- 依赖:无
|
||||
- ✅ 完成:`tcs-iptv/` monorepo 建立,cmd/{api-svc,chain-svc,hash-api} + internal/{config,httpx} + contracts + deploy + Makefile + README,`go build ./...` 通过
|
||||
|
||||
- [ ] **T0.2 联盟链测试网部署**
|
||||
- 目标:搭建 ChainMaker(或 Fabric)测试网,含监管/审核监管/运营商三组织节点
|
||||
- 对应:需求16
|
||||
- 验收:三组织节点正常出块;可部署/调用合约;提供连接配置
|
||||
- 依赖:T0.1、技术栈确认
|
||||
- ⏳ 待办:MVP 阶段先用 chain mock(internal/chain)解耦开发,真实 ChainMaker 测试网并行搭建
|
||||
|
||||
- [x] **T0.3 数据库与中间件部署**
|
||||
- 目标:部署 PostgreSQL、Redis,建立基础 schema 迁移工具
|
||||
- 对应:需求16
|
||||
- 验收:迁移脚本可执行;连接池配置;本地/测试环境可用
|
||||
- 依赖:T0.1
|
||||
- ✅ 完成:本地 PostgreSQL(库 tcs_iptv)+ Redis 就绪;`0001_init.sql` 建 5 张镜像表(content_registry/hash_binding/identity_mapping/version_history/chain_tx),`make migrate` 通过
|
||||
|
||||
- [ ] **T0.4 API 网关与鉴权基线**
|
||||
- 目标:接入 Kong/APISIX,实现 API Key + HMAC-SHA256 鉴权与限流
|
||||
- 对应:需求17、需求20
|
||||
- 验收:未签名/错误签名请求被拒;限流生效;调用日志记录
|
||||
- 依赖:T0.1
|
||||
- ⏳ 待办:MVP 先在 api-svc 内实现 HMAC 鉴权中间件,网关接入二期
|
||||
|
||||
- [ ] **T0.5 CI/CD 流水线**
|
||||
- 目标:GitLab CI 自动构建、单元测试、镜像打包
|
||||
- 对应:全局
|
||||
- 验收:提交触发流水线;测试不过则阻断合并
|
||||
- 依赖:T0.1
|
||||
- ⏳ 待办
|
||||
|
||||
---
|
||||
|
||||
### 工作包 1:可信数据空间与智能合约(F16)
|
||||
|
||||
> MVP 策略:业务规则在 `internal/chain.MemoryChain` 完整实现并测试通过(无需真实链即可开发);
|
||||
> 真实合约规格见 `contracts/tcs_registry/README.md`,二期搭 ChainMaker 测试网后落地替换。
|
||||
|
||||
- [x] **T1.1 核心数据结构与合约骨架**
|
||||
- 目标:定义内容主表、哈希绑定表、三方编码映射表、版本变更表四类结构
|
||||
- 对应:需求16-AC1
|
||||
- 验收:结构可读写;单元测试覆盖
|
||||
- ✅ 完成:`internal/model` 四类模型 + `internal/chain.Client` 接口 + MemoryChain 实现 + 合约规格文档
|
||||
|
||||
- [x] **T1.2 issueMA(签发+强绑定)**
|
||||
- 对应:需求3、需求16-AC2、需求20-AC1
|
||||
- 验收:仅监管节点可调用;重复签发被拒;绑定不可覆盖;防重复哈希
|
||||
- ✅ 完成:`MemoryChain.IssueMA`,测试覆盖权限/重复/换壳
|
||||
|
||||
- [x] **T1.3 registerMapping(三方编码映射)**
|
||||
- 对应:需求16-AC3
|
||||
- 验收:MA 未签发时拒绝;映射可查
|
||||
- ✅ 完成:`RegisterMapping`,测试覆盖
|
||||
|
||||
- [x] **T1.4 verifyHash(哈希校验)**
|
||||
- 对应:需求16、需求4
|
||||
- 验收:匹配/不匹配返回正确(含转码版)
|
||||
- ✅ 完成:`VerifyHash`,测试覆盖匹配/不匹配/未知MA
|
||||
|
||||
- [x] **T1.5 Merkle Tree 分段存证与按集定位**
|
||||
- 对应:需求16-AC4、需求12-AC3
|
||||
- 验收:可按集校验;篡改单集能定位到具体集
|
||||
- ✅ 完成:`internal/hash` BuildMerkleTree + LocateChangedLeaves,测试覆盖
|
||||
|
||||
- [x] **T1.6 链上存证审计与不可篡改校验**
|
||||
- 对应:需求16-AC5、需求20-AC3
|
||||
- 验收:操作留痕;不可覆盖
|
||||
- ✅ 完成:txID 留痕 + 1:1 不可解绑规则;真实链不可篡改性由 ChainMaker 保证(规格已记录)
|
||||
|
||||
---
|
||||
|
||||
### 工作包 2:链交互服务(chain-svc)
|
||||
|
||||
- [ ] **T2.1 链交互封装层**
|
||||
- 目标:封装合约调用(签发/映射/验真/查询),提供内部 REST/gRPC
|
||||
- 对应:需求16、需求17
|
||||
- 验收:业务服务无需感知底链细节;异常重试;测试覆盖
|
||||
- 依赖:T1.2-T1.6
|
||||
|
||||
- [ ] **T2.2 异步上链与确认机制**
|
||||
- 目标:交易提交后监听区块确认,落库状态 pending→confirmed
|
||||
- 对应:需求16
|
||||
- 验收:确认回执准确;超时/失败有处理;测试覆盖
|
||||
- 依赖:T2.1
|
||||
|
||||
---
|
||||
|
||||
### 工作包 3:哈希计算 SDK(F01)
|
||||
|
||||
- [x] **T3.1 文件哈希与分段 Merkle**
|
||||
- 对应:需求1-AC1、AC2
|
||||
- 验收:大文件分段稳定;Merkle 根可复算一致
|
||||
- ✅ 完成:`internal/hash` sha.go + merkle.go,测试覆盖(含已知向量、篡改检测、奇数叶子)
|
||||
|
||||
- [x] **T3.2 感知哈希计算**
|
||||
- 对应:需求1-AC3
|
||||
- 验收:同内容感知哈希稳定;可计算汉明距离
|
||||
- ✅ 完成:aHash/dHash + HammingDistance,测试覆盖
|
||||
|
||||
- [x] **T3.3 SDK 封装与本地存证**
|
||||
- 对应:需求1-AC4、AC5、AC6、需求20-AC2
|
||||
- 验收:返回完整哈希值包;不支持/空文件报错;原文件不外传
|
||||
- ✅ 完成:`ComputeFile` + HashPackage + Validate,测试覆盖空文件/缺文件/缺字段
|
||||
|
||||
---
|
||||
|
||||
### 工作包 4:CP 送审与哈希上链(F02)
|
||||
|
||||
- [x] **T4.1 送审申报接口与节目信息收录**
|
||||
- 对应:需求2-AC1、AC2、需求17-AC1
|
||||
- 验收:合法申报返回流水号;哈希入可信空间
|
||||
- ✅ 完成:`service.SubmitForReview`(受理+CTID生成),测试覆盖
|
||||
|
||||
- [x] **T4.2 重复哈希识别(防换壳重发)**
|
||||
- 对应:需求2-AC3、需求15-AC5
|
||||
- 验收:重复哈希被拦截并返回原 MA码
|
||||
- ✅ 完成:HashExists 拦截,测试覆盖
|
||||
|
||||
- [x] **T4.3 哈希值包完整性校验**
|
||||
- 对应:需求2-AC5
|
||||
- 验收:缺字段被拒并提示
|
||||
- ✅ 完成:ErrIncompleteHashPkg,测试覆盖
|
||||
|
||||
> 注:T4.x 当前为 service 层实现,HTTP 接口(api-svc 路由)在工作包后段统一接入。
|
||||
|
||||
---
|
||||
|
||||
### 工作包 5:MA码生成与签发(F03,模式B 自行发码)
|
||||
|
||||
- [x] **T5.0 MA码生成服务(号段管理 + 按规则发码)**
|
||||
- 目标:登记发码机构分配的码段,按内容类目原子发码,保证全局唯一
|
||||
- 对应:需求3-AC1~AC4、AC10
|
||||
- 验收:顺序唯一、并发不重号、号段耗尽报错、格式校验/解析
|
||||
- ✅ 完成:`internal/macode`(Generator + Segment + MemoryStore + Parse),9项测试通过(含200并发无重号)
|
||||
|
||||
- [x] **T5.1 签发编排服务**
|
||||
- 目标:审核通过后生成 MA码、调用 issueMA 签发并绑定,记录内容主表
|
||||
- 对应:需求3-AC2、AC5、AC9
|
||||
- 验收:签发成功并绑定;主表信息完整
|
||||
- ✅ 完成:`service.ApproveAndIssue`(自动发码+强绑定),测试覆盖
|
||||
|
||||
- [x] **T5.2 MA码+哈希证书生成**
|
||||
- 对应:需求3-AC7
|
||||
- 验收:证书含 MA码与哈希,可被验真校验
|
||||
- ✅ 完成:Certificate 字段,测试覆盖
|
||||
|
||||
- [ ] **T5.3 未赋码内容准入拦截**
|
||||
- 对应:需求3-AC8
|
||||
- 验收:无证书内容被拦截
|
||||
- ⏳ 待办:在媒资库/分发门禁处统一拦截(并入 T8.2)
|
||||
|
||||
---
|
||||
|
||||
### 工作包 6:送审文件验真(F04)
|
||||
|
||||
- [ ] **T6.1 验真接口(哈希比对)**
|
||||
- 目标:计算送审文件哈希并与可信空间绑定哈希比对
|
||||
- 对应:需求4-AC1、AC2、需求17-AC2
|
||||
- 验收:匹配进入审核;返回 valid/bound_hash/submitted_hash/match/version;测试覆盖
|
||||
- 依赖:T2.1、T1.4
|
||||
|
||||
- [ ] **T6.2 不匹配退回与标记**
|
||||
- 目标:哈希不匹配直接退回并标记"疑似版本替换"
|
||||
- 对应:需求4-AC3、需求15-AC1
|
||||
- 验收:不匹配被退回并标记;测试覆盖
|
||||
- 依赖:T6.1
|
||||
|
||||
---
|
||||
|
||||
### 工作包 7:CSPS 对接与转码版哈希(F05)
|
||||
|
||||
- [ ] **T7.1 CSPS 审核结论对接适配器**
|
||||
- 目标:与 CSPS 审核系统对接,关联审核结论至 MA码/哈希,不改造 CSPS
|
||||
- 对应:需求5-AC1、AC2
|
||||
- 验收:CSPS 结论可关联并查询;对接为外挂式不改 CSPS 流程;测试覆盖(含 Mock CSPS)
|
||||
- 依赖:T2.1、对接规范确认
|
||||
|
||||
- [ ] **T7.2 转码版哈希绑定与父子关系**
|
||||
- 目标:转码后各版本哈希绑定同一 MA码,建立母版-转码版父子关系
|
||||
- 对应:需求5-AC3、AC4、AC5
|
||||
- 验收:多转码版共享 MA码独立哈希;父子关系可查;测试覆盖
|
||||
- 依赖:T7.1、T1.2
|
||||
|
||||
---
|
||||
|
||||
### 工作包 8:媒体资源库入库/发布与映射(F06)
|
||||
|
||||
- [ ] **T8.1 媒资库入库与映射建立**
|
||||
- 目标:审核合格内容入媒资库,建立"媒资编码↔MA码↔文件哈希↔转码版哈希"映射
|
||||
- 对应:需求6-AC1、AC2
|
||||
- 验收:入库后映射可查;保留媒资自有编码;测试覆盖
|
||||
- 依赖:T7.2、T1.3
|
||||
|
||||
- [ ] **T8.2 可发布状态门禁**
|
||||
- 目标:未审核通过/未绑定 MA码的内容不得进入可发布状态
|
||||
- 对应:需求6-AC3
|
||||
- 验收:不合规内容无法发布;测试覆盖
|
||||
- 依赖:T8.1
|
||||
|
||||
- [ ] **T8.3 发布携带证书校验**
|
||||
- 目标:向运营商发布必须携带 MA码+哈希证书,否则拒绝
|
||||
- 对应:需求6-AC4、AC5
|
||||
- 验收:缺证书发布被拒;测试覆盖
|
||||
- 依赖:T8.1
|
||||
|
||||
---
|
||||
|
||||
### 工作包 9:CDN 注入校验(F07)
|
||||
|
||||
- [ ] **T9.1 注入前哈希校验**
|
||||
- 目标:运营商注入 CDN 前计算哈希并与绑定哈希比对
|
||||
- 对应:需求7-AC1、AC2
|
||||
- 验收:匹配允许注入并生成分发编码;测试覆盖
|
||||
- 依赖:T6.1、T8.3
|
||||
|
||||
- [ ] **T9.2 不匹配拒绝注入与告警**
|
||||
- 目标:哈希不匹配拒绝注入、告警审核监管部门、暂停分发
|
||||
- 对应:需求7-AC3、需求15-AC2
|
||||
- 验收:不匹配被拦截并告警;测试覆盖
|
||||
- 依赖:T9.1
|
||||
|
||||
- [ ] **T9.3 运营商映射注册**
|
||||
- 目标:注入成功后注册运营商映射(分发编码、CDN端点)
|
||||
- 对应:需求7-AC4
|
||||
- 验收:映射可查;测试覆盖
|
||||
- 依赖:T9.1、T1.3
|
||||
|
||||
---
|
||||
|
||||
### 工作包 10:版本变更与重审(F12)
|
||||
|
||||
- [ ] **T10.1 绑定断裂检测与重审标记**
|
||||
- 目标:哈希变化判定绑定断裂,记录版本变更,reaudit_required=true
|
||||
- 对应:需求12-AC1、AC2、需求15-AC4
|
||||
- 验收:变更被检出并记录;重审标记生效;测试覆盖
|
||||
- 依赖:T1.5、T6.1
|
||||
|
||||
- [ ] **T10.2 重审门禁**
|
||||
- 目标:重审未通过的变更内容不得进入分发
|
||||
- 对应:需求12-AC4
|
||||
- 验收:未过重审内容被拦截;测试覆盖
|
||||
- 依赖:T10.1、T8.2
|
||||
|
||||
---
|
||||
|
||||
### 工作包 11:角色权限控制(F14)
|
||||
|
||||
- [x] **T11.1 三角色权限矩阵实现**
|
||||
- 对应:需求14-AC1~AC5
|
||||
- 验收:越权操作被拒;签发/下架仅监管主体;测试覆盖各角色
|
||||
- ✅ 完成:chain 层 role 校验 + httpx HMAC 角色鉴权;TestE2E_PermissionMatrix 覆盖越权403/错误签名401
|
||||
|
||||
---
|
||||
|
||||
### 工作包 12:异常处理规则(F15)
|
||||
|
||||
- [x] **T12.1 全局异常处理与规则引擎**
|
||||
- 对应:需求15-AC1~AC5(终端抽检异常 AC3 二期)
|
||||
- 验收:各异常分支按规则执行并留日志
|
||||
- ✅ 完成:service 层 ErrIncompleteHashPkg/ErrDuplicateContent/ErrHashMismatch/ErrNotApproved/ErrNoCertificate;送审退回、注入拒绝、换壳拦截、变更重审均测试覆盖
|
||||
|
||||
---
|
||||
|
||||
### 工作包 13:监管大屏与全链路查询(F10)
|
||||
|
||||
- [x] **T13.1 按 MA码全链路状态查询接口**
|
||||
- 对应:需求10、需求17-AC3
|
||||
- 验收:返回三方映射+CDN端点
|
||||
- ✅ 完成:`GET /api/v1/content/mappings`,端到端验证
|
||||
|
||||
- [x] **T13.2 监管大屏前端**
|
||||
- 对应:需求10、需求11
|
||||
- 验收:可视化查询、验真、应急下架
|
||||
- ✅ 完成:`web-console`(Vite+React18+AntD5),MA码查询/三方映射表/哈希验真/一键下架,`npm run build` 通过;浏览器端 Web Crypto HMAC 签名与后端一致
|
||||
|
||||
---
|
||||
|
||||
### 工作包 14:违规应急下架(F11)
|
||||
|
||||
- [ ] **T14.1 下架指令解析与翻译**
|
||||
- 目标:单一 MA码指令解析出三方编码+CDN端点,翻译为各方下架动作
|
||||
- 对应:需求11-AC1、AC2、需求17-AC3
|
||||
- 验收:一码解析出全部映射;翻译正确;测试覆盖
|
||||
- 依赖:T8.1、T9.3
|
||||
|
||||
- [ ] **T14.2 全网秒级同步下架**
|
||||
- 目标:下架指令秒级同步至媒资库撤除发布+运营商下架;权限限监管主体
|
||||
- 对应:需求11-AC3、AC4
|
||||
- 验收:秒级同步;非监管主体无法发起;测试覆盖
|
||||
- 依赖:T14.1、T11.1
|
||||
|
||||
- [ ] **T14.3 应急下架操作台(前端)**
|
||||
- 目标:监管在大屏一键下架并查看执行结果
|
||||
- 对应:需求11
|
||||
- 验收:操作便捷;执行状态可见;联调通过
|
||||
- 依赖:T14.2、T13.2
|
||||
|
||||
---
|
||||
|
||||
### 工作包 15:集成测试与试点验收
|
||||
|
||||
- [x] **T15.1 端到端集成测试**
|
||||
- 对应:MVP 验收标准
|
||||
- 验收:全链路自动化测试通过
|
||||
- ✅ 完成:`internal/api/integration_test.go` TestE2E_FullLifecycle,覆盖送审→发码→审核→入库→发布→注入→映射→下架
|
||||
|
||||
- [x] **T15.2 版本篡改识别专项测试**
|
||||
- 对应:需求12、需求18-AC4
|
||||
- 验收:篡改用例全部被识别定位
|
||||
- ✅ 完成:TestE2E_TamperRejected(注入篡改拒绝)+ TestE2E_VersionChangeLocatesEpisode(定位到第2集)
|
||||
|
||||
- [x] **T15.3 应急下架时效测试**
|
||||
- 对应:需求11、需求18-AC1
|
||||
- 验收:下架端到端耗时达标
|
||||
- ✅ 完成:TestE2E_TakedownLatency(秒级内,目标分钟级)
|
||||
|
||||
- [ ] **T15.4 单省单运营商试点联调**
|
||||
- 对应:MVP 范围
|
||||
- 验收:真实环境跑通闭环;问题清单收敛
|
||||
- ⏳ 待办:需真实 CSPS/媒资库/运营商对接环境,列入试点排期
|
||||
|
||||
> 补充:权限矩阵 E2E(TestE2E_PermissionMatrix)覆盖 CP 越权发码 403、运营商越权下架 403、错误签名 401。
|
||||
|
||||
---
|
||||
|
||||
## 四、依赖关系总览
|
||||
|
||||
```
|
||||
T0.* 基础设施
|
||||
└─ T1.* 智能合约 ─ T2.* 链交互
|
||||
├─ T3.* 哈希SDK ─ T4.* CP送审 ─ T5.* MA签发 ─ T6.* 验真
|
||||
│ ├─ T7.* CSPS+转码 ─ T8.* 媒资库 ─ T9.* CDN注入
|
||||
│ └─ T10.* 版本重审
|
||||
├─ T11.* 权限 ├─ T12.* 异常
|
||||
└─ T13.* 监管大屏 ─ T14.* 应急下架
|
||||
└─ T15.* 集成测试与试点验收
|
||||
```
|
||||
|
||||
关键路径:T0 → T1 → T2 → T3/T4 → T5 → T6 → T7 → T8 → T9 → T14 → T15
|
||||
|
||||
---
|
||||
|
||||
## 五、进度记录(开发中持续更新)
|
||||
|
||||
| 日期 | 完成任务 | 备注 | 变更说明 |
|
||||
|------|---------|------|---------|
|
||||
| 2026-06-14 | T0.1 工程骨架 | monorepo 建立,`go build ./...` 通过 | 模块路径 github.com/tcs-iptv/tcs |
|
||||
| 2026-06-14 | T0.3 数据库与迁移 | 本地 PG(tcs_iptv)+Redis,5张镜像表 | CTID列名改为 content_twin_id(避开PG保留字) |
|
||||
| 2026-06-14 | 环境决策 | 改用本地 PG/Redis,移除 docker-compose | T0.2链网测先用mock解耦;T0.4鉴权先在api-svc内实现 |
|
||||
| 2026-06-14 | T1.1-T1.6 可信空间与合约 | MemoryChain 实现全部合约规则,14项测试通过 | 真实合约规格见 contracts/tcs_registry/README.md |
|
||||
| 2026-06-14 | T3.1-T3.3 哈希SDK | 文件哈希/Merkle/感知哈希/SDK封装,13项测试通过 | CTID 概念落地 model.Content |
|
||||
| 2026-06-14 | 环境 | psql 加入 PATH(~/.zshrc),Makefile 简化 | go vet/build/test 全绿 |
|
||||
| 2026-06-14 | 架构决策:MA发码模式B | 与发码机构合作拿码段,TCS自行发码 | 需求3 改写为"生成+签发",新增 T5.0 |
|
||||
| 2026-06-14 | T5.0 MA码生成服务 | internal/macode:号段管理+原子发码+解析,9项测试(含200并发无重号) | 六段式 MA.156.{行业}.{机构}/{类目}/{年份}{序列} |
|
||||
| 2026-06-14 | T4.1-4.3 / T5.1-5.2 业务编排 | internal/service:送审→发码签发→验真,8项测试通过 | service 层完成,HTTP 路由后段接入 |
|
||||
| 2026-06-14 | WP7-10 业务编排 | CSPS对接/转码绑定/媒资库入库发布/CDN注入/版本重审/下架,service 层 + 16项测试 | distribution.go |
|
||||
| 2026-06-14 | WP4/9/13/14 HTTP接口 + 鉴权 | api-svc 11个路由 + HMAC鉴权中间件(T0.4);端到端冒烟10步全绿 | scripts/e2e_smoke.sh |
|
||||
| 2026-06-14 | MA码持久化 | PostgresStore 号段原子分配(行级UPSERT),200并发零重号;api-svc 优先PG回退内存 | migrations/0002,解决重启丢号/多实例重号 |
|
||||
| 2026-06-14 | T13.2 监管大屏 | web-console(React18+AntD5):查询/验真/下架,build通过 | Web Crypto HMAC 与后端一致;演示模式安全提示 |
|
||||
| 2026-06-14 | M5 集成测试 | api 集成测试5项全绿(全闭环/篡改拒绝/篡改定位/权限矩阵/下架时效) | 全仓60+测试通过,MVP 代码完成 |
|
||||
| 2026-06-14 | 集级粒度补齐 | 一剧一码+集级哈希绑定+集级子标识(MA码#E07)+按集验真;新增 verify-episode/episodes 接口 | 需求3增AC11-13,migration 0003,3项集级测试通过,端到端验证 |
|
||||
| 2026-06-14 | 全流程演示前端 | web-console 新增"全流程演示"Tab:七步流水线一键执行+双锚定展示+篡改/下架按钮 | FlowDemo.jsx,四角色签名 |
|
||||
| 2026-06-14 | 流程顺序修正 | 改为"先审核后发码"(CSPS审核前移,发码加审核门禁) | 需求3-AC2,全栈+测试+脚本同步 |
|
||||
| 2026-06-14 | 集级面板 | 全流程页新增集级面板:各集独立哈希+集级子标识(MA码#E07)+按集验真/模拟篡改 | FlowDemo 集级表格 |
|
||||
| 2026-06-14 | 多角色工作台 | RoleDesk:CP/审核监管/运营商 独立工作台+待办队列+全局看板,内容在各方桌面真实流转 | 新增 reviews/list 队列接口 + StatusIssued 状态 |
|
||||
| 2026-06-14 | 监管片库 | RoleDesk 新增"监管片库"Tab:全片库列表+状态筛选+应急下架+三方映射/集级钻取详情 | LibraryDesk,content.file_hash 透出 |
|
||||
| 2026-06-14 | 集级下架 | 子集级精准下架(RevokeEpisode),只下架某集不影响整剧;片库详情按集下架 | model.HashBinding.Revoked,TestEpisodeTakedown |
|
||||
| 2026-06-14 | 恢复上架 | 整剧/子集 恢复上架(Restore/RestoreEpisode);片库列表与详情可下架↔恢复切换 | 下架后状态可逆 |
|
||||
|
||||
---
|
||||
|
||||
## 六、本期里程碑
|
||||
|
||||
- [x] M1:基础设施 + 智能合约就绪(工作包0、1、2)— 链规则用 MemoryChain 等价实现,真实链二期
|
||||
- [x] M2:核心链路打通(哈希→送审→签发→验真,工作包3-6)
|
||||
- [x] M3:审核入库发布注入闭环(工作包7-9)
|
||||
- [x] M4:监管与应急下架(工作包10-14)
|
||||
- [x] M5:集成测试通过(工作包15 T15.1-T15.3);单省试点联调 T15.4 待真实对接环境
|
||||
|
||||
---
|
||||
|
||||
## 七、MVP 收尾状态(2026-06-14)
|
||||
|
||||
**已完成(代码 + 测试):** 工作包 0/1/3/4/5/7/8/9/10/11/12/13/14/15
|
||||
**测试总览:** 全仓 60+ 用例通过;`go vet` / `go build ./...` / `go test ./...` 全绿;前端 `npm run build` 通过
|
||||
**端到端:** API 集成测试 5 项(全闭环/篡改拒绝/篡改定位/权限矩阵/下架时效)+ 脚本冒烟 10 步
|
||||
|
||||
**遗留待办(上生产前必做,列入二期/试点):**
|
||||
1. T0.2 真实 ChainMaker 测试网 + 合约部署(替换 MemoryChain)
|
||||
2. 链上镜像数据落 PostgreSQL(当前 content/mapping 仅在内存链,PG 镜像表已建待接入)
|
||||
3. 监管大屏改「控制台 BFF + 会话令牌」,密钥不下发浏览器(当前为演示态)
|
||||
4. T0.5 CI/CD 流水线
|
||||
5. T15.4 单省单运营商真实联调
|
||||
6. 二期权益场景 F18-F22 + 跨省复用 F13 + 终端抽检 F08
|
||||
|
||||
---
|
||||
|
||||
> 本任务文档为 MVP(一期)开发指导。开发过程中将根据实际进度持续更新任务状态(`[ ]`→`[~]`→`[x]`)与进度记录表。二期权益场景(F18-F22)与跨省复用(F13)将在 MVP 验收后单独排期。
|
||||
Reference in New Issue
Block a user