No description
  • C++ 63.2%
  • Cuda 17.1%
  • C 8.7%
  • Shell 3.2%
  • Objective-C++ 2.7%
  • Other 5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
maxnflaxl f9cd08ee01
Some checks failed
release / linux-x86_64 (push) Has been cancelled
release / windows-x86_64 (push) Has been cancelled
ci / linux (push) Has been cancelled
ci / windows (push) Has been cancelled
docs: the RTX 5080 on the gated build, 77.9 sol/s
The owner's 0.8.451 report: 25.74 ms against 32.57 before the gate, and the
card now draws ~279 W instead of stalling at ~234 W. Replaces the flat spec-on
curve; against lolMiner's figure on that card MXBM is now 5.0 % faster at stock
and 6.4 % more efficient at 250 W. The chart's 5080 label moves back above its
point, which no longer sits under the 4070 Ti SUPER's curve.
2026-09-24 22:29:34 +02:00
.github issue template: drop render: markdown from the report field 2026-09-17 22:32:01 +02:00
benchmarks benchmarks: Ctrl+C stops a sweep 2026-09-08 19:11:30 +02:00
cmake cmake: keep Metal ablation scaffolding out of the options list 2026-08-19 15:24:56 +02:00
cuda bench: the pipeline harness reads the 56 B round-3 record 2026-09-09 12:38:57 +02:00
docs docs: the RTX 5080 on the gated build, 77.9 sol/s 2026-09-24 22:29:34 +02:00
kernels cuda: guard the sm_80 L2 policies so the fatbin builds for Turing, and CI builds the release arch list 2026-09-09 17:40:34 +02:00
packaging packaging: the archive's docs/ links pointed at files it does not ship 2026-08-28 15:31:48 +02:00
src cuda: speculative entry off on compute capability 12.x 2026-09-24 22:28:43 +02:00
tests cuda: speculative entry off on compute capability 12.x 2026-09-24 22:28:43 +02:00
third_party MXBM — open-source BEAM (BeamHash III) GPU miner 2026-07-23 02:59:17 +02:00
.gitattributes packaging: everything the release archive ships, for linux and windows 2026-08-01 18:04:01 +02:00
.gitignore gitignore: the aarch64 archives from the Jetson cross-build 2026-08-28 15:31:35 +02:00
CMakeLists.txt ui: a boxed startup banner 2026-08-20 00:38:59 +02:00
LICENSE MXBM — open-source BEAM (BeamHash III) GPU miner 2026-07-23 02:59:17 +02:00
NOTICE MXBM — open-source BEAM (BeamHash III) GPU miner 2026-07-23 02:59:17 +02:00
README.md docs: the 5001 rung re-swept and the cap table's MXBM column is the current build 2026-09-09 10:48:37 +02:00

MXBM

An open-source GPU miner for Beam (BeamHash III).

A from-scratch implementation of Beam's proof-of-work — an Equihash-style Wagner search on the ⟨144,5⟩ parameter shape — built to be a fully open, auditable alternative to the closed-source miners in the ecosystem. It mines against a real pool over TLS: live jobs in, verified solutions out, shares accepted.

Status: working, optimization ongoing. On an RTX 4070 Ti SUPER the CUDA backend does 74.40 sol/s (27.00 ms/solve) and the portable OpenCL one 63.0.

Quick start

# Build
cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j

# Mine (replace with your own BEAM wallet address)
./build/mxbm --algo BEAM-III \
             --pool beam.herominers.com:1130 \
             --user <your-beam-address>.<worker-name>

Dependencies and platform notes are in docs/building.md; the full command line, config files and API are in docs/usage.md.

Cap the board. MXBM runs pinned at the power limit in every kernel, so the limit picks the operating point. --pl 220 is the reference card's efficiency peak; sudo mxbm --tune measures yours. Needs root, restored on exit.

How it compares

Both miners swept at identical board caps, set externally, with the watts read by one instrument (the full table; the lolMiner column is the 2026-08-18 session of the unchanged reference binary, the MXBM column the current build's 2026-09-09 sweep):

board cap MXBM lolMiner 1.98a
180 W 54.7 sol/s · 0.304 sol/s/W 53.3 sol/s · 0.296 sol/s/W
220 W 69.9 sol/s · 0.318 sol/s/W 53.4 sol/s · 0.243 sol/s/W
285 W 74.8 sol/s · 0.263 sol/s/W 53.8 sol/s · 0.229 sol/s/W

MXBM has the higher ceiling — 74.8 sol/s against ~54.4, which lolMiner cannot reach at any setting — and it leads on both speed and efficiency from ~176 W to the 285 W stock limit. Below that lolMiner is ahead on stock memory, by 6–9 % from 110 to 160 W. With each miner at its best memory clock MXBM leads from 120 W up and trails by 4–6 % only below ~114 W (the low band). The current build's best efficiency is 3.14 J/solution at 220 W (the curve), 69.9 sol/s at that point against lolMiner's best of 3.21 J/solution at 49.95 sol/s.

Features

  • BeamHash III from a verified specification — differentially tested against Beam's reference IsValidSolution over tens of thousands of fuzzed inputs.
  • Real-pool stratum client — TLS-first, wallet-address authentication, nonce-prefix partitioning, reconnect with backoff, failover across several pools. Verified live against HeroMiners.
  • Multi-GPU, including mixed rigs. One solver, worker thread and nonce lane per card, so no two ever try the same nonce. Cards needing different backends run in the same process: the CUDA, OpenCL and NVML device lists are joined on PCI bus id, so each card takes its fastest viable backend and one neither can drive is skipped with the reason.
  • Runs unattended — a watchdog that spots a card which has stopped completing solves and exits with a code a supervisor can restart on, plus overclock control (--pl, --cclk, --mclk, --coff, --moff, --fan) clamped to the driver's bands and restored on exit.
  • Familiar UX — a lolMiner-shaped console, a compatible command-line surface, and both configuration-file formats.
  • Dashboard and /summary API — --apiport N serves a live browser dashboard (hashrate, share-difficulty scatter, power with an optional energy-cost axis, clocks, temperature) alongside a JSON endpoint. Self-contained: no CDN, so it works on an isolated rig.
  • CUDA and OpenCL solvers — a fused row-bucket Wagner pipeline finding all five rounds' collisions in local memory, best backend selected automatically, falling back to the CPU reference. Every optimization is gated on byte-identical known-answer solutions.
  • Apple Silicon native — a Metal backend at 101 ms/solve (18.8 sol/s) on an M3 Max, ~5× the OpenCL path, which cannot run these kernels at all.
  • Self-contained — no Boost, no Beam runtime. A vendored single-header JSON library and your system OpenSSL.

Developer fee

MXBM takes a 1.0% developer fee — one 36-second round per 60 minutes of mining, about 14.4 minutes a day. It is the same rate the closed-source miners charge, so an open miner costs you no more, and it is what funds development.

It is announced at startup and at each round, reported on its own row of the statistics table and in /summary, and kept in a separate ledger, so it never touches your own share counts, best share, or pool-credited rate. Fee rounds log in under your own worker name plus the rate (rig1_1). --dev-fee PCT raises it; it cannot be lowered.

Full terms are in docs/devfee.md.

Donations

The fee funds MXBM by default. To give more: raise it with --dev-fee PCT, send Beam to the BANS name maxnflaxl.beam, or point a rig at the developer's address — an ordinary HeroMiners address, so any miner can mine to it:

./build/mxbm --algo BEAM-III \
             --pool beam.herominers.com:1130 \
             --user 12cafbe121b5f063d2c63152058575479a2826a41fd4176296dae2e8ad3fc9ffc60.<worker-name>

Documentation

Doc Covers
building.md Dependencies, platform notes, the tests
usage.md The command line, config files, console, multi-GPU
overclocking.md The six knobs, what to set, and how to tell instability apart from a failure rate
api.md The dashboard and the /summary JSON
devfee.md The fee in full
HW_REQUIREMENTS.md VRAM thresholds and what each card class gets
benchmarks.md Measured results: both miners, power curves, where each millisecond goes
benchmarking.md How to measure a card, and the protocol that settles a cross-miner comparison
architecture.md How the code is organised
performance.md The permanent record — every figure, with its measurement
performance-research.md Every optimization tried, working or not, with its mechanism
beamhash-iii.md The algorithm, written from Beam's published specifications (II, I)

Running MXBM on a card that is not yet listed? mxbm --report benchmarks it, measures its power curve and prints a paste-ready block — one command, no checkout, nothing uploaded — and there is an issue template waiting for it.

Comparing miners is harder than it looks: reported sol/s is implementation-defined, and MXBM measures a 17 % spread between "solutions found" and "solutions that verify" inside its own pipeline. It reports the conservative number. benchmarking.md has the method.

Roadmap

  • More speed, and more of it under a power cap. Performance work is ongoing. The low-power band is where the remaining ground is: MXBM leads from ~176 W up and the gap below that is single digits (the low band).
  • AMD, via a HIP backend. Not started. Both solvers are measured on NVIDIA today, and AMD cards run the portable OpenCL path.

Contributing

Issues and pull requests are welcome. See docs/contributing.md for the build/test workflow and code style.

License

Apache License 2.0 — see LICENSE and NOTICE. MXBM builds on Beam, which is itself Apache-2.0 licensed.