Files
live-hub-py/docs
yml2213 3a227ffec1 docs(account): 斗鱼账号全生命周期全新设计,取代旧的目标模型
围绕账号做一套全新设计,不再参照虎牙,并丢掉旧结构的包袱。

推翻的直接证据:
1. 三个「状态」都找不到家 —— 凭证在 login_tasks.cookie、健康与重登在 login_tasks.ck_check_*/relogin_*、
   生命周期状态根本不存在(只能靠「有没有持 CK 的记录」反推);
2. accounts.bind_status 一列塞了 36 种取值,混了三种性质(真绑定状态/一次性动作痕迹/业务结果)
   且互相覆盖 —— 查一次精英宝典状态就把 bind_confirmed 冲掉,账号详情页还拿它显示「绑定状态」;
3. 开通/积分/兑换/充值这些账号事实全埋在 douyu_tasks.result(22 万行 / 687MB,绝大多数是轮询噪声);
4. 账号检测页粘贴文本检测、结果不落库、连 account_id 字段都没有,与库内账号完全脱节。

设计要点:
- 账号为聚合根;当前状态在账号上、发生过什么在 account_events,两者严格分离;
- 登录态(CK/健康/重登)内联 accounts(否决独立表:多会话与懒加载风险,且内联切换面最小),
  并说明 1:1 场景下 defer() 已能解决列表查询拖大字段的问题;
- 新增显式生命周期状态机 imported/active/invalid/relogin/manual/disabled/archived,
  写入收口到唯一服务,禁止各处直接赋值(bind_status 崩掉的直接教训);
- account_events 扩展 category/subject_type/subject_key/actor_* 与台账复合索引,
  一张表同时承载「时间线 + 开通/积分/兑换/充值台账」,支撑 365 天同皮肤规则;
  有流程的兑换工单仍独立建表 —— 流程归工单、事实归事件流;
- login_tasks 瘦身为纯登录尝试历史,douyu_tasks 降级为执行日志并加保留策略;
- 迁移沿用 CK 解耦文档的回填机制(分块/幂等/自校验 fail closed/值级校验),
  历史业务记录不回填 douyu_tasks,需要时走斗鱼侧权威接口按需同步;
- 落地分 S1~S8,S1→S2 为关键路径,S8(drop 旧列)不可逆且前置每日备份。

同时更新 CK 解耦文档头部,标注其目标模型已被取代、迁移机制仍然有效。
2026-10-04 13:37:07 +08:00
..
2026-08-14 11:29:37 +08:00

项目文档索引

更新时间:2026-10-02

当前入口

虎牙业务与协议

虎牙设备与加密逆向

设备注册与运行工具

鱼翅充值接口

文档约定

  1. 带日期的抓包和逆向笔记属于历史证据,结论以对应日期为准。
  2. 当前代码行为和未完成项以“虎牙 Cookie 路线状态”为准。
  3. Cookie、UID、订单号和设备标识进入文档时使用脱敏值;真实数据只保存在本地 evidence 目录。
  4. 兑换、下单和支付属于写操作,除非明确确认,不纳入自动回归测试。