• v1.33.0 a4830f5381

    v1.33.0
    All checks were successful
    CI / Rust clippy (push) Successful in 1m59s
    CI / Rust fmt (push) Successful in 1m16s
    CI / Rust test (push) Successful in 6m22s
    CI / UI (SvelteKit) (push) Successful in 1m19s
    CI / Security Audit (push) Successful in 1m19s
    docs / build (push) Successful in 35s
    Release / Docker Multi-Arch (push) Successful in 23m13s
    Release / Binary aarch64-unknown-linux-gnu (push) Successful in 11m47s
    Release / Binary x86_64-unknown-linux-gnu (push) Successful in 10m31s
    Release / Linux .deb + .rpm (amd64) (push) Successful in 2m3s
    Release / Linux .deb + .rpm (arm64) (push) Successful in 1m51s
    Release / Linux AppImage (aarch64) (push) Successful in 26s
    Release / Linux AppImage (x86_64) (push) Successful in 27s
    Release / Cosign sign artifacts (push) Successful in 25s
    Release / Forgejo Release (push) Successful in 38s
    Stable

    dvb-projekt released this 2026-09-24 05:46:46 +00:00 | 219 commits to main since this release

    Added

    • dvb-WarpTune energy mode: surplus_enter_polls (readings with surplus
      before the surplus mode is taken, default 1) next to the existing
      surplus_exit_polls, both now per miner overridable. An Avalon Q on
      the defaults would have spent half of its Super minutes on the grid on
      a cloudy day (simulated on 2026-09-21/22); three polls in and two out
      keep it on the real surplus.
    • dvb-WarpTune: a step never seen hashing in full is judged (ten minutes,
      hashrate ≥ 95 %) before the next one is taken; the stock point, steps
      with a good voltage in the trial memory and steps judged this session
      are known and climb on the dwell as before. The first ascent on a new
      board takes ten minutes per step instead of ninety seconds (a NerdAxe
      Gaia reached 440 MHz in ten minutes and lost its core voltage there).
    • dvb-WarpTune: power collapse guard, the emergency stop that works inside
      the settle and judge windows. Every decision tick — before the settle
      gate, not after it — the regulator holds the draw against what the
      current point should pull (what it predicted for its own write, else the
      previous point's reading scaled by f·V²). Under 30 % of that, and only
      when the expectation itself is above 5 W, it steps back urgently to the
      last point that demonstrably ran and marks the collapsed step unstable.
      The NerdAxe Gaia of 2026-09-22 is the case: 30 s after 420→440 MHz the
      board fell from ~36 W to 4.99 W with shutdown: false, no fault flag and
      its unchanged nominal hashrate in the API — power was the only honest
      reading — and the regulator stood in settling 45s, judged after 600s
      for six minutes until the operator wrote the old point by hand. The
      Avalon Q is covered by the same path: its work modes run through this
      regulator, and it reports neither a VR output voltage nor a trustworthy
      momentary hashrate, so the dead-chip guard alone is half blind there —
      but because a mode switch re-initialises its hash board, the Q gives the
      board five minutes (power_collapse_hold_s) before a low draw counts,
      where the Bitaxes act on the first reading.
    • dvb-WarpTune: dead-chip guard. When the VR output reads 0 mV against a
      set point, or the momentary hashrate is 0, for three decisions in a row
      on a settled point, the step is marked unstable, the stock point is
      written and the board is rebooted (POST /api/system/restart, journal
      restart). A NerdAxe Gaia at 440 MHz / 970 mV had dropped its core
      voltage and sat at 5 W with no fault flag while the ten-minute judge
      waited (2026-09-22).
    • NerdAxe Gaia (BM1373, one chip, 6860 small cores, NerdOS) as a miner
      vendor: registration, LAN discovery by hostname, dashboard label and
      docs. The AxeOS probe now takes the board name from the firmware's
      deviceModel (NerdOS), so a board registered under a sibling label (a
      Gaia on a former Gamma address) shows up as what it is. dvb-WarpTune
      regulates it from the device's own option list (300–440 MHz, 900–1040
      mV), no vendor table needed.
    • dvb-WarpTune: eco_cap_mhz per miner — Eco mode's own ladder top. The
      miner steps down to it in Eco and never above it; the other modes ignore
      it. Until now Eco only left steps whose efficiency measured worse, which
      from a factory point never leads down.
    • dvb-WarpTune: voltage trial (voltage_trial, voltage_min_mv,
      voltage_max_mv per miner). At the frequency it holds the regulator
      writes the core voltage 10 mV lower once the point is judged healthy, and
      10 mV higher when a step turns unstable before it gives the frequency
      up, inside the configured window. Good voltages per frequency are
      journaled (kind = "trial") and read back at start; a failed voltage is
      the floor for that frequency for an hour, doubling per failure. Every
      trial is an ordinary verified write under the hourly breaker.
    • dvb-WarpTune: the fan and the power budget. While an automatic fan runs
      below 90 % the thermal budget is left to the fan and only the power cap
      limits a step up; the ten-minute judge decides on the new step. The
      fixed-fan thermal rule kept an Octaxe at 650 MHz through a whole
      afternoon of surplus with its fan at 61 %. Manual fans and fans at 90 %
      or above keep the old rule; the temperature guards are unchanged.

    Fixed

    • dvb-WarpTune energy mode: the surplus margin (surplus_min_excess_w)
      is an entry condition only. Once a miner runs its surplus mode its
      extra draw sits in the consumption the excess is computed from, so
      checking the margin again on the way out made a live Avalon Q leave
      Super as soon as it was in it (1244 W of surplus minus its own 850 W
      reads "below the 900 W margin"). In the surplus mode the pool's own
      flag decides whether to stay.
    • dvb-WarpTune: the urgent hashrate step-down (reading under 90 % of
      expected) now takes the pool's share counter on the settled point as a
      second vote, as the voltage verdicts already did, and the share window
      starts after the settle time. The Avalon Q judges a mode 900 s after
      its settle time, not after the switch, so the MM's 15-minute window no
      longer contains the hash-board re-init. Found with the WarpAxe
      simulator: a healthy Super mode read 86 % at the judge and cascaded
      Super → Standard → Eco without a fault.
    • dvb-WarpTune kept its regulator state per host address, not per device.
      The journal's unstable steps and voltage trials were replayed at start
      for whatever answered on that IP, so a replaced board inherited limits
      measured on its predecessor's silicon. A NerdAxe Gaia that took over a
      Gamma's address on 2026-09-22 carried the Gamma's 640 MHz / 1140 mV
      trial entry — a point outside the Gaia's 300–440 MHz, 900–1040 mV
      window. The board now identifies itself (macAddr, the Avalon MM's
      DNA, else a model fingerprint) and the identity is journaled with
      each start; a different one on a known address writes a
      device_changed line, and everything the journal remembers for that
      address before it is ignored from then on. Only identities of the same
      kind are compared, so a reply that drops the MAC is a telemetry gap,
      not a swap. A swap noticed while
      regulating stops that miner's loop instead of writing a ladder built
      for the previous board, and leaves the point where it is.
    • Hashrate accounting after a VarDiff retarget (Stratum V1 and Sv2). A share
      was booked at the worker's difficulty at the moment it arrived, but a V1
      miner keeps the old difficulty until the next job, and Sv2 shares in
      flight met the old target: after each retarget those shares counted at
      the new, up to fourfold difficulty. A six-minute link outage on
      2026-09-22 (idle decay, reconnect burst, retargets) drew a 65 TH/s peak
      into a 17 TH/s pool. V1 now books a share at the difficulty in force when
      its job went out; Sv2 books a grace-window share at the target it met.
      Acceptance is unchanged.
    • dvb-WarpTune voltage trial: the firmware's hashrate reading drifts by
      ±5 % on a steady point (NerdOS), which produced false "short of good"
      verdicts and pushed the voltage back up. The accepted-share counter is
      now the second vote (share difficulty from the pool row or the firmware's
      poolDifficulty): good when either says ≥ 95 %, short of good only when
      both do. A frequency that two upward trials in a row did not improve is
      marked unstable and left on the third failure instead of trialled up to
      the top of the window. An unstable step is skipped on the way up when
      the one above it is usable (the budget judges the jump), and a step down
      lands below it. Each share counts at the difficulty it was found at (VarDiff
      moves mid-window), the vote looks up to 30 minutes back on one point,
      and a short reading waits while fewer than 40 shares are in. A verdict
      also waits until the reading has settled.
    • dvb-WarpTune energy mode: surplus_exit_polls counted telemetry ticks
      (every 5 s) instead of pool feed readings (every poll_secs), so ten
      "polls" passed in fifty seconds and one cloud ended every surplus
      window. Only a new feed reading counts now; a stale feed still falls
      back to Balanced after the hold.
    • dvb-WarpTune energy mode: while the pool's surplus flag is on but the
      surplus is below a miner's surplus_min_excess_w, the governor now holds
      Eco. It fell through to the tariff rule, read the pool's 0 EUR/kWh surplus
      rate as a cheap tariff and picked Balanced, which on an Avalon Q opens the
      ladder up to Super on 200 W of surplus (seen on the dry run 2026-09-20).

    dvb-WarpPool v1.33.0 — Downloads

    Docker

    git.warppool.org/dvb-projekt/dvb-warppool:v1.33.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.pub in the repo root):

    cosign verify-blob \
      --key cosign.pub \
      --bundle SHA256SUMS.bundle \
      SHA256SUMS
    sha256sum --check SHA256SUMS
    

    First-time setup: run dvb-warppool-setup for the first-run wizard.

    Downloads