- Introduce ChainManipulatorEngine using fast incremental hashing path -
Throttle mining speed per solved block using sleeps after nonce batches
- Add CLI/env options to control base delay, batch size, throttle cap,
and resume state - Wire engine selection and parameters through
miner-service and miner-cli - Add debug logs for throttle state at job
start and on block found - Add new Grafana panel showing robust
difficulty median per chain for visibility
Improve mining metrics with chunked progress updates and dashboards
- Emit periodic per-thread progress updates by chunking search ranges,
enabling fresher and more accurate job/global hash rates. - Smooth
per-thread hash rates with EMA; derive per-job and global rates from
thread aggregates. - Remove job/thread rate series on
completion/cancellation to avoid scrape-timing zero artifacts. - Add
service-level metrics: `miner_active_jobs` gauge and
`miner_mine_requests_total` counter with result labels. - Introduce
CLI/env knob `--progress-chunk-ms` to control progress update frequency
(default 2000ms). - Update Grafana dashboards for trend-friendly
queries, cleaned labels, 24h/1h peak views, and job-level filtering. -
Add detailed documentation summarizing metrics improvements, usage, and
operational guidance.
Convert repository into Cargo workspace with modular crates
- Split code into workspace members: miner-cli, miner-service, pow-core,
engine-cpu, engine-gpu-cuda, engine-gpu-opencl, metrics - Moved QPoW
math logic into local pow-core crate with compatibility API and
incremental helpers - Defined MinerEngine trait and baseline CPU engine
in engine-cpu crate - Rewrote service layer in miner-service: job
management, HTTP API, engine orchestration - Added CLI binary crate
miner-cli with flags: --port, --num-cores, --metrics-port, --engine -
Implemented runtime toggle for Prometheus metrics exporter enabled only
when --metrics-port provided - Deprecated root src/lib.rs and
src/main.rs with notices pointing to new CLI/workspace entrypoints