账号、离线成长与每日在线系统设计#
设计版本 0.8.1 · 2026-09-13 · 基于多人规则草案1.5与Web 1.20.2。状态:设计提案、API契约与参考DDL;已有录像服务端首阶段,完整账号与每日后端仍待接入。
本版重点:多端离线经验按事实去重合并;每日服务器生成验证;初中高与综合四榜,各自预选后上传缺失的压缩官方录像;日切冻结;历史录像无通关门槛;本版不包含直播或PVP。采用SQLite,Redis仅用于每日榜单缓存及官方录像TTL存储。
个人录像继续仅本机:正文、收藏元数据、录制草稿与删除事件不进入云同步、云导出或账号合并。用户选择参榜时上传的官方候选证据独立于个人收藏,不为个人录像建立云盘。
审阅从系统设计审阅稿开始:集中查看当前范围、本轮删减及影响体验的规则,再进入详细API与表。
1. 文档入口#
| 文件 | 用途 |
|---|---|
| 总体架构 | 哪些联网/离线、客户端与服务端存什么、模块边界 |
| Redis设计 | 每日榜单缓存、录像正文TTL存储、跨库故障和无清理job策略 |
| 四榜规则 | 四榜计分/资格、成绩改善反馈、录像共享、跨设备与存储预算 |
| 经验与防作弊 | 多端经验与升级实例、预测对账、日权益、信任边界 |
| 基础API | 账号密码/游客/未来SSO、私人同步/导入/导出 |
| 每日与回放API | 取题、报分、gzip授权上传、重演/发榜、公开回放 |
| 每日与回放状态机 | 地图权威、实时摘要、条件证据、日切、权限与失败处理 |
| 基础DDL | 35张身份/私人进度/奖励/同步辅助表 |
| 在线DDL | 同库24张每日/候选/榜单/观看表,共59张 |
| 数据表与事务 | 唯一键/外键、XP结算、SQL与业务层分工、留存删除 |
| 验收矩阵 | 本版70项端到端场景定义,尚未运行 |
| DDL检查脚本 | Python标准库临时SQLite检查,不是完整在线服务测试 |
| Redis原语检查 | 临时Redis进程验证TTL/幂等/固定截止/AOF确认,不连接已有实例 |
2. 设计支柱与机制#
- 努力可保留:普通离线能玩,独立新局不漏经验,同一局/日权益不重领。
- 比赛规则可解释:同题、服务端时间、无伤条件,候选与正式名次清楚区分。
- 公开由玩家选择:主动参榜,当日观看先告知,个人录像仅本机。
- 日期边界一致:截止前完成全流程,历史名次固定,历史观看不限制今天。
| 机制 | 目的/感受 | 输入→输出 | 成功/失败边界 | 调节与依赖 |
|---|---|---|---|---|
| 离线升级 | 随时玩有成长反馈 | 对局事实→预计XP→确认账本/等级 | 不重复/串档;冲突保留,升级不局中补血 | 原经验曲线;同步频率待测 |
| 服务器每日 | 同一天同挑战 | UTC日/规则→验证后地图→可见投影 | 无合格题则不可用,不本地降级 | 生成验证预算待实测;纯引擎 |
| 条件录像 | 有机会争榜才花上传流量 | 单项1段/综合3段→独立候选→共享gzip→核验发布 | 候选不占位,超越/不完整/过期有明确反馈 | 字节/事件/CPU预算;权威锚点 |
| 历史冻结 | 结果稳定、可学习 | 日切→固定generation与公开历史播放 | 不补录/不递补;违规仅注记/撤播放 | 30天录像保留为建议 |
| 当日观看 | 完成后复盘,避免暗中丧失竞榜 | 三档确认/主动观看→日期锁 | 未释放失败不锁,已释放无ACK待确认 | 浏览器真实显示不可证明;权限门槛 |
即时循环:操作→本地或服务器反馈。单局循环:完成→普通成长/无伤段→有机会再争快。长期循环:原有关卡/每日/勋章+固定题无伤竞速/复盘,不新增付费优势、体力或名次经验奖励。
新参数在API参数表标记 [待确认][待测试]。四榜结构已由用户确认;当日观看细则仍沿用原建议,单项提前入榜不自动授予高级观看权限。录像暂沿用候选上传,跨端缺段边界已写明。
3. 实施顺序与验证#
- 本地档案/录像隔离、账号与SQLite私人同步,先验证多端XP不重发。
- 服务器地图生成/独立验证、权威计时状态、命令去重及本机官方草稿。
- 成绩预选、压缩授权、重演、单项与综合四榜完整事务、跨榜录像复用和UTC统一冻结。
- Redis录像存储/绝对TTL/持久化确认/榜单缓存与跨库故障;当日观看提示/曝光屏障、历史开放与撤公开处理。
- 完成70项端到端场景及负载、隐私、真人体验测试,覆盖账号恢复、日切冻结、观看权限与跨设备缺段。
2026-09-13:SQLite 3.40.1,35+24张表在同一临时数据库建立;50项DDL检查通过。覆盖四榜独立名次/1与3段形状/录像复用/跨设备引用/发布回滚,及基础账本/并发、无对战枚举、候选上传归属、终局/榜单不可改、延迟冻结worker护栏、历史匿名观看可建模,以及直播模型/枚举已移除、watch必须绑定录像;录像三表无BLOB正文、Redis key/尺寸/期限元数据有效。Redis 8.0.3的临时实例另有8项原语检查通过,测试后已关闭并删除。
尚未实现/验证:账号HTTP、WSS计时、地图生成验证器、gzip录像重演、真实日切调度、70项端到端场景。SQL通过不代表防作弊完成。私人离线事实不能完全防伪造,浏览器不能绝对证明屏幕显示或消除场外答案传播。
4. 版本记录#
| 版本 | 日期 | 变化 |
|---|---|---|
| 0.8.1 | 2026-09-13 | 收紧录像大小/事件上限;双hash上传前去重;补流式拒收、配额、慢连接及验证资源保护 |
| 0.8.0 | 2026-09-13 | Redis限每日榜单缓存与官方录像TTL存储;录像正文移出SQLite,不设录像到期清理job;补跨库故障与持久化边界 |
| 0.7.0 | 2026-09-13 | 移除直播入口/协议/三张专用表;观看仅限每日公榜录像,保留四榜与私人同步;整理审阅范围 |
| 0.6.0 | 2026-09-13 | 初中高与综合四榜独立;单项1段/综合3段,录像共享、统一冻结、跨端分段提交;48项DDL检查通过 |
| 0.5.0 | 2026-09-13 | 多端离线升级与防作弊分层;服务器每日;先成绩后压缩证据;日切冻结/历史观看开放;删除本版PVP;重建60项验收与40项SQL检查 |
| 0.4.0 | 2026-09-13 | 结合多人规则1.1建立在线领域;个人录像仅本机 |
| 0.3.0 | 2026-09-12 | 移除Redis专项设计与部署依赖 |
| 0.2.0 | 2026-09-12 | 基础API/DDL/事务草案 |
| 0.1.0 | 2026-09-12 | 初版账号与离线同步架构 |
已新增录像服务端首阶段代码和隔离测试;未部署生产后端、不执行生产migration。游戏版本不变。