3.6 KiB
3.6 KiB
更新记录
说明:本文件用于记录每次客户端代码层面的更新内容,按时间倒序排列。
2026-01-29
-
挖矿任务持久化重构(替换 SQLite 为本地日志文件)
- 移除
sqflite_common_ffi及 SQLite 依赖,避免在 Windows / Linux 环境下对系统libsqlite3的安装要求。 DatabaseService改为基于bin/mining_tasks.log的 JSON 行存储:- 新挖矿任务创建时追加写入
.log; - 挖矿任务完成后,从
.log中删除对应记录; - 客户端启动时读取
.log,仅保留未过期任务,并自动恢复最新一条未完成的挖矿任务。
- 新挖矿任务创建时追加写入
- 移除
-
退出流程优化
- 新增
ClientProvider.shutdown(),在点击“退出程序”时:- 停止与服务器的连接和心跳;
- 停止当前挖矿进程和持续挖矿任务;
- 关闭自动刷新定时器,确保退出后不会残留后台矿工进程。
- 新增
-
文档与多平台说明
- README 中补充了“持续挖矿中”状态标识(蓝色指示灯)及
bin/mining_tasks.log的作用说明。 - 增加 Linux 构建脚本(
build_linux.sh)和运行脚本(start_linux_app.sh)的使用说明,支持在 Linux 环境下一键安装依赖并运行客户端。
- README 中补充了“持续挖矿中”状态标识(蓝色指示灯)及
2026-01-23
-
网络与构建相关
- 配置 Flutter 使用国内镜像源(
PUB_HOSTED_URL/FLUTTER_STORAGE_BASE_URL),解决pub.dev访问失败问题。 - 清理并修复 Windows 构建缓存(CMake 路径不一致导致的构建失败)。
- 排查
sqlite3原生资产构建失败的原因(无法访问 GitHub 下载预编译库),为后续在有外网环境下构建做准备。
- 配置 Flutter 使用国内镜像源(
-
数据库与路径
- 移除未使用的
package:path/path.dart导入,database 层统一通过PathUtils.binFile处理路径。
- 移除未使用的
-
重连与认证逻辑
ClientCore:- 为 TCP 连接新增指数退避重连策略:10s、20s、40s、80s、160s,最多重试 5 次,并在连接成功后重置重试次数。
- 在连接错误、连接关闭和心跳超时(超过 60 分钟未收到 ping)时触发重连。
- 重连成功后自动发送
auth.machineCode认证消息(在已成功获取机器码和身份信息的前提下)。
-
持续挖矿(SustainMiner)
- 从
mining.windows.conf的[sustain]段读取配置,校验必填字段与矿工程序路径。 - 当没有租约任务时自动启动持续挖矿,有租约任务到来时暂停,租约结束后自动恢复持续挖矿。
- 新增持续挖矿进程监控:
- 监听矿工进程退出事件,如果在持续挖矿运行且未暂停的情况下进程意外退出,5 秒后自动重启持续挖矿。
- 从
-
状态与 UI 展示
ClientStatus:- 新增
sustainingMining状态,用于表示“持续挖矿中”,在界面上显示为蓝色圆点 + 文案「持续挖矿中」。
- 新增
ClientProvider:- 根据是否有租约任务 / 持续挖矿任务,区分显示:
mining:租约挖矿中。sustainingMining:持续挖矿中。
- 统一通过
_getMiningInfo()构造当前挖矿信息(支持租约挖矿和持续挖矿),供界面展示。
- 根据是否有租约任务 / 持续挖矿任务,区分显示:
MainScreen:- “挖矿信息”按钮在以下状态下可用:
ClientStatus.mining或ClientStatus.sustainingMining,并且存在miningInfo。 - 点击后进入同一套挖矿信息界面。
- “挖矿信息”按钮在以下状态下可用:
MiningInfoScreen:- 复用同一界面展示日志和当前任务信息。
- 当为持续挖矿时,不再显示“结束时间”和“剩余时间”区域,仅展示基本任务信息和日志。