$ npm install @tetherto/miningos-tpl-wrk-containerA template worker for managing mining containers (Antspace, Bitdeer, Microbt) in the MiningOS infrastructure. This worker provides container-level control including power management, cooling systems, and socket control.
The Container Worker extends the MiningOS Thing Worker framework to provide specialized functionality for managing mining containers. It handles:
The following is a fragment of MiningOS object model that contains the concrete classes representing Container miners workers (highlighted in blue), one generically representing any model of the brand, and four children specifically representing brands. The rounded nodes reprsent abstract classes and the square nodes represents a concrete classes:
---
title: Object Model of MiningOS
---
flowchart RL
bfx-wrk-base@{ shape: stadium, label: "*bfx-wrk-base*" }
tether-wrk-base@{ shape: stadium, label: "*tether-wrk-base*" }
tether-wrk-base--->bfx-wrk-base
miningos-tlp-wrk-thing@{ shape: stadium, label: "*miningos-tlp-wrk-thing*" }
miningos-tlp-wrk-thing--->tether-wrk-base
miningos-tpl-wrk-container@{ shape: stadium, label: "*miningos-tpl-wrk-container*" }
miningos-tpl-wrk-container--->miningos-tlp-wrk-thing
miningos-wrk-container-microbt["miningos-wrk-container-microbt"]
miningos-wrk-container-microbt---miningos-tpl-wrk-container
miningos-wrk-container-antspace["miningos-wrk-container-antspace"]
miningos-wrk-container-antspace---miningos-tpl-wrk-container
miningos-wrk-container-bitdeer["miningos-wrk-container-bitdeer"]
miningos-wrk-container-bitdeer---miningos-tpl-wrk-container
style miningos-tpl-wrk-container fill:#005,stroke-width:4px,color:white
style miningos-wrk-container-microbt fill:#005,stroke-width:4px,color:white
style miningos-wrk-container-antspace fill:#005,stroke-width:4px,color:white
style miningos-wrk-container-bitdeer fill:#005,stroke-width:4px,color:white
Accordign to UML notation, abstract classes have their names in Italic. 'Stadium shape' applied for abstract class nodes for better visualization.
Horizontal display was chosen over more conventional vertical one merely for purposes of better layout.
Check out miningos-tpl-wrk-thing for more information about parent and sibling classes.
miningos-tpl-wrk-thingconfig/base.thing.json){
"_idFile": "",
"collectSnapsItvMs": 60000, // Snapshot collection interval (ms)
"logRotateMaxLength": 10000, // Maximum log entries before rotation
"logKeepCount": 3 // Number of log files to retain
}
config/common.json){
"dir_log": "logs", // Log directory path
"debug": 0 // Debug mode (0=off, 1=on)
}
config/facs/miningos-net.config.json - Network configurationconfig/facs/net.config.json - General network settingsconfig/facs/store.config.json - Storage configurationasync resetAlarm ()The worker collects the following statistics:
power_kw): Current power usage in kilowattsambient_temp_c): Container temperature in Celsiushumidity_percent): Relative humidity percentagealarm_status): Boolean indicating alarm stateCollection intervals:
switchContainer(enabled: boolean)Enable or disable the entire container.
switchSocket(args: Array<[pduIndex: string, socketIndex: string, enabled: boolean]>)Control individual sockets. Accepts batch operations.
switchCoolingSystem(enabled: boolean)Control the container's cooling system.
getStats()Returns current container statistics including power, temperature, humidity, and alarm status.
getConfig()Returns the current container configuration.
getSnap()Returns a complete snapshot including both stats and configuration.