Repository navigation
v1.3.2-DIMEBAG
Release v1.3.2-DIMEBAG of midwimble.
NVIDIA GPUs that mine, and a faster CPU miner. No consensus change: this is
v1.3-DIMEBAG's chain, with Midstate Walk from block 37,300 and midstate's
from 371,500. Nodes that only follow the chain need not upgrade. Anyone
mining should, and anyone with an NVIDIA GPU must, to mine on it at all.
NVIDIA GPUs mine the Walk
v1.3.1-DIMEBAG's CUDA miner computed every walk wrong, on every NVIDIA GPU.
Its self-test caught it, so no GPU mined bad work: each one was refused with
"got a known answer wrong", and the node mined on its CPU alone.
The GPU code ships as PTX, compiled ahead of time with clang. Clang 18
compiled the walk's 64-bit rotate to two 64-bit shifts without first reducing
the amount mod 64, and PTX turns a shift of 64 or more into zero, so the
rotate came out 0 almost every time. This release carries midstate's fixed
PTX, which builds the rotate from 32-bit shifts. Midstate's CI now runs the
compiled PTX itself on a CPU, instruction by instruction, against the known
answers. The broken PTX gives exactly the wrong hash the first GPU reported,
and the fixed one gives every known answer.
On a Quadro M6000, the fixed miner does 819 attempts/s beside the CPU.
A faster CPU miner
A Walk step spends most of its time waiting for its read from the 256 KiB
pad. A CPU thread can step walks of other nonces in turn and fill those
waits, as long as their pads still fit the core's caches. Whether they do
depends on the CPU, so the miner measures it:
- Before its first Walk job, the CPU miner times 1 to 4 walks per thread on
all its threads (about 6 s, once per run). It checks the known answers that
way, mines with the fastest, and logs the rates:
Midstate Walk: attempts with 1 to 4 walks per thread on 12 threads: 1: 1630/s, 2: 1793/s, 3: 1645/s, 4: 1355/s; mining with 2 MINER_WALKS_PER_THREAD=1to4sets it instead.- With one walk per thread, the step itself is written faster: about 5% on
a Raspberry Pi 5 and on x86.
| CPU | Walks per thread chosen | Against v1.3.1-DIMEBAG |
|---|---|---|
| Raspberry Pi 5, 4 threads | 1 | about +3.5% (1,490 to 1,542 attempts/s) |
| Xeon E5-1650 v3, 12 threads (256 KiB of L2 a core) | 2 | about +10% over one walk per thread |
| A 2-core cloud Xeon (2 MiB of L2 a core) | 3 | +89% (about 600 to 1,132 attempts/s) |
The more cache a core has, the more it gains. Zen 4 and Zen 5 cores have
1 MiB of L2, and should gain too; none has been measured here yet.
Each hash is exactly its nonce's walk. Every way of writing the step, at 1 to
4 walks per thread, is tested against the known answers in every slot, and
against the reference step over 6,000 random programs.
The node's miner, pool-mine, merge-mine and the CUDA miner's CPU threads
all mine this way.
Upgrading
- Miners with an NVIDIA GPU: upgrade to mine on it.
midwimble gpu-info
checks each card against the known answers. - Other miners: upgrade for the speed. Run
--backend cpuor
MINER_DISABLE_GPU=1if the GPU also drives your display and mining makes
the desktop stutter. - Everyone else: optional. v1.3-DIMEBAG and v1.3.1-DIMEBAG follow the same
chain.
Built --release --features webrtc,gpu from commit 05f94ce25c407375537a18b22fd3b3628db45d4d. Each archive holds one midwimble binary — node, wallet, pool, merged miner and anchoring — with LICENSE and README.
| Download | Platform |
|---|---|
midwimble-v1.3.2-DIMEBAG-x86_64-unknown-linux-gnu.tar.gz |
Linux x86-64 |
midwimble-v1.3.2-DIMEBAG-aarch64-unknown-linux-gnu.tar.gz |
Linux ARM64 — Raspberry Pi 3 / 4 / 5 on a 64-bit OS |
midwimble-v1.3.2-DIMEBAG-x86_64-apple-darwin.tar.gz |
macOS (Intel) |
midwimble-v1.3.2-DIMEBAG-aarch64-apple-darwin.tar.gz |
macOS (Apple Silicon) |
midwimble-v1.3.2-DIMEBAG-x86_64-pc-windows-msvc.zip |
Windows x64 |
midwimble-v1.3.2-DIMEBAG-aarch64-pc-windows-msvc.zip |
Windows on ARM |
Verify with sha256sum -c SHA256SUMS.txt (checksums attached).