-
v1.41.0
StableAll checks were successfulCI / Rust clippy (push) Successful in 2m28sCI / Rust fmt (push) Successful in 1m34sCI / Rust test (push) Successful in 7m53sCI / UI (SvelteKit) (push) Successful in 1m41sCI / Shell scripts (push) Successful in 26sCI / Security Audit (push) Successful in 1m33sCI / WarpTune Desktop (Windows x86_64) (push) Successful in 8m29sdocs / build (push) Successful in 43sRelease / Docker Multi-Arch (push) Successful in 27m54sRelease / Binary aarch64-unknown-linux-gnu (push) Successful in 18m3sRelease / Binary x86_64-unknown-linux-gnu (push) Successful in 13m39sRelease / WarpTune Desktop (Windows x86_64) (push) Successful in 8m32sRelease / Linux .deb + .rpm (amd64) (push) Successful in 5m30sRelease / Linux .deb + .rpm (arm64) (push) Successful in 5m19sRelease / Linux AppImage (aarch64) (push) Successful in 36sRelease / Linux AppImage (x86_64) (push) Successful in 36sRelease / Cosign sign artifacts (push) Successful in 35sRelease / Forgejo Release (push) Successful in 47sreleased this
2026-10-17 07:21:55 +00:00 | 2 commits to main since this releaseAdded
- WarpTune: the calibration no longer needs a pool. The share
verdict that judges every voltage comes from the miner's own counters
(sharesAccepted×poolDifficulty, each share at the difficulty in
force, reject reasons where the firmware gives them) on whatever pool
the miner mines; a coupled dvb-WarpPool's worker row stays preferred.
The regulator weighed those counters already; only the calibration's
availability was tied tosidecar.pool_apiandpool = true. The
calibration dialog says where the verdict comes from (pool row, the
miner's counters, the miner's counters without reject reasons — then
every reject counts and the reject window is 150 shares instead of
40). A firmware withoutpoolDifficultygetsno_share_diffon the
card and a refused start. All limits unchanged. - WarpTune: the hand-point comparison without a pool. Where no
worker row matches, the comparison takes the miner's own counters from
the journal — shares and shares × difficulty per calendar minute from
consecutive samples, a counter reset and a gap over 15 minutes
skipped — through the same yield table as the pool's minute buckets;
the card names the source. - WarpTune: the savings in kWh and money per year. Under the
comparison line each mode's watts become kWh per year at 24/7 and,
with an electricity price, money — in words, not signs ("Eco saves
48 kWh/year ≈ 13,20 €", "Max costs 9 kWh/year ≈ 2,47 € more"; an
estimate keeps its "≈"): the pool's single rate and currency
(/api/energynow carriesdefault_rate_per_kwh), or WarpTune
Desktop's new electricity-price form ([energy] price_per_kwh+
currency, a display setting that asks for no apply; the browser
region only suggests the currency). Always the grid price, no default
and no guess from the location; without a price the kWh show with a
hint. Formatted in the reader's locale with the setting's currency. - WarpTune Desktop: the launcher's dialogs speak the system
language — the login-item and service-update questions, the
port-busy and start-failure notes, in the page's eight languages
(DVB_WARPTUNE_LANG, macOS AppleLocale, Windows UI language, LANG).
Changed
- Pool:
[mining.electricity] default_rate_eur_kwhis
default_rate_per_kwh— the currency is a setting, the key no longer
says EUR. The old key still loads. Note for a downgrade: once the
admin saves the rate, the file carries the new key only, and a daemon
older than 1.41 reads no tariff (0) from it until the key is renamed
back by hand. - WarpTune Desktop: the pool texts say what a pool adds (reject reasons,
the wallet badge) instead of "no calibration without a pool". - UI (de): one word per thing on the WarpTune cards — "Arbeitsmodus",
"Kurzprüfung", "feste Herstellerstufen".
Fixed
- WarpTune: a coupled pool without a worker row no longer blocks the
share verdict. When the pool is coupled for tariff and badge but the
miner mines elsewhere (or the row went idle, or the feed is stale),
the counters were nulled and the card said the firmware reports no
share difficulty; the firmware's own counters stand in now, the pool
row stays preferred, and a change of source starts the share windows
over (never mixed inside one). - WarpTune: a start is refused when the shares come too slowly. At a
high fixed difficulty on a foreign pool the confirmation window's
shares would take longer than the stage's timeout (difficulty 65536
at 1.2 TH/s: 26 h against 4 h); the miner sat pinned for four hours and
the stage ended in a timeout. The refusal names the numbers. - WarpTune: a firmware whose reject-reason list is still empty (no
reject yet: WarpAxe, ESP-Miner ≥ 2.9, Forge-OS) counted as one without
reasons — the 150-share reject window and "the miner's counters
without reject reasons" on the card; an empty list is a list now. - WarpTune: the hand-point comparison without a pool credited a point's
first minute to the point before it when the change fell inside a
calendar minute (LAN test: the hand point showed 6 shares it never
earned, the point the device sat on lost them); a window's first bucket
now starts with the window. - WarpTune: the stall guard waits for the vote's ten-minute gate. It
ended a calibration stage asstalledwhen two windows of shares were
in before the regulator's time gate on the voltage had opened — a
miner on a low fixed difficulty would have hit it (found by the new
end-to-end replay on the firmware's counters). - WarpTune Desktop: a section the page added to a file that had none
([energy]for the price) landed above the file's header comment; the
header now stays on top. - WarpTune Desktop: on a phone, upright or sideways, the page header no
longer sticks: three rows of it covered the page title after the
first scroll. Desktops keep the sticky header. - WarpTune: the hand-point comparison without a pool weighs each
interval's shares at the earlier sample's difficulty, as the regulator
does; a heartbeat over 7.5 minutes no longer leaves every sample pair
out (two heartbeats count as one stay); a CRLF file keeps its header
comment split as an LF file does. - WarpTune Desktop (macOS): the launcher's dialogs answer with a token,
not with the button's label — without a UTF-8 localeosascript
printed a non-ASCII label as?and "yes" read as "not now"; Linux's
zenity question no longer interprets markup in the service path. - Pool devices page: a visitor without a tariff reads that the operator
set none, not "enter your electricity price"; the price form on the
Desktop checks a typed currency whatever the price, shows the rate in
the reader's number format and takes four-digit tariffs.
dvb-WarpPool v1.41.0 — Downloads
Docker
git.warppool.org/dvb-projekt/dvb-warppool:v1.41.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
- WarpTune only:
dvb-warppool-tune-<tag>-<target>.tar.gz(Linux x86_64 + aarch64; macOS added with the .dmg) for running the tuner next to a pool on Umbrel or Docker — see the README inside - macOS .dmg: added shortly after publish (built separately) — or build from source
- Windows .msi (the pool): paused since the forge migration (no Windows runner yet)
WarpTune Desktop (the regulator with its own page, no pool needed)
- macOS:
WarpTune-Desktop-<tag>-{aarch64,x86_64}.dmg— added shortly after publish, with the .dmg above - Linux:
dvb-warptune_*.deb(amd64 + arm64) orWarpTune-Desktop-<tag>-{x86_64,aarch64}.AppImage - Windows:
WarpTune-Desktop-<tag>-x86_64-setup.exe(per-user installer, no admin) or the portable…-x86_64-windows.zip; runs on Windows-on-ARM through emulation - Not signed with a paid certificate: macOS Gatekeeper and Windows SmartScreen ask once — see the "open anyway" guide in
scripts/warptune-setup.md; verify the download withSHA256SUMS+ cosign below (the macOS.dmglines are added when those assets are, with a re-signedSHA256SUMS)
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)
1 download
-
Source code (TAR.GZ)
1 download
- WarpTune: the calibration no longer needs a pool. The share