Appearance
架构设计
1. 文档目标
定义 blsflow 当前阶段的整体架构、模块边界、服务分工、交互关系、状态归属与禁止事项。 本文件用于判断“任务是否突破既定架构”。
当前文档不进入:
- 数据库表设计
- 接口字段设计
- 代码实现方案
2. 系统目标
blsflow 当前阶段聚焦以下系统目标:
- 支持 CPU 矿机统一接入与统一管理
- 提供手动控制与智能调度并存的运行模式
- 基于产量、币价、功耗、电价形成实时利润驱动的自动调度能力
- 在关键依赖异常时优先保守,冻结整个调度域
- 提供围绕机器的最小可用维修留痕体系
3. 逻辑模块骨架
系统在逻辑上保留以下 6 个一级模块:
- 平台接入与控制台模块
- 设备与 Agent 管理模块
- 挖矿配置与币种配置模块
- 收益数据与监控模块
- 调度与执行编排模块
- 维修记录模块
3.1 模块主依赖主链
平台控制台 -> 调度模块 -> 设备与 Agent 模块 -> 矿机设备与 Agent 模块 -> 收益与监控模块 -> 调度模块挖矿配置与币种配置模块 -> 调度模块 / 设备与 Agent 模块平台控制台 -> 维修记录模块
4. 物理服务划分
一期物理上先收敛为 4 个核心云端服务 + 1 个矿机端 Agent:
- 平台门户服务
- 设备控制服务
- 调度核心服务
- 数据与配置服务
- 矿机 Agent
4.1 一级模块到服务映射
- 平台接入与控制台模块 -> 平台门户服务
- 设备与 Agent 管理模块 -> 设备控制服务
- 挖矿配置与币种配置模块 -> 数据与配置服务
- 收益数据与监控模块 -> 数据与配置服务
- 调度与执行编排模块 -> 调度核心服务
- 维修记录模块 -> 数据与配置服务
- 矿机侧执行能力 -> 矿机 Agent
5. 服务职责与边界
5.1 平台门户服务
职责
- 提供统一 Web 控制台入口
- 承接登录、页面展示、用户操作提交
- 聚合设备、调度、收益、维修等查询能力
- 向后端各服务转发用户操作
边界约束
- 不承载智能调度核心逻辑
- 不直接维护设备执行状态
- 不直接与矿机 Agent 通信
5.2 设备控制服务
职责
- 管理矿机接入、在线状态与 Agent 通信
- 接收并执行远程控制命令
- 协调批量控制任务
- 维护机器当前运行状态与单机能力基线
- 对外提供设备事实状态与命令执行能力
边界约束
- 负责“能否执行、如何执行、执行结果如何”
- 不负责判断“为什么要切币”
- 不负责收益计算与调度策略
5.3 调度核心服务
职责
- 管理智能调度范围
- 基于收益数据生成调度决策
- 维护调度任务状态、冻结状态与恢复状态
- 调用设备控制服务完成调度动作执行
- 产出调度结果与通知事件
边界约束
- 负责“该不该调度、调度到哪里、何时冻结”
- 不直接管理矿机连接
- 不直接维护币种配置
5.4 数据与配置服务
职责
- 管理币种、钱包、矿池、启动参数等配置
- 采集矿池产量、币价、BMC 功耗、电价
- 计算利润与监控异常状态
- 管理维修日志留痕
- 向门户与调度服务提供统一查询能力
边界约束
- 负责事实数据、配置数据和状态聚合结果
- 不直接执行矿机控制动作
- 不负责最终调度编排
5.5 矿机 Agent
职责
- 上报主机状态
- 接收平台命令
- 执行切币、启停、升级、配置更新
- 回传执行结果
边界约束
- 只负责本机执行与上报
- 不承载平台级业务决策
6. 核心交互方式
6.1 同步交互
适合立即返回结果的操作:
- 门户查询设备状态、收益、配置
- 门户提交手动操作
- 调度服务查询候选币种和收益快照
- 设备控制服务查询机器最新控制状态
6.2 异步交互
适合命令投递、状态回传与事件通知:
- 调度服务下发批量切币任务
- 设备控制服务向 Agent 投递命令
- Agent 回传执行结果
- 数据异常触发冻结事件
- 调度结果通知门户或告警中心
6.3 定时任务交互
适合周期采集与周期调度:
- 周期采集矿池产量
- 周期采集币价
- 周期获取 BMC 功耗
- 周期执行调度判断
7. 核心状态归属
7.1 设备状态
包括:
- 在线 / 离线
- 命令执行中 / 成功 / 失败
归属服务:设备控制服务
7.2 机器运行上下文
包括:
- 当前运行币种
- 当前控制上下文
归属原则:
- 主事实归
设备控制服务 - 聚合展示可同步给
数据与配置服务
7.3 调度状态
包括:
- 智能调度启用 / 停用
- 冻结 / 恢复
- 冻结原因
归属服务:调度核心服务
7.4 收益与监控状态
包括:
- 产量
- 价格
- 功耗
- 电价
- 净利润
- 异常判断
归属服务:数据与配置服务
8. 核心业务闭环
8.1 调度闭环
收益数据输入 -> 利润计算 -> 调度决策 -> Agent 执行 -> 机器状态回传
8.2 异常闭环
数据源异常 / Agent 异常 -> 监控判断 -> 调度冻结 -> 通知用户 -> 用户手动恢复
8.3 冻结语义
冻结指:停止智能调度任务,不改变机器当前运行币种,不停机。 恢复由用户手动发起,平台不自动恢复。
9. 可扩展点
- 可继续定义跨服务接口边界
- 可继续细化关键状态流转
- 可继续细化异常处理闭环
- 可在逻辑模块不变前提下,后续再拆更多物理服务
10. 禁止事项
- 不允许在门户服务承载调度核心逻辑
- 不允许设备控制服务维护调度策略
- 不允许调度核心服务直接与 Agent 建立耦合通信
- 不允许多服务重复持有核心主状态
- 不允许未经过决策记录就提前拆出过多微服务
- 不允许在当前阶段直接扩展为数据库表结构设计或代码实现文档
11. 当前阶段推进建议
若进入开发或进一步设计,建议推进顺序:
- 设备与 Agent 管理模块
- 挖矿配置与币种配置模块
- 收益数据与监控模块
- 调度与执行编排模块
- 平台接入与控制台模块
- 维修记录模块