生产还停在 `20261003_0040`,S1–S7 一条都没上。本次在**生产克隆库**上把 「迁移 → 校验 → 回滚」完整走了一遍,并把可执行的清单落成文档。 ## 演练结果(克隆库,与生产逐项同构) | 步骤 | 结果 | | --- | --- | | 克隆生产库 | 15,182 账号 / 14,324 CK / 版本 `0040` / 27 张表,与生产一致 | | **迁移全链 0041→0046** | 6 个迁移,**9 秒**,无错误(含 S1 的 fail-closed 自校验) | | 账号数 | 15,182 ✓ 不变 | | **CK 搬运** | 账号侧 14,323 = 登录记录侧**去重账号数 14,323**(精确相等)| | 精英/电竞映射 | bound 410 / pending 75 / unbound 14;电竞 **unbound 26**(修复生效)| | `esports_opened` | **4** ✓(抢救生效)| | `source_ref` 可空 | `YES` ✓ | | **回滚降级** | 6 个迁移,**2 秒**;`bind_status` 原值完好、两列回到 `varchar(32)` | ## 🔴 演练查出的关键风险(不演练绝对发现不了) S2 之后 CK **只写 `accounts.cookie`、刻意不双写** `login_tasks.cookie`。 而降级会 **drop 掉 `accounts.cookie`** —— 也就是: > **部署期间新拿到的 CK,会在回滚时全部丢失。** CK 丢失是本项目唯一不能承受的损失(重登成功率≈0、全量重登≈2.7 天)。 于是新增 `scripts/backfill_login_tasks_from_accounts.py`(**回滚前置**): 把账号侧 CK / 健康 / 重登进度搬回旧列;没有历史行的账号补一条合成行 (否则旧代码靠 `login_tasks` 找不到它的 CK);没有 CK 的账号清掉旧行残留 (否则旧代码以为它还持有 CK)。自带 `--dry-run` 与**自检** (账号侧 ≤ 登录记录侧去重数,不通过就别降级)。 **同样在克隆库上验证过**:模拟「部署期间新拿到一个 CK」→ 跑回填 → 降级 → **该 CK 完整幸存**(task#100 / 账号 168)。不跑回填的话它就没了。 ## 补齐了之前做不到的那项验证 本地没有生产的加密密钥,所以之前只验证了 CK「搬过去了」、没验证「能解密」。 这次**在生产上只读实测**:抽样 5 条 `login_tasks.cookie`,**5/5 解密正常** (长度 1613–1660)。这是清单里第 1 节的部署前基线。 ## 交付物 - `docs/上线清单-S1-S7部署.md`:部署前检查 / 执行顺序(**先停应用→迁移→再起代码**)/ 七项逐条校验 / 回滚预案(含正确顺序)/ 已知限制 / 演练证据 - `scripts/backfill_login_tasks_from_accounts.py` + 2 条用例 (搬回已有行、无历史行时补合成行) ## 验证 `TZ=Asia/Shanghai`:**552 passed / 6 skipped**;ruff 全绿。 ⚠️ 清单里写明:**S8(删旧列)本次不做** —— 要等稳定运行 + 逻辑备份之后。
项目文档索引
更新时间:2026-10-02
当前入口
- 自动化与资料收集规划:CK 自动管理、资料收集链接、皮肤台账与半自动工单的分期计划(规划中,未开工)。
- 皮肤准入映射分析:C 桶皮肤类到斗鱼商品目录的归一与覆盖分析(923 个快手名 → 78 个斗鱼商品,覆盖率 40.1%)。
- 虎牙 Cookie 路线状态:当前实现、字段状态、验证边界和后续工作。
- 虎牙网页设备字段溯源:浏览器证据、字段来源和生成算法。
- 虎牙 Cookie 合并审计与来源矩阵:字段来源约束和合并策略。
- 虎牙精英宝典联调指南:工作台联调顺序和只读验证方法。
虎牙业务与协议
- 虎牙精英宝典 9.1 全流程分析
- 虎牙精英宝典后端与抓包对照
- 虎牙精英宝典 8.31 Python 重分析
- 虎牙精英宝典联调指南
- 网页 Cookie 缺失字段历史方案
- 虎牙 App 登录总览
- 虎牙纯 Python 自动登录总结
虎牙设备与加密逆向
- HDID 算法生成
- HDID 研究记录
- 标识符命名规范
- 铸币机终局总结
- App 登录协议抓包实证
- App 登录 WUP 明文抓包
- App 登录加密算法动态验证
- App 登录 APK 静态分析
- App 登录逆向笔记
- 扫码登录闭环逆向
- hyCred 签发侦察笔记
设备注册与运行工具
鱼翅充值接口
文档约定
- 带日期的抓包和逆向笔记属于历史证据,结论以对应日期为准。
- 当前代码行为和未完成项以“虎牙 Cookie 路线状态”为准。
- Cookie、UID、订单号和设备标识进入文档时使用脱敏值;真实数据只保存在本地 evidence 目录。
- 兑换、下单和支付属于写操作,除非明确确认,不纳入自动回归测试。