Skip to content

About

Zcash Equihash 200,9 CPU miner with live dashboard. Preconfigured for MySoloPool (BTC, BCH, LTC+DOGE, ZEC solo pools).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

zec-cpu-miner

A Zcash (Equihash 200,9) CPU miner with a live terminal dashboard, an optimized tromp solver, and a simple TOML config for any stratum pool.

Preconfigured for MySoloPool Zcash — zec.mysolopool.com:3330.

┌ zec-cpu-miner ───────────────────────────────────────────────┐
│ MySoloPool ZEC       zec.mysolopool.com:3330      * connected │
│ worker  t1YourAddress.cpu1              job 77                │
│ threads 4                               difficulty 0.0015     │
└───────────────────────────────────────────────────────────────┘
┌ throughput ──────────────────┐┌ shares ────────────────────────┐
│ 13.76 Sol/s  now             ││ submitted   52                 │
│ 13.31 Sol/s  session average ││ accepted    52                 │
│ 6.90 solve/s  455 solutions  ││ rejected     0                 │
│ ▂▃▅▆▇▆▅▆▇▆▅▄▅▆▇▆▅▆▇▆▅▄▃▄▅▆▇  ││ uptime    1:12                 │
└──────────────────────────────┘└────────────────────────────────┘

Read this first: a CPU will not earn Zcash

Zcash network hashrate is measured in gigasolutions per second. A fast desktop CPU does tens of solutions per second — roughly nine orders of magnitude short. This will not mine ZEC for profit. No solver optimization changes that.

What this is good for:

  • Proving a Zcash stratum pool accepts real Equihash shares end to end
  • Testing a solo pool you run (-p d=0.001 for easy shares in seconds)
  • Learning and benchmarking Equihash solver changes (solvebench)

For profitable Zcash mining, use Equihash ASICs. For Bitcoin, Bitcoin Cash, Litecoin, and Dogecoin solo mining, see MySoloPool below — those coins need the right ASICs, not this CPU binary.

MySoloPool

MySoloPool is a multi-coin solo mining platform: no registration, wallet address as username, finder gets the block reward (minus the pool fee). Live dashboards per coin:

Coin Dashboard Stratum (typical)
Bitcoin (BTC) mysolopool.com btc.mysolopool.com:3334
Bitcoin Cash (BCH) bitcoincash.mysolopool.com see Getting Started on that site
Litecoin + Dogecoin (merged Scrypt) doge.mysolopool.com scrypt.mysolopool.com:3341
Zcash (ZEC) zcash.mysolopool.com zec.mysolopool.com:3330

This miner speaks Equihash 200,9 only, so it connects to the Zcash pool. Point ASICs at the other coins using each dashboard’s Getting Started page.

Zcash connection (this miner’s default):

Setting Value
Pool zec.mysolopool.com
Port 3330 (variable difficulty) · 3331 (NiceHash / fixed high diff)
Worker t1YourZcashAddress.workername
Password x
Dashboard https://zcash.mysolopool.com/

Download (Windows)

  1. Open the latest Release.
  2. Download zec-cpu-miner-windows-x64.zip.
  3. Extract it somewhere permanent (for example C:\Hashrate\zec-cpu-miner\).
  4. Edit miner.toml (see below), then double-click zec-cpu-miner.exe or run it from a terminal.

First launch also creates miner.toml next to the .exe if the file is missing.

How to edit the config file

The config file is miner.toml, next to zec-cpu-miner.exe.

Step by step

  1. Open the folder that contains zec-cpu-miner.exe.
  2. Open miner.toml in Notepad, VS Code, or any text editor.
    • If you only have miner.toml.example, copy it to miner.toml first.
  3. Replace t1YourZcashAddressHere with your own transparent Zcash address (t1...). Optionally keep a worker name after a dot, for example: t1YourAddress.cpu1.
  4. Save the file.
  5. Run zec-cpu-miner.exe (or zec-cpu-miner.exe --plain for text-only logs).

Example

default_pool = "mysolopool"
threads = 0          # 0 = auto (about 1/4 of your CPUs, max 4)
verify = true

[pools.mysolopool]
label = "MySoloPool ZEC"
host = "zec.mysolopool.com"
port = 3330
worker = "t1YourRealAddress.cpu1"   # <-- change this
password = "x"

Useful options

Field / flag Meaning
default_pool Which [pools.*] block to use when you start with no flags
worker Your ZEC t1 address, optionally .rigname
password Usually x. For testing: d=0.001 asks for easy shares
threads Mining threads. 0 = automatic. Each thread uses ~180 MB RAM
--pool NAME Use another preset, or pass host:port directly
--list Show all pools defined in miner.toml
--plain Log to the console instead of the dashboard

Important: solo mining pays the finder. Leave the placeholder address and any block you find would not go to you — the miner refuses to start until you set a real address.

Switch pools without rewriting the file

zec-cpu-miner --pool local
zec-cpu-miner --pool eu.otherpool.com:3357 -u t1YourAddress.rig1
zec-cpu-miner --list

Build from source

You need a Rust toolchain and a C compiler (MSVC Build Tools on Windows, gcc or clang elsewhere).

git clone https://github.com/Hashrate-Farm/zec-cpu-miner.git
cd zec-cpu-miner
cargo build --release

Binaries: target/release/zec-cpu-miner and target/release/solvebench.

Quick start (after config)

# Dashboard (default)
./zec-cpu-miner

# Text logs (services / pipes)
./zec-cpu-miner --plain

# Local pool with easy shares
./zec-cpu-miner --pool local --worker t1YourAddress.test --threads 4

Press q to quit the dashboard.

How many threads?

Fewer than you might expect. Default is about a quarter of your CPUs, capped at 4:

  1. Each thread holds a ~180 MB solver arena (locked into RAM when large pages work).
  2. Throughput often saturates before you run out of cores (memory bandwidth bound).

Raise with --threads for benchmarks; keep it small if a pool runs on the same PC.

Verification

Every solution is checked with the equihash crate’s reference verifier before submit. That path is independent of the optimized solver, so a bug cannot hide behind a matching checker. Verification costs ~20 µs vs ~250 ms per solve — leave it on.

Benchmarking the solver

./solvebench --iters 20 --threads 4

Reports per-phase timings, throughput, and verification counts. Build tunables (TROMP_HASHMANY, TROMP_LARGEPAGES, …) are documented in comments in build.rs. On a typical desktop, batched AVX2 hashing plus large pages measured about 1.5× over the stock tromp path.

Large pages (optional, faster)

Worth a large gain at high thread counts. On Windows, grant Lock pages in memory (SeLockMemoryPrivilege) to your account (secpol.msc → Local Policies → User Rights Assignment), then log off and back on. If the OS refuses large pages, the miner falls back to 4 KB pages and prints a warning.

Platform support

Developed and tested on Windows 11 x86-64 (AVX2). Scalar / non-AVX2 paths and a POSIX large-page path exist; Linux/macOS builds are expected but not yet verified in this repository.

License

MIT — see LICENSE. The Equihash solver in csrc/ is derived from John Tromp’s solver as distributed in librustzcash (MIT OR Apache-2.0); see NOTICE.

Links

About

Zcash Equihash 200,9 CPU miner with live dashboard. Preconfigured for MySoloPool (BTC, BCH, LTC+DOGE, ZEC solo pools).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages