-
v1.17.0
StableAll checks were successfulCI / Rust clippy (push) Successful in 1m39sCI / Rust fmt (push) Successful in 1m3sCI / Rust test (push) Successful in 4m34sCI / UI (SvelteKit) (push) Successful in 1m4sCI / Security Audit (push) Successful in 1m13sdocs / build (push) Successful in 24sRelease / Docker Multi-Arch (push) Successful in 18m58sRelease / Binary aarch64-unknown-linux-gnu (push) Successful in 10m20sRelease / Binary x86_64-unknown-linux-gnu (push) Successful in 9m17sRelease / Linux .deb + .rpm (amd64) (push) Successful in 10m10sRelease / Linux .deb + .rpm (arm64) (push) Successful in 11m1sRelease / Linux AppImage (aarch64) (push) Successful in 10m7sRelease / Linux AppImage (x86_64) (push) Successful in 9m8sRelease / Cosign sign artifacts (push) Successful in 17sRelease / Forgejo Release (push) Successful in 28sreleased this
2026-07-12 23:52:40 +00:00 | 73 commits to main since this releasePer-worker payout mode — WarpPool can now run as a public, non-custodial,
0%-fee solo pool where every miner mines to their own address. Fully
backward-compatible:singlemode is the default and byte-for-byte unchanged.
Rust suite grows to 1140 + 4 ignored (new real-Core regtest consensus E2E).Added
- Per-worker coinbase (
[mining] payout_mode = "per_worker"). Each miner
supplies its own BTC address as the Stratum username; the coinbase is built
per connection (V1) / per channel (Sv2) to pay that address the full block
reward — one output, no pool fee. An invalid or wrong-network login address
is rejected (no fallback to an operator address). The pool holds no funds.
Config is fail-closed:per_workerwith any fee/donation refuses to start. - Public per-wallet dashboard at
/users/<address>— a ckpool-compatible
JSON endpoint (firmware / ckstats parse it) plus a SvelteKit page: network
panel, five hashrate windows, best-ever share, honest estimated-time-to-block,
hashrate chart, and a per-rig table with detected mining software. Wallet rows
on/walletslink straight to it. - Wallet ownership verification (BIP-137) — a miner proves control of an
address by signing a pool-issued one-shot challenge (no funds moved). Once
verified, an owner-only panel unlocks a privacy toggle (hide the wallet
from the public list/pages) and per-wallet notifications (ntfy topic or
webhook) for block-found and rig-offline events. All 22 owner-panel strings
are translated in all 8 languages. - Public-pool deployment guide (
docs/book/src/public-pool-setup.md) with a
ready-to-paste hardening profile (per-IP caps, auto-ban, reject-ratio ban,
IP-gate, TLS, reverse-proxy) and a deployment checklist.
Security
- Shared SSRF guard for all outbound, user-supplied targets (web-push and
per-wallet notify). Private/loopback/link-local/CGNAT/0.0.0.0-8hosts are
refused, hostnames are re-checked against DNS-rebinding, and HTTP redirect
following is disabled so a3xxcannot smuggle a request onto an internal
host. Single source of truth, reused by both paths. - The per-wallet hashrate time-series (
/api/users/<addr>/hashrateand
/api/hashrate?worker=) now honour the privacy flag — a private wallet's
series is hidden from anyone who is not its verified owner (or an
authenticated operator).
Changed
- Coinbase construction refactored around a shared, address-independent
JobTemplate;singlemode delegates to it and is proven byte-identical to
the previous builder. Merkle branches and the witness commitment stay shared;
only the payout output varies per address.
Tests
- Real-Core regtest consensus E2E (
--ignored, opt-in): builds per-worker
blocks for multiple distinct addresses, submits them to a live bitcoind
regtest, and asserts each block is accepted, pays the correct address with a
single value output, carries a correct witness commitment (incl. a non-empty
tx set), and thatsinglemode still produces a valid block.
dvb-WarpPool v1.17.0 — Downloads
Docker
git.warppool.org/dvb-projekt/dvb-warppool:v1.17.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)
1 download
-
Source code (TAR.GZ)
1 download
- Per-worker coinbase (