矿箱、模板与布局目前是 beta 功能,只能通过 Nonce MCP 使用,相关接口不会出现在 API Reference 中。
概览
矿场用三类对象描述现场布置:
Nonce 根据矿机的 IP 计算它所在的机位,因此矿场需要给矿机分配固定 IP。矿机 IP 变化后,机位也会随之变化。
矿箱
矿箱有自己的id。网段 subnets 是矿箱的属性:一个或多个 /16 到 /24 的 IPv4 网段,网段内的矿机属于这个矿箱。
每个有矿机、但还没有矿箱覆盖的 /24 网段,会在下一次读取矿箱时自动生成一个未命名矿箱。所以矿箱始终覆盖矿场内的全部 IPv4 矿机,初始化时只需给已有矿箱命名并配置。
要查询某个矿箱内的矿机,用该矿箱的网段作为
ip_ranges 搜索矿机。
修改网段
一个集装箱跨多个 /24 网段时,把其中一个矿箱的网段改为完整范围。模板
模板规定矿箱内的机架数量、每个机架的行数和列数,以及矿机如何对应机位。机位分配方式
矿箱只有一个 /24 网段时,
start_offset 就是第一台矿机 IP 的最后一段。例如 start_offset 为 11 时,x.x.x.11 的矿机在 1 号机位。
系统模板与矿场模板
用
ListRackGroupTemplates 查看矿场可用的模板。修改矿场模板后,所有使用该模板的矿箱随之变化;删除矿场模板后,这些矿箱变为没有模板。
布局
布局描述矿箱在矿场中的位置,每次整体保存。- 排:从矿场前方排到后方。
- 位置:沿每一排排列。一个位置可以为空,也可以从下往上叠放一到两个矿箱。
- 通道:每排之后可以是冷通道(
cold)、热通道(hot),或者没有通道。 - 一个矿箱最多占一个位置。
rows 为 null。已保存的布局可能引用之后被删除的矿箱,例如修改网段时被合并的矿箱,读取时跳过即可。
并发修改
用UpdateFarmLayout 保存时,把 GetFarmLayout 读到的 updated_at 作为 expected_updated_at 传入;从未保存过布局时传 null。如果期间有其他人保存过布局,请求会返回 409。此时重新读取布局,重新应用修改后再保存。
旧机架
矿箱取代了原来的机架(rack)模型。
没有逐台写入矿机机位的接口。机位由 IP、矿箱模板和
start_offset 共同决定。
权限
两种权限都按目标矿场检查。这些写入只改变矿场配置,不会向矿机下发命令。