2026-01-29 10:46:11 +08:00
2026-01-23 16:11:20 +08:00
2026-01-23 16:11:20 +08:00
2026-01-29 10:45:20 +08:00
2026-01-22 15:14:27 +08:00
2026-01-22 18:19:42 +08:00
2026-01-22 15:14:27 +08:00
2026-01-22 15:14:27 +08:00
2026-01-29 10:46:11 +08:00
2026-01-22 18:19:42 +08:00
2026-01-22 15:14:27 +08:00
2026-01-23 16:11:20 +08:00

云算力平台客户端 - Windows 桌面应用

基于 Flutter 开发的 Windows 桌面客户端应用,实现与云算力平台的通信、挖矿管理等功能。

功能特性

1. 主界面信息显示

主界面实时显示以下信息:

  • 版本号:从 bin/version 文件读取
  • 身份信息:从 bin/auth 文件读取
  • GPU 信息:通过 nvidia-smi 命令自动检测(启动时获取一次)
    • 显示 GPU 索引、品牌、型号、显存大小
  • 硬盘身份码:通过 wmic diskdrive get serialnumber 命令获取
  • 当前状态:实时显示客户端连接状态
    • 🔴 离线:心跳异常,红色指示
    • 🟢 在线:心跳正常,绿色指示
    • 🟡 挖矿中:挖矿程序运行中,黄色指示

2. 版本更新功能

  • 自动检查远程版本(从配置的 update_url 获取)
  • 发现新版本时显示更新提示卡片
  • 支持一键下载并更新客户端
  • 更新完成后在下次启动时自动应用

3. 主要功能按钮

3.1 查看日志

  • 实时动态显示客户端日志
  • 支持自动滚动和手动滚动
  • 可刷新和清空日志
  • 日志文件位置:bin/logs/client.log

3.2 查看/修改配置

  • 表单式配置编辑:采用输入框形式,而非直接文本编辑
  • 每个配置项都有复选框,勾选后才能编辑
  • 按配置节分组显示:
    • 客户端配置server_url, update_url
    • LolMiner 配置
    • Rigel 配置
    • BzMiner 配置
    • 代理配置
    • 持续挖矿配置
  • 配置文件位置:bin/mining.windows.conf
  • 修改后需点击保存按钮保存更改

3.3 挖矿信息

  • 按钮状态:一直显示,但只有在挖矿中状态时才能点击
  • 显示当前挖矿任务的详细信息:
    • 币种、算法、矿池、矿池地址
    • 钱包地址、矿工号
    • 挖矿软件、进程ID
    • 任务结束时间、剩余时间
  • 实时日志显示
    • 显示挖矿软件的标准输出和错误输出
    • 支持自动滚动和手动滚动
    • 可清空日志
    • 日志格式与外部查看日志布局相似

3.4 重启

  • 点击后显示确认对话框
  • 重启过程中显示加载动画,禁用所有操作
  • 重启完成后显示成功/失败结果提示
  • 自动重新初始化所有服务

3.5 退出程序

  • 点击后显示确认对话框
  • 确认后安全退出应用程序

技术架构

核心模块

  • ClientCoreTCP 通信核心,处理与服务器的连接、心跳、消息收发
  • MiningManager:挖矿软件管理,支持 lolminer、rigel、bzminer
  • SustainMiner:持续挖矿管理,在无租约期间自动挖矿
  • SystemInfoService系统信息获取GPU、硬盘序列号等
  • ConfigService配置文件管理INI 格式)
  • UpdateService:版本检查和更新管理
  • DatabaseServiceSQLite 数据库,存储挖矿任务历史
  • LogService:日志文件管理

数据存储

  • 配置文件bin/mining.windows.confINI 格式)
  • 身份文件bin/auth
  • 版本文件bin/version
  • 数据库bin/mining_task.dbSQLite
  • 日志文件bin/logs/client.log

通信协议

  • 协议TCP Socket
  • 消息格式JSON每行一条消息
  • 心跳机制:服务器发送 ping客户端回复 pong
  • 身份认证:格式为 身份信息::硬盘身份码

配置文件说明

配置文件 bin/mining.windows.conf 采用 INI 格式,包含以下配置节:

[client]

  • server_url服务器地址RabbitMQ 通信目标)
  • update_url:更新服务器地址(用于版本检查和更新)

[lolminer] / [rigel] / [bzminer]

  • path:挖矿软件路径(使用双反斜杠 \\

[proxy]

  • proxy是否启用代理true/false

[sustain]

  • enabled:是否启用持续挖矿
  • algo:算法
  • coin:币种
  • miner:挖矿软件名
  • pool_url:矿池地址
  • wallet:钱包地址
  • worker_id:矿工号
  • pool_user:矿池用户名(可选)
  • wallet_mining:是否使用钱包挖矿

部署说明

开发环境

  1. 确保已安装 Flutter SDK 并启用 Windows 桌面支持
  2. windows 目录下运行:
    flutter pub get
    flutter run -d windows
    

发布版本

  1. 构建发布版本:

    flutter build windows --release
    
  2. 部署文件结构:

    cloud_client_gui.exe
    bin/
      ├── version          # 版本文件(必需)
      ├── auth             # 身份信息文件(必需)
      ├── mining.windows.conf  # 配置文件(必需)
      ├── logs/
      │   └── client.log   # 日志文件(自动创建)
      └── mining_task.db   # 数据库文件(自动创建)
    
  3. 重要bin 文件夹必须与 .exe 文件在同一目录下

路径说明

  • 开发模式:程序会自动检测并定位到 windows/bin 目录
  • 发布模式bin 文件夹应与可执行文件在同一目录
  • 所有文件路径都基于可执行文件所在目录自动计算

依赖项

主要依赖包:

  • provider:状态管理
  • sqflite_common_ffiSQLite 数据库Windows 桌面)
  • iniINI 文件解析
  • httpHTTP 请求(版本更新)
  • logging:日志系统
  • path:路径处理

注意事项

  1. 首次运行需要确保 bin 目录下存在 versionauth 文件
  2. GPU 信息只在程序启动时获取一次,避免频繁调用系统命令
  3. 配置文件修改后需要保存才能生效
  4. 重启功能会重新初始化所有服务,可能需要几秒钟时间
  5. 挖矿信息按钮在非挖矿状态下会显示为灰色且不可点击

开发说明

本项目是基于 Go 客户端功能完全重新实现的 Flutter Windows 桌面应用,实现了与 Go 版本相同的所有核心功能,包括:

  • TCP 通信和心跳机制
  • 挖矿软件管理
  • 持续挖矿支持
  • 系统信息获取
  • 配置管理
  • 版本更新
Description
No description provided
Readme 33 MiB
Languages
Dart 75.6%
C++ 12.8%
CMake 7%
Shell 4.1%
C 0.5%