Introduction
dvb-WarpPool is a Rust Bitcoin solo mining pool, written as a modern parallel build to dvb-goPool. Focus areas:
- Performance — Rust async (Tokio), pure-Rust ZMQ + NOISE (no libzmq / OpenSSL required), reproducible release builds
- Miner compatibility — Nerdminer V2, Bitaxe (AxeOS), Avalon Q, Antminer S21/S23 Pro, Whatsminer (MicroBT), NerdNOS/Octaxe
- OS compatibility — macOS (Intel + Apple Silicon), Windows, Linux x86_64 + aarch64 (deb/rpm/AppImage), Raspberry Pi 5, Umbrel (Docker)
- Security — memory safety, TLS, JWT + 2FA-TOTP + API tokens, audit log, signed releases (cosign-keyless), reproducible builds, auto-update with on-failure rollback
- Stratum V1 + V2 — plain + TLS for V1, NOISE-NX for V2, V1↔V2 translator as a sidecar
- Admin profiles — Small / Medium / Large / Enterprise (hot-switch)
- Modern UI — SvelteKit PWA with i18n (DE/EN/ES/PT-BR/FR/IT/JA/ZH), HealthBanner + UpdateBanner via SSE events, mobile-first
- Observability — Prometheus
/metrics+ notifier sinks (ntfy / Telegram / Discord / Slack / Email) + RPC latency histogram
Current Status
The v1.0 line is released and maintained. Latest tag: v1.0.6 (2026-06-06).
The phase table below covers the development history that led up to v1.0;
post-1.0 changes are tracked in CHANGELOG.md.
| Component | Status |
|---|---|
| Phase 1 — Foundation (crates, profiles, hwdetect) | ✅ |
| Phase 2 — MVP Pool (V1 + storage + API + UI) | ✅ |
| Phase 2.1 — ZMQ hashblock subscribe | ✅ |
| Phase 2.5 — VarDiff (EMA + hysteresis + persistence) | ✅ |
| Phase 3 — Security (TLS, rate limit, JWT, 2FA, API tokens, audit) | ✅ |
| Phase 4 — UX (PWA, i18n, SSE live, charts, mobile) | ✅ |
| Phase 5 — Operations (Prometheus, mDNS, vendor APIs, backup) | ✅ |
| Phase 6 — Packaging (Docker multi-arch, native installer, Cosign, SLSA, RPi 5) | ✅ |
| Sv2 Stack (phase 7.1–7.6a) | ✅ |
| └─ Mining protocol (server + client + V1↔V2 translator) | ✅ |
| └─ Job distribution + V1 mining.notify mapping + BIP-320 | ✅ |
| └─ Template-distribution wire foundation | ✅ |
| └─ Bitcoin-node TDP wiring (phase 7.6b) | ⏸ deferred (Bitcoin Core IPC since v30) |
| Phase 8 — Polishing (mdBook, repro builds, auto-update + rollback + Cosign) | ✅ |
| Phase 9 — Setup health-checks (multi-RPC, network, probes with consent) | ✅ |
| Phase 10a — bitcoin.conf snippet generator | ✅ |
| Phase 11 — UPnP port forwarding (whitelist + consent) | ✅ |
| Phase 12 — bitcoin.conf parse-existing (smarter snippets) | ✅ |
| Phase 13 — Daemon periodic Bitcoin health-check + SSE | ✅ |
| Phase 14 — UI HealthBanner + UpdateBanner | ✅ |
| Phase 15 — Notifier fully wired + Email/Slack + admin-UI test buttons | ✅ |
| └─ 15.2b Sv2 connection notifier wiring | ✅ |
| Phase 16 — Observability (PoolMetrics + RPC latency histogram + notifier counter) | ✅ |
| Phase 17 — Payout system | ⏭ skipped (single-user solo doesn't need it; coinbase splits cover multi-user) |
| Phase 18 — mdBook operator guide + ARCHITECTURE/SECURITY refresh | ✅ |
| Phase 19 — Performance benchmarks (Criterion) | ✅ |
| Phase 20 — Live energy + health trend | ✅ |
| └─ 20.1 Time-series storage + power-tariff schema (Single/TOU/Solar) | ✅ |
| └─ 20.2 Energy + history endpoints | ✅ |
| └─ 20.3 Health anomaly detector (5 heuristics) | ✅ |
| └─ 20.3b HealthAlert notifier hook (critical → ntfy/Discord/Slack/Email/Telegram) | ✅ |
| └─ 20.4 UI EnergyCard in dashboard | ✅ |
| └─ 20.4b UI per-miner detail page with sparklines | ✅ |
| └─ 20.5 Solar HA provider (Home Assistant REST API) | ✅ |
| Phase 21 — VAPID Web Push | ✅ |
| └─ 21.1 Pure-Rust VAPID crypto + CLI gen-vapid-keys | ✅ |
| └─ 21.2 Subscribe + public-key API (4 routes) | ✅ |
| └─ 21.3 Daemon push-send loop (BlockFound/Health/Update → background push) | ✅ |
| └─ 21.4 UI subscribe flow + service worker | ✅ |
| Phase 22 — Vendor probe metrics | ✅ |
| └─ 22.1 Per-miner Prometheus metrics | ✅ |
| └─ 22.2 Discovered-miners auto-probing (env-gated) | ✅ |
| └─ 22.4 AvalonQ probe adapter | ✅ |
| └─ 22.5 Braiins OS probe adapter | ✅ |
| Phase 23 — Probe hardening | ⏭ skipped (low-value: probes are LAN-local, probe_health gauge already covers failure detection) |
Recognized miner vendors (8): Bitaxe / NerdNOS / NerdOctaxe / BitMain-Stock / Whatsminer / Avalon (A12xx-A15xx) / Avalon Q / Braiins OS / OS+.
Notifier sinks (6): ntfy / Telegram / Discord / Slack / Email-SMTP / VAPID Web Push (PWA background).
Tests (as of v1.0.6): 711 Rust tests green + 3 ignored (regtest opt-in). 347 svelte-check files / 0 errors / 14 pre-existing warnings.
Workspace: 16 library crates + 6 binaries (daemon, CLI, setup wizard, translator sidecar, miner simulator, macOS launcher). Single workspace, no external sub-repo.
What's still open:
- Phase 7.6b — TDP wiring deferred (ecosystem re-eval trigger: Bitcoin Core IPC stable or SRI production-mature)
- Phase 25 — Logos/icons for the native installer (design-asset topic)
Who builds the pool
dvb-WarpPool is a solo project by dvb-Projekt (dvbprojekt@gmx.de). Code is dual-licensed under MIT OR Apache-2.0. Contributions welcome — see the README for the disclosure policy.
Where to find what
Operator Handbook
| Chapter | Contents |
|---|---|
| Getting Started | Quick install + first connection |
| Configuration Reference | config.toml + secrets.toml + env vars |
| Setup Health-Checks | First-run wizard + daemon periodic check |
| Notifications | ntfy / Telegram / Discord / Slack / Email setup |
| Observability | Prometheus metrics reference + Grafana + alerts |
| Troubleshooting | Symptom → diagnosis → fix |
| Packaging & Deployment | Docker, .deb/.rpm/.AppImage/.dmg/.msi, RPi 5, Umbrel |
| Security | Threat model, auth stack, key material, audit log |
| Reproducible Builds | lto=fat + SOURCE_DATE_EPOCH + verify script |
| Auto-Update | Update loop + Cosign + rollback |
Architecture
| Chapter | Contents |
|---|---|
| System Architecture | Crate layout, daemon tasks, storage schema, Sv2 stack |
| UI Design | Warp-drive concept + implementation status |
| Testing | Unit / integration / sim / regtest |
| Performance Benchmarks | Criterion suites + baseline numbers |
Sv2 Stack
| Chapter | Contents |
|---|---|
| Phase History | Sv2 chronologically (phase 7.1 → 7.6a) |
| Roadmap | All phases + what's still open |
Quick Links
- Source: github.com/dvb-projekt/dvb-WarpPool
- Release pipeline + SBOM:
.github/workflows/release.yml - Bench workflow:
.github/workflows/benches.yml - Repro-verify:
scripts/verify-reproducible.sh - Regtest setup:
scripts/regtest-up.sh+regtest-down.sh - Sister project (Go implementation): dvb-goPool