Files
MAcode/方案对照报告.md

19 KiB
Raw Permalink Blame History

IPTV 系统融合 MA 码方案 — 代码实现对照报告

生成日期:2026-06-30 对照文档:IPTV系统融合CC码方案介绍.md 代码仓库:tcs-iptv/ 总体匹配度:100%(方案全部要求已实现),部分功能超出方案要求


一、整体系统架构对照

1. 业务系统层

方案要求 代码实现 状态
内容提供商平台负责内容提交和内容管理 Service.SubmitForReview + POST /content/register 满足
CPSP 系统负责内容受理、加工、审核和发布 Service.ReviewCSPS + Service.ApproveAndIssue + Service.IngestToLibrary + Service.PublishToOperator 满足
运营商平台负责内容接收、运营和分发 Service.InjectToCDN + Service.ReportPlayback 满足
内容按原有业务流程流转 送审 → CSPS审核 → 发码 → 入库 → 发布 → CDN注入 → 播放回传 满足

2. 内容资源层

方案要求 代码实现 状态
片库为现有系统,负责存储实际媒体文件 片库为外部系统,代码不替代 满足(不侵入)
目录库负责存储 MA、Hash、片库文件 ID、省内内容编码等映射关系 chain.Client 统一存储 + identity_mapping 表 + hash_binding 满足
目录库可扩展审核状态、审核机构、审核时间、审核结论等 provenance.Store 存证 + FilingRecord 备案关联 + VersionChange 版本变更 满足
目录库可独立部署 cmd/catalog-svc/ 独立微服务 + internal/catalog 包 + CatalogStore 可替换接口 满足 + 超出(方案仅提及"可独立部署",已实现完整独立服务)

3. 标识服务层

1)标识服务模块

方案要求 代码实现 状态
MA 生成 cccode.Generator.Allocate() 按类目从号段原子分配 满足
Hash 登记 chain.IssueMA 强绑定 + chain.RegisterHashBinding 追加绑定 满足
标识查询 — 根据 MA 查询 GET /content/mappings + GET /catalog/query-by-ma 满足
标识查询 — 根据 Hash 查询 GET /content/query-by-hash + GET /catalog/query-by-hash 满足
标识查询 — 根据省级内容编码查询 GET /content/query-by-provincial-code + GET /catalog/query-by-provincial-code 满足
标识查询 — 根据片库文件 ID 查询 GET /content/query-by-library-id + GET /catalog/query-by-library-id 满足
标识映射管理 chain.RegisterMappingCP/Reviewer/Operator 三方编码 + CDN 端点) 满足
标识同步 internal/sync 包 + SyncService(全量/增量同步 + 冲突检测 + 三种冲突策略) 满足 + 超出(方案仅提及"标识同步",已实现冲突解决策略)
建立 MA 与 Hash 的映射关系 IssueMA 1:1 强绑定 + hash_binding 满足
建立 MA 与片库文件 ID 的映射关系 RegisterMapping(PartyReviewer, mediaAssetID) 满足
建立 MA 与省级内容编码的映射关系 RegisterMapping(PartyCP, cpMediaID) 满足
将相关信息写入目录库 chain.Client 统一写入 + PersistentChain PG 持久化 满足

2)验真服务模块

方案要求 代码实现 状态
判断内容是否已存在 chain.HashExists() 防换壳重发 满足
判断是否已生成 MA chain.QueryContent() 返回状态 满足
查询对应内容信息 chain.QueryContent / QueryByHash / QueryByProvincialCode / QueryByLibraryFileID 满足
查询是否存在历史记录 provenance.Store.Trail() 全链路存证 满足
为审核人员提供辅助判断依据 Service.ScanVerify 扫码验真 + Service.Resolve 跨域解析 满足
内容识别接口 GET /content/resolve 跨域解析网关 满足 + 超出(方案未提及跨域解析,已实现大小屏融合)
Hash 匹配接口 POST /content/verify + POST /content/verify-episode 满足
MA 查询接口 GET /content/mappings 满足
审核记录查询接口 GET /content/provenance 全链路存证 满足

3MA 管理模块

方案要求 代码实现 状态
MA 创建 Service.ApproveAndIssuechain.IssueMA(审过才发码) 满足
MA 维护 SetContentStatus / RegisterHashBinding / RegisterMapping / AddEpisodes 追更 满足
MA 合并 chain.MergeMA + POST /content/merge(哈希绑定和映射迁移) 满足
MA 拆分 chain.SplitMA + POST /content/split(按集号拆分) 满足
MA 失效 chain.Revoke 下架 + StatusRevoked 满足
状态管理 SetContentStatus + 10 种状态常量(pending → approved → issued → in_library → published → revoked → merged → split 等) 满足
一致性校验 provenance.Store.Accountability 哈希一致性检查 + 责任界定 满足
合并/拆分后映射关系迁移与一致性校验 MergeMA/SplitMA 中迁移 bindings 和 mappings + 哈希索引更新 满足
保证 MA 编码的唯一性、稳定性和可管理性 IssueMA 不可重复签发 + hashIndex 唯一索引 + 号段原子分配 满足

4)系统管理模块

方案要求 代码实现 状态
用户管理 AdminService 用户 CRUD + API Key 生成/重置/禁用 + admin_handlers.go 6 个 API 满足
组织管理 AdminService 组织 CRUD + 号段关联 + admin_handlers.go 5 个 API 满足
权限管理 httpx.AuthMiddleware HMAC-SHA256 签名鉴权 + RBACManager 动态权限矩阵 满足 + 超出(方案仅提及"权限管理",已实现可配置 RBAC 权限矩阵 + 40+ 权限常量 + 动态增删)
配置管理 config.Load() 环境变量加载 + 多后端切换(memory/pg/chainmaker 满足
日志管理 provenance.Store 全链路存证(不可篡改时间序事件) 满足 + 超出(方案仅提及"日志管理",已实现全链路存证 + 责任界定取证 + 版权确权证据链)
运行监控 internal/monitor Prometheus 4 金指标 + /metrics 端点 + Grafana 面板配置 满足 + 超出(方案仅提及"运行监控",已实现完整 Prometheus + Grafana 部署配置 + 告警规则建议)

二、系统接口设计对照

(一)第一阶段核心接口

1. 标识登记接口

方案要求 代码实现 状态
生成 MA 统一标识 cccode.Generator.Allocatechain.IssueMA 满足
生成或登记内容 Hash IssueMA 强绑定 FileHash + PerceptualHash + 集级哈希 满足
建立 MA 与 Hash 的映射关系 hash_binding 表 + hashIndex 内存索引 满足
建立 MA 与片库文件 ID 的映射关系 RegisterMapping(PartyReviewer, mediaAssetID) 满足
建立 MA 与省级内容编码的映射关系 RegisterMapping(PartyCP, cpMediaID) 满足
将相关信息写入目录库 chain.Client 统一写入 + PG 持久化 满足
CPSP 发布环节触发 Service.ApproveAndIssue(审核通过后发码签发) 满足

2. 标识查询接口

方案查询方式 API 路径 代码方法 状态
根据 MA 查询 GET /content/mappings + GET /catalog/query-by-ma chain.QueryContent + chain.QueryMappings 满足
根据 Hash 查询 GET /content/query-by-hash + GET /catalog/query-by-hash chain.QueryByHash 满足
根据省级内容编码查询 GET /content/query-by-provincial-code + GET /catalog/query-by-provincial-code chain.QueryByProvincialCode 满足
根据片库文件 ID 查询 GET /content/query-by-library-id + GET /catalog/query-by-library-id chain.QueryByLibraryFileID 满足
返回内容标识信息及映射关系 ContentQueryResult{Content, Bindings, Mappings} 统一返回结构 满足

(二)后续扩展接口

1. 验真服务接口

方案要求 代码实现 状态
判断内容是否已存在 chain.HashExists() 满足
判断是否已生成 MA chain.QueryContent() 状态检查 满足
查询对应内容信息 四维度查询接口 满足
查询是否存在历史记录 provenance.Store.Trail() 满足
为审核人员提供辅助判断依据 ScanVerify + Resolve + Accountability 满足

三、分阶段建设规划对照

第一阶段:省内统一标识建设

方案要求 代码实现 状态
引入 MA 统一标识和 Hash 内容指纹 cccode.Generator + chain.IssueMA + hash_binding 满足
建立内容统一身份体系 ContentTwinID 内容双锚 ID + MA 码 1:1 强绑定 满足
建设标识服务平台 cmd/api-svc/main.go 完整服务 满足
建设目录库 internal/catalog + cmd/catalog-svc 独立服务 满足
建立 MA、Hash、片库文件 ID、省内内容编码映射关系 identity_mapping 表 + RegisterMapping 三方 满足
改造 CPSP 发布环节自动生成 MA ApproveAndIssue 审核通过后自动发码 满足
形成"省内内容编码+MA+Hash"双层标识体系 省级编码通过映射关联,MA+Hash 强绑定 满足

第二阶段:省内审核辅助建设

方案要求 代码实现 状态
建设验真服务 Service.Verify + Service.ScanVerify + Service.Resolve 满足
改造 CPSP 受理和审核流程 SubmitForReviewReviewCSPSApproveAndIssue 满足
通过 Hash 调用验真服务识别内容 HashExists + QueryByHash + VerifyHash 满足
审核结果与 MA 建立关联 ProvenanceEvent 存证 + FilingRecord 备案关联 满足
审核数据资产沉淀机制 provenance.Store 不可篡改时间序存证 满足

第三阶段:全国统一标识与审核协同建设

方案要求 代码实现 状态
制定全国统一 MA 编码规则 cccode.Segment 号段管理 + RegisterSegment + ParseCCCode 解析 满足
建设全国目录中心 internal/nationalcatalog 包 + NationalCatalog 服务 满足
省级目录库 ↔ 全国目录中心数据同步机制 SyncService 全量/增量同步 + NationalCatalog.SyncFromProvince 满足
各省内容编码与全国统一 MA 映射同步 SyncSource/SyncSink 接口 + 省级数据聚合 满足
审核记录与 MA 关联 ShareAuditRecord 审核记录共享 满足
审核状态、审核结论跨省共享 NationalCatalog.QueryAuditRecords 全国查询 满足
跨省审核结果复用 CrossProvinceAdmit 三重校验快速准入 满足 + 超出(方案提及"审核结果复用",已实现完整三重校验准入流程)
统一数据治理和主数据管理 NationalStats 全国统计 + DailyRegulatoryReport 监管日报 满足

第四阶段:生态推广应用

方案要求 代码实现 状态
向内容提供商开放 MA 查询 四维度查询接口 + CP 角色权限 满足
向内容提供商开放内容识别 Resolve 跨域解析 + ScanVerify 扫码验真 满足
向内容提供商开放审核记录查询 GET /content/provenance 满足
向内容提供商开放内容追踪 GET /content/accountability 责任界定 + GET /content/evidence 确权证据链 满足
内容查重 HashExists + MatchInfringement 感知哈希侵权比对 满足 + 超出(方案提及"内容查重",已实现感知哈希汉明距离比对)
内容快速定位 四维度反查接口 满足
内容状态查询 QueryContent 返回状态 + ListContentsByStatus 满足
运营商快速识别内容身份 Resolve + ScanVerify + VerifyHash 满足
运营商查询审核记录 GET /content/provenance 满足
运营商共享审核成果 CrossProvinceAdmit 跨省准入 + ShareAuditRecord 满足

四、超出方案要求的实现

以下功能在方案文档中未明确提及或仅概括性描述,代码实现已超出方案要求:

超出项 代码实现 说明
跨域解析网关(大小屏融合) Service.Resolve + ParseCCCode 六段式解析 方案未提及 IPTV/OTT/APP 跨屏身份互通,已实现统一解析
扫码验真 Service.ScanVerify 方案未提及用户侧扫码验真防盗版,已实现
跨屏权益通兑 Service.RecordPurchase + Service.VerifyCrossScreenRights 方案未提及大小屏购买通兑,已实现"一屏购买全屏通看"
感知哈希侵权比对 Service.MatchInfringement 汉明距离比对 方案仅提及"内容查重",已实现感知哈希相似度检索
版权确权证据链 Service.CopyrightEvidence 方案未提及司法举证能力,已实现"谁先锁定谁有权"证据链导出
责任界定取证 provenance.Store.Accountability 方案未提及追责取证,已实现首次哈希变化节点定位
授权链与发布前核验 Service.RecordAuthorization + Service.CheckAuthorization 方案未提及信息网络传播权授权管理,已实现地域/平台/过期核验
CDN 注入校验 Service.InjectToCDN 方案未提及 CDN 注入前哈希校验,已实现"不匹配拒绝注入并告警"
终端片段抽检 Service.TerminalVerifySegment 方案未提及终端侧抽检,已实现集级哈希校验 + 断流建议
播放数据回传与分账 Service.ReportPlayback + Service.ComputeSettlement 方案未提及播放数据聚合与分账,已实现基于可信数据的分账计算
RBAC 动态权限矩阵 httpx.RBACManager + 40+ 权限常量 + 动态增删 方案仅提及"权限管理",已实现可配置角色权限矩阵
同步冲突解决策略 SyncService 三种策略(Skip/Overwrite/Fail 方案仅提及"标识同步",已实现冲突检测与解决
全国目录中心统计 NationalCatalog.Stats 按省/状态/类目统计 方案仅提及"全国目录中心",已实现多维度统计
Grafana 监控面板 deploy/monitoring/grafana-dashboard.json 6 个面板 方案仅提及"运行监控",已实现完整 Prometheus + Grafana 配置
集级下架与恢复 Service.TakedownEpisode + Service.RestoreEpisode 方案仅提及"失效",已实现集级粒度下架/恢复
追更与增量哈希更新 Service.AddEpisodes 方案未提及内容追更场景,已实现不触发重审的增量赋码
版本变更重审 Service.ReportVersionChange + Merkle 树定位篡改集 方案未提及版本变更检测,已实现哈希断裂触发重审 + 精确定位
备案/网标关联 Service.BindFiling + Service.QueryFiling 方案未提及广电总局备案对接,已实现网标号/备案号关联
监管数据上报日报 Service.DailyRegulatoryReport 方案未提及监管上报,已实现日报生成
号段管理 Service.ListSegments + Service.RegisterSegment 方案未提及号段管理界面,已实现号段登记与使用情况查询

五、代码文件清单

核心包

包路径 职责 方案模块
internal/model/ 领域模型定义 全部模块
internal/chain/ 可信数据空间客户端抽象(Memory/Persistent/ChainMaker 标识服务 + MA管理
internal/service/ 业务逻辑层 标识服务 + 验真服务 + MA管理
internal/api/ HTTP API 处理器 全部模块
internal/httpx/ 鉴权 + RBAC + 统一响应 系统管理
internal/catalog/ 目录库独立查询层 内容资源层
internal/sync/ 标识同步服务 标识服务
internal/nationalcatalog/ 全国目录中心 第三阶段
internal/monitor/ Prometheus 监控 系统管理
internal/cccode/ MA 码生成器 标识服务
internal/provenance/ 全链路存证 验真服务 + 系统管理
internal/playback/ 播放数据存储与分账 第四阶段
internal/hash/ 哈希工具(Merkle 树、感知哈希) 标识服务
internal/config/ 配置管理 系统管理

微服务入口

入口 端口 职责
cmd/api-svc/ :8080 主 API 服务(标识登记/查询/验真/MA管理/系统管理)
cmd/chain-svc/ :8081 链服务(预留)
cmd/hash-api/ :8082 哈希服务
cmd/catalog-svc/ :8083 目录库独立微服务
cmd/console-bff/ 控制台 BFF(预留)

部署配置

文件 职责
deploy/migrations/0001_init.sql 初始化表结构
deploy/migrations/0005_admin.sql 用户/组织表
deploy/monitoring/prometheus.yml Prometheus 采集配置
deploy/monitoring/grafana-dashboard.json Grafana 监控面板
deploy/monitoring/README.md 监控部署说明

测试覆盖

测试文件 覆盖范围
internal/chain/conformance_test.go 链客户端契约测试(含多维度查询 + 合并/拆分)
internal/service/service_test.go 送审/发码/验真核心流程
internal/service/distribution_test.go 转码/入库/发布/CDN注入/下架
internal/service/episode_test.go 集级哈希/集级下架
internal/service/accountability_test.go 责任界定取证
internal/service/admin_test.go 用户/组织管理
internal/httpx/rbac_test.go RBAC 动态权限
internal/catalog/catalog_test.go 目录库查询
internal/sync/sync_test.go 标识同步 + 冲突策略
internal/nationalcatalog/nationalcatalog_test.go 全国目录中心
internal/api/catalog_handlers_test.go 目录库微服务 API

六、结论

维度 方案要求 代码实现 匹配度
标识服务模块 8 项功能 8 项全部实现 100%
验真服务模块 5 项功能 5 项全部实现 100%
MA 管理模块 7 项功能 7 项全部实现 100%
系统管理模块 6 项功能 6 项全部实现 100%
第一阶段 7 项要求 7 项全部实现 100%
第二阶段 5 项要求 5 项全部实现 100%
第三阶段 8 项要求 8 项全部实现 100%
第四阶段 10 项要求 10 项全部实现 100%
超出项 20 项超出实现

总体评价:代码实现完整覆盖了 IPTV系统融合CC码方案介绍.md 中定义的全部功能模块和四个建设阶段,并在跨域解析、扫码验真、跨屏权益、侵权比对、版权确权、责任界定、授权管理、CDN注入校验、终端抽检、播放分账、RBAC权限矩阵、同步冲突策略、Grafana监控等方面超出方案要求