Files
mining-client/README.md
2025-12-01 15:52:58 +08:00

105 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 云算力平台卖方客户端
本程序为云算力平台卖方客户端用于将卖方身份与GPU主机绑定实现自动挖矿匹配功能。
## 功能特性
1. **身份绑定**将云算力平台上的卖方身份和GPU主机进行绑定
2. **GPU信息上报**自动获取并上报主机GPU详细参数GPU型号、显存容量等
3. **自动挖矿匹配**:自动匹配买方的挖矿需求,无需手动操作挖矿
## 系统要求
- Go 1.25.4 或更高版本
- Windows 或 Linux 操作系统
- 已配置好挖矿环境(显卡驱动、挖矿软件、执行权限等)
## 编译方法
在项目根目录下运行Windows / Linux 通用):
```bash
go build -o bin/client ./cmd
```
- Windows 下会生成 `bin/client.exe`
- Linux 下会生成 `bin/client`
## 使用方法
1. **身份文件(auth)**:确认 `bin` 目录下存在 `auth` 文件,该文件会在下载客户端时自动生成,请勿删除、修改、移动该文件
2. **运行客户端(需管理员/root 权限)**
- Windows: 以“管理员身份运行”命令行或终端,然后执行:
```bash
./client.exe
```
- Linux: 使用 root 或 sudo 启动:
```bash
sudo ./bin/client
```
3. 客户端将自动:
- 读取身份信息
- 进行权限自检(非 root / 非管理员会直接退出并给出提示)
- 获取主机 UUID作为机器码和 GPU 信息
- 连接到云算力平台服务器
- 进行 TCP 心跳保活和自动重连
- 自动检查远程版本并执行更新(需要配置远程更新服务)
- 等待并处理挖矿任务
## 重要注意事项
### 启动前准备
1. **挖矿环境配置**:确保客户端执行主机已配置好挖矿环境,包括:
- 显卡驱动已正确安装
- 挖矿软件已安装并配置
- 执行权限已设置
- 可以手动通过挖矿软件进行挖矿
### GPU 操作注意事项
#### 移除 GPU
- 如果要对本机GPU进行移除拔出GPU操作云算力平台会同步移除对应的GPU
- **重要**如果在相关GPU有租约且没有在平台申请故障处理的情况下直接移除GPU会导致产生罚没
- **建议**在有租约的情况下要移除故障GPU请第一时间前往平台申请故障处理在平台确认后再进行移除GPU的操作
#### 更换 GPU
- 如果要对本机GPU进行更换拔出后又新插入GPU操作云算力平台会重新读取GPU数据
- 如果更换型号相同,则会按原有配置上架
- 如果更换的型号不同,则需在更换后前往卖家中心手动调整上架配置
- **重要**如果在相关GPU有租约且没有在平台申请故障处理的情况下直接更换GPU可能会导致产生罚没
- **建议**在有租约的情况下要更换故障GPU请第一时间前往平台申请故障处理在平台确认后再进行更换GPU的操作
### 持续挖矿(可选)
- 在 `bin/mining.linux.conf` 或 `bin/mining.windows.conf` 中配置 `[sustain]` 段,可以在**没有租约时自动挖矿**。
- 当有租约任务下发时,客户端会自动停止持续挖矿,执行租约任务;租约结束后会自动恢复持续挖矿。
## 项目结构
```
cloud-client/
├── bin/ # 编译输出目录
│ ├── auth # 身份认证文件(需手动创建)
│ ├── mining.linux.conf # Linux 挖矿配置(含持续挖矿配置)
│ └── mining.windows.conf # Windows 挖矿配置(含持续挖矿配置)
├── cmd/ # 主程序目录
│ ├── main.go # 程序入口
│ ├── windows.bat # Windows 编译脚本
│ └── linux.sh # Linux 编译脚本
├── internal/ # 内部包
│ ├── client.go # 客户端主逻辑
│ ├── msg/ # 消息处理
│ ├── src/ # 系统相关实现
│ │ ├── linux/ # Linux 系统实现GPU、挖矿进程管理、权限检测等
│ │ └── windows/ # Windows 系统实现GPU、挖矿进程管理、权限检测等
│ ├── sustain/ # 持续挖矿管理
│ ├── updater/ # 自动更新模块
│ └── utils/ # 工具函数文件读写、UUID 等)
├── go.mod # Go 模块定义
└── README.md # 本文件
```