ndenissov/minager
GitHub: ndenissov/minager
Minager 是一个基于 Go 和 Telegram Bot API 的 ASIC 矿机远程监控与自动化管理中间件网关。
Stars: 1 | Forks: 0
# Minager
[](https://github.com/ndenissov/minager)
[](https://pkg.go.dev/github.com/ndenissov/minager)
[](https://github.com/ndenissov/minager/blob/main/LICENSE)
[](https://github.com/ndenissov/minager/releases)
[](https://github.com/ndenissov/minager/stargazers)
Minager 是一个高性能软件套件,可通过
Telegram Bot API 对 ASIC 硬件进行远程监控、管理和自动化。
该系统并非作为一个简单的前端运行,而是作为 middleware 网关。它将未公开的
硬件接口转换为结构化格式,为硬件控制和关键的
自动报警提供可靠、安全的通道。
## 目录
- [系统功能](#system-capabilities)
- [架构与性能](#architecture--performance)
- [逆向工程与硬件集成](#reverse-engineering--hardware-integration)
- [用户界面](#user-interface)
- [安全与隐私](#security--privacy)
- [快速开始](#getting-started)
- [法律声明与合规](#legal-disclaimer--compliance)
- [许可与协作](#licensing--collaboration)
## 系统功能
* **双语界面 (I18n):** 系统完全支持英语和俄语。本地化设置
按用户会话动态解析。
* **原生 UI 集成:** 利用 Telegram 内联键盘构建多级配置菜单。操作员
可以在原生聊天界面内直接切换矿池、调整电源模式以及控制风扇算法。
* **异步报警:** 后台 worker 积极监控芯片状态、hash rates 和温度。
软件可以自动将有故障的硬件转换为睡眠模式,并立即通知操作员。
* **WebSocket 多路复用:** 包含自定义的 WebSocket 实现,利用二进制序列化(`gob` + `json`)
在本地硬件代理和中央服务器之间建立安全的通信通道。
## 架构与性能
软件架构专为高负载环境设计,优先考虑最小的内存占用和极高的
执行速度。
* **内存优化:** 字符串格式化、日志生成和文本 payload 渲染通过围绕
`strings.Builder` 并带有预分配缓冲容量的自定义包装器进行处理。这极大地最小化了内存分配开销
和垃圾回收压力。
* **并发:** 硬件轮询使用 Go 并发原语(`sync.WaitGroup`、
`sync.RWMutex` 和 channels)进行严格管理。这消除了在跨
多个网络设备同时进行异步查询时的竞态条件。
* **网络效率:** 网络操作通过 `fasthttp` 库处理,实现高吞吐量的请求和
响应处理。
* **数据库集成:** 利用 PostgreSQL 连接池来存储和快速检索缓存的报警
阈值和用户配置。
## 逆向工程与硬件集成
与特定 ASIC 硬件架构(如 Antminer 系列)的集成需要以下工程
工作:
1. **文档分析:** 对原始制造商规格说明书进行翻译和技术分析。
2. **固件逆向工程:** 分析硬件启动 pipeline、内部网络数据包结构以及
专有的 `.bmu` 固件文件。
3. **API Schema 重构:** 对未公开、历史上不稳定的 CGI 接口进行广泛的映射。开发了
强类型的 API 客户端(`pkg/antminer/cgi`),将原始、杂乱的设备输出转换为可预测的 JSON
结构,以便进行程序化评估。
## 用户界面
UI 旨在在原生 Telegram 环境内清晰紧凑地呈现密集的分析数据。
#### 自动通知
后台 worker 会在出现孤立的 hash rate 下降、过热事件或组合系统故障时立即触发警报。
## 安全与隐私 Minager 处理敏感的基础设施数据,包括私有 IP 地址、网络拓扑和矿池 凭据。安全控制措施包括: * **数据保护:** Telegram bot 对其消息严格应用 `ProtectContent` 标志。这会在 客户端禁用包含硬件配置的聊天的消息转发、文本复制和操作系统级别的屏幕截图。 * **身份验证:** 对内部 Web 服务器和 WebSocket endpoint 的访问受到限制。密码 在数据库中仅以安全的 `bcrypt` hash 存储。 * **加密传输:** 原生提供 TLS/SSL 支持,用于安全的 Webhook 隧道和代理与服务器之间的 通信。 ## 快速开始 后端基础设施由 PostgreSQL 数据库、Telegram bot 进程和 WebSocket 子系统组成。 ### 前置条件 * Go 1.25.0+ * PostgreSQL 12+ * OpenSSL(用于本地生成证书) * ngrok 账号(可选,用于本地开发期间的 Webhook 隧道) ### 环境配置 1. 克隆仓库: git clone https://github.com/ndenissov/minager.git cd minager 2. 生成自签名 SSL 证书(内部服务器和/或 Telegram Webhook 需要): openssl req -newkey rsa:2048 -nodes -keyout cert.key -x509 -days 365 -out cert.crt 3. 在项目根目录创建 `.env` 配置文件: TOKEN=your_telegram_bot_token NGROK_AUTHTOKEN=your_ngrok_token DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASSWORD=secret DB_NAME=minager DB_SSLMODE=disable 4. 配置数据库,创建目标数据库并应用 `user`、 `cgi` 和 `alert` 表所需的 schema 迁移。 ### 启动 项目可以通过长轮询(不建议用于生产环境)、标准 Webhook 或通过 `ngrok` 运行。 使用 ngrok 的示例(适用于缺乏静态 IP 的开发环境): ``` go build -o minager_bot ./cmd/minager_bot/... ./minager_bot -wh-ngrok -wh-address ":8080" ``` ## 法律声明与合规 本软件按“原样”分发,不提供任何明示或暗示的保证。对于因 使用本软件造成的硬件损坏、运营中断或经济损失,开发者不承担任何责任。 终端用户需自行确保其对本软件的操作符合所有适用的本地及 国际法律。这包括但不限于其司法管辖区内管辖加密货币挖矿、数字资产 流通、税收、海关和出口管制的法律。 此仓库代表了一个庞大的、具有商业可用性的代码库向公共领域的过渡。 鉴于其促进的硬件操作在法律上具有复杂性、受到严格监管且性质敏感,严格遵守 所适用的许可证是绝对的法律要求。 任何未经授权的商业利用、知识产权的盗用、版权声明的移除,或 对所适用许可条款的违规行为都是零容忍的。作者将积极监控未经授权的使用,并 将在法律允许的最大范围内寻求所有可用的法律救济。这包括但不限于 立即停止并终止令、寻求禁令救济,以及对侵权个人或企业实体积极地提出 财务损害赔偿要求。如果您只是一位普通的开发者或其他用户,并且出于善意使用本项目,我向您保证 您绝对没有什么可怕的。 ## 许可与协作 软件的使用和分发受仓库适用的特定许可条款管辖。**许可 条款如有更改,恕不另行通知**。在您使用时,发布在本仓库根目录 `LICENSE` 文件中的版本 决定了适用的法律条款。 如需进行 B2B 集成、获取独占的商业许可,或确认您预期的用例是否符合 当前的限制,请通过以下方式联系作者: * **电子邮件:** n.denissov@proton.me * 或者,在任何其他情况下,您可以在此仓库中创建与您请求相对应的 Issue。 ## 贡献 欢迎随时提出建议、pull request、bug 修复和 bug 报告。对本项目的任何贡献,都将 在项目文档的相应部分予以正式提及。
| Monitoring Dashboard | Configuration Menu | Alert System |
![]() Displays aggregate hash rate, PCB temperatures, voltage, and uptime. Sensitive data is securely blurred. |
![]() Interactive Inline Keyboard for switching mining pools, modifying chip frequency levels, and configuring fan PWM. |
![]() Menu for setting specific temperature limits and permissible hash rate deviation thresholds. |
View Detailed Diagnostics Dashboard (Click to expand)
Extended statistics output showing granular chip-level diagnostics, hardware errors, and performance metrics for individual hash boards.
## 安全与隐私 Minager 处理敏感的基础设施数据,包括私有 IP 地址、网络拓扑和矿池 凭据。安全控制措施包括: * **数据保护:** Telegram bot 对其消息严格应用 `ProtectContent` 标志。这会在 客户端禁用包含硬件配置的聊天的消息转发、文本复制和操作系统级别的屏幕截图。 * **身份验证:** 对内部 Web 服务器和 WebSocket endpoint 的访问受到限制。密码 在数据库中仅以安全的 `bcrypt` hash 存储。 * **加密传输:** 原生提供 TLS/SSL 支持,用于安全的 Webhook 隧道和代理与服务器之间的 通信。 ## 快速开始 后端基础设施由 PostgreSQL 数据库、Telegram bot 进程和 WebSocket 子系统组成。 ### 前置条件 * Go 1.25.0+ * PostgreSQL 12+ * OpenSSL(用于本地生成证书) * ngrok 账号(可选,用于本地开发期间的 Webhook 隧道) ### 环境配置 1. 克隆仓库: git clone https://github.com/ndenissov/minager.git cd minager 2. 生成自签名 SSL 证书(内部服务器和/或 Telegram Webhook 需要): openssl req -newkey rsa:2048 -nodes -keyout cert.key -x509 -days 365 -out cert.crt 3. 在项目根目录创建 `.env` 配置文件: TOKEN=your_telegram_bot_token NGROK_AUTHTOKEN=your_ngrok_token DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASSWORD=secret DB_NAME=minager DB_SSLMODE=disable 4. 配置数据库,创建目标数据库并应用 `user`、 `cgi` 和 `alert` 表所需的 schema 迁移。 ### 启动 项目可以通过长轮询(不建议用于生产环境)、标准 Webhook 或通过 `ngrok` 运行。 使用 ngrok 的示例(适用于缺乏静态 IP 的开发环境): ``` go build -o minager_bot ./cmd/minager_bot/... ./minager_bot -wh-ngrok -wh-address ":8080" ``` ## 法律声明与合规 本软件按“原样”分发,不提供任何明示或暗示的保证。对于因 使用本软件造成的硬件损坏、运营中断或经济损失,开发者不承担任何责任。 终端用户需自行确保其对本软件的操作符合所有适用的本地及 国际法律。这包括但不限于其司法管辖区内管辖加密货币挖矿、数字资产 流通、税收、海关和出口管制的法律。 此仓库代表了一个庞大的、具有商业可用性的代码库向公共领域的过渡。 鉴于其促进的硬件操作在法律上具有复杂性、受到严格监管且性质敏感,严格遵守 所适用的许可证是绝对的法律要求。 任何未经授权的商业利用、知识产权的盗用、版权声明的移除,或 对所适用许可条款的违规行为都是零容忍的。作者将积极监控未经授权的使用,并 将在法律允许的最大范围内寻求所有可用的法律救济。这包括但不限于 立即停止并终止令、寻求禁令救济,以及对侵权个人或企业实体积极地提出 财务损害赔偿要求。如果您只是一位普通的开发者或其他用户,并且出于善意使用本项目,我向您保证 您绝对没有什么可怕的。 ## 许可与协作 软件的使用和分发受仓库适用的特定许可条款管辖。**许可 条款如有更改,恕不另行通知**。在您使用时,发布在本仓库根目录 `LICENSE` 文件中的版本 决定了适用的法律条款。 如需进行 B2B 集成、获取独占的商业许可,或确认您预期的用例是否符合 当前的限制,请通过以下方式联系作者: * **电子邮件:** n.denissov@proton.me * 或者,在任何其他情况下,您可以在此仓库中创建与您请求相对应的 Issue。 ## 贡献 欢迎随时提出建议、pull request、bug 修复和 bug 报告。对本项目的任何贡献,都将 在项目文档的相应部分予以正式提及。
标签:ASIC监控, EVTX分析, Go语言, Telegram机器人, 挖矿管理, 日志审计, 测试用例, 物联网中间件, 程序破解, 自动化运维


