-
v1.28.0
StableAll checks were successfulCI / Rust clippy (push) Successful in 1m49sCI / Rust fmt (push) Successful in 1m14sCI / Rust test (push) Successful in 6m14sCI / UI (SvelteKit) (push) Successful in 1m18sCI / Security Audit (push) Successful in 1m22sdocs / build (push) Successful in 8m24sRelease / Docker Multi-Arch (push) Successful in 23m11sRelease / Binary aarch64-unknown-linux-gnu (push) Successful in 34m26sRelease / Binary x86_64-unknown-linux-gnu (push) Successful in 10m14sRelease / Linux .deb + .rpm (amd64) (push) Successful in 2m2sRelease / Linux .deb + .rpm (arm64) (push) Successful in 1m48sRelease / Linux AppImage (aarch64) (push) Successful in 26sRelease / Linux AppImage (x86_64) (push) Successful in 26sRelease / Cosign sign artifacts (push) Successful in 30sRelease / Forgejo Release (push) Successful in 37sreleased this
2026-09-11 08:59:51 +00:00 | 277 commits to main since this releasedvb-WarpTune: an auto-clock for AxeOS miners as a sidecar next to the pool.
It holds a temperature target by stepping frequency and core voltage along
a per-board ladder, with guardrails the firmware does not have, and it
takes what it needs from the pool: reject reasons per worker and the
electricity picture. The pool shows what the sidecar does with each
device. Nothing in the pool talks back to a miner.Added
- New workspace crate
warppool-tuneand binarydvb-warppool-tune
(apps/dvb-warppool-tune): the dvb-WarpTune regulator. Reads AxeOS
telemetry (GET /api/system/info, NerdOSGET /api/v2/settingsfor the
board's own option lists), decides on a ladder step every 30 s and, only
with--liveon the command line andlive = trueper miner, writes
it back withPATCH /api/system. Guardrails: temperature bands with
hysteresis and a failsafe one degree under the firmware's own line, VR
temperature, input voltage and current limits taken from the firmware,
a thermal power budget per board (thermal_r_c_per_w), a reason-aware
reject guard, hashrate-vs-expected, step memory for unstable steps, a
write circuit breaker, read-back verification of every write, and a
restore of the point the miner had at start on shutdown, reboot or any
trip. The voltage curve is anchored on the device's own operating point,
so a hand-tuned miner is never pushed above its proven voltage. Modes
eco,balanced,max(beyond-spec steps opt-in) andenergy.
Vendor tables for the BM1370 (Bitaxe Gamma) and the BitForge Nano;
NerdOS boards (NerdAxe, NerdQaxe, NerdOctaxe) bring their own ladders. - dvb-WarpTune journal: one JSONL line per decision, write, verification,
probe error, pool event and mode switch;dvb-warppool-tune journal
renders it as a table, follows it live, and summarises per miner
(temperature, power, hashrate, efficiency, proposals per hour, live
writes, an ambient-based estimate of the board's cooling resistance).
check-config,probe,ladderandexamplesubcommands. - Pool coupling for the sidecar: with
sidecar.pool_apiset, a miner's
share counters come from its/api/workersrow (the pool attributes
reject reasons, the firmware does not; ESP-Miner resets its counters on
reconnect). The row is found through the device's ownstratumUser,
masked wallets included;pool = falseor a per-minerpool_apifor
devices on another pool.[energy] enabled = truedrives miners in
energymode from/api/energy: the surplus mode on PV surplus, Eco at
or above the expensive rate, Balanced otherwise, with a minimum hold
between switches. [mining.tune]in the pool config: the daemon polls the sidecar's
read-onlyGET /snapshot(tune_poll_loop, same shape as the solar
provider).GET /api/tunereturns the pool's copy with its age;
/api/minerscarries atuneobject per device, joined by host,
resolved IP or device hostname. The Miners tab and the device page show
a WarpTune badge (mode, frequency, dry run / live / stale / control off)
with the last decision as tooltip, in all eight UI languages.- macOS:
scripts/setup-warptune.shinstalls the sidecar as a launchd
agent (dry run by default,--liveasks once), with--restart,
--stop(restores every live miner first),--status,--uninstall;
guide inscripts/warptune-setup.md.
Changed
- Umbrel: the app now maps a second port,
18335by default
(APP_DVB_WARPPOOL_API_PORT), to the pool API without the app login, so
a sidecar on the LAN can read/api/workersand/api/energy. It
serves the same anonymous GETs as the public pool; the UI port stays
behind the app proxy and admin endpoints still need a token.
dvb-WarpPool v1.28.0 — Downloads
Docker
git.warppool.org/dvb-projekt/dvb-warppool:v1.28.0(multi-arch amd64+arm64, ohne v-Präfix)Native packages
- Linux .deb: amd64 + arm64 →
apt install ./dvb-warppool_*.deb - Linux .rpm: amd64 + arm64 →
dnf install ./dvb-warppool-*.rpm - Linux AppImage: x86_64 + aarch64 portable
- Linux tarballs: x86_64 + aarch64 for manual installs
- macOS .dmg: added shortly after publish (built separately) — or build from source
- Windows .msi: paused since the forge migration (no Windows runner yet)
Signatures
SHA256SUMS+ cosign bundle (SHA256SUMS.bundle, project key)- SBOM (SPDX) for all dependencies
Verify (project public key
cosign.pubin the repo root):cosign verify-blob \ --key cosign.pub \ --bundle SHA256SUMS.bundle \ SHA256SUMS sha256sum --check SHA256SUMSFirst-time setup: run
dvb-warppool-setupfor the first-run wizard.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- New workspace crate