Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

dvb-WarpPool is a Rust Bitcoin solo mining pool, written as a modern parallel build to dvb-goPool. Run it privately (mine to your own address) or as a public, non-custodial 0% pool where every visiting miner mines to their own address (per-worker payouts) — either way the finder is paid directly on-chain. See the Public 0% Solo Pool guide. Focus areas:

  1. Performance — Rust async (Tokio), pure-Rust ZMQ + NOISE (no libzmq / OpenSSL required), reproducible release builds
  2. Miner compatibility — Nerdminer V2, Bitaxe (AxeOS), Avalon Q, Antminer S21/S23 Pro, Whatsminer (MicroBT), NerdNOS/Octaxe
  3. OS compatibility — macOS (Intel + Apple Silicon), Windows, Linux x86_64 + aarch64 (deb/rpm/AppImage), Raspberry Pi 5, Umbrel (Docker)
  4. Security — memory safety, TLS, JWT + 2FA-TOTP + API tokens, audit log, signed releases (cosign), reproducible builds, auto-update with on-failure rollback
  5. Stratum V1 + V2 — plain + TLS for V1, NOISE-NX for V2, V1↔V2 translator as a sidecar
  6. Admin profiles — Small / Medium / Large / Enterprise (hot-switch)
  7. Modern UI — SvelteKit PWA with i18n (DE/EN/ES/PT-BR/FR/IT/JA/ZH), HealthBanner + UpdateBanner via SSE events, operator marquee announcement banner (Admin → Banner, since v1.21.0), mobile-first
  8. 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.24.0 (2026-07-24) — the releases page always carries the current version. The phase table below covers the development history that led up to v1.0; post-1.0 changes are tracked in CHANGELOG.md.

ComponentStatus
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 template wiring (phase 7.6b)✅ opt-in Core IPC template source (v1.16.0); Sv2 TDP wire path still deferred
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 by design — solo pays out through the block itself: the coinbase pays the miner address directly, with optional pool-fee / donation coinbase splits (UI-configurable since v1.0.17, Admin → Mining). A custodial payout ledger (pool wallet + PPLNS/FPPS batching) stays out of OSS scope — see Scaling
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 (12): Bitaxe / BitForge Nano / NerdMiner / NerdAxe Gamma / NerdQaxe / 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.24.0): 1201 Rust tests green + 4 ignored (regtest opt-in). 374 svelte-check files / 0 errors / 0 warnings.

Workspace: 18 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 — the Sv2 TDP wire path (Option A) is still deferred; the modern template-acquisition goal itself shipped in v1.16.0 as the opt-in Core IPC template source (Option B)

Who builds the pool

dvb-WarpPool is a solo project by dvb-Projekt (dvbprojekt@gmx.de). Code is dual-licensed: AGPL-3.0-or-later for everyone, plus a commercial license for proprietary use (see COMMERCIAL-LICENSE.md). Contributions welcome — see CONTRIBUTING.md for the licensing terms.

Where to find what

Operator Handbook

ChapterContents
Getting StartedQuick install + first connection
Configuration Referenceconfig.toml + secrets.toml + env vars
Setup Health-ChecksFirst-run wizard + daemon periodic check
Notificationsntfy / Telegram / Discord / Slack / Email setup
ObservabilityPrometheus metrics reference + Grafana + alerts
TroubleshootingSymptom → diagnosis → fix
Packaging & DeploymentDocker, .deb/.rpm/.AppImage/.dmg/.msi, RPi 5, Umbrel
SecurityThreat model, auth stack, key material, audit log
Reproducible Buildslto=fat + SOURCE_DATE_EPOCH + verify script
Auto-UpdateUpdate loop + Cosign + rollback

Architecture

ChapterContents
System ArchitectureCrate layout, daemon tasks, storage schema, Sv2 stack
UI DesignWarp-drive concept + implementation status
TestingUnit / integration / sim / regtest
Performance BenchmarksCriterion suites + baseline numbers

Sv2 Stack

ChapterContents
Phase HistorySv2 chronologically (phase 7.1 → 7.6a)
RoadmapAll phases + what’s still open
  • Source: git.warppool.org/dvb-projekt/dvb-WarpPool
  • Documentation: docs.warppool.org
  • Public reference instance: pool.warppool.org — non-custodial per-worker mode, 0% fee
  • 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