btcz / zhasher

Zhasher for BitcoinZ
MIT License
5 stars 5 forks source link

Zhasher

Zhasher is a Zhash CPU&GPU Miner for BitcoinZ based on nheqminer made by NiceHash.

!OBSOLETE! Please use EWBF's miner as it has a 10x improvement over Zhasher!

More information here: https://bitcointalk.org/index.php?topic=4466962.0

Example EWBF Config:

miner.exe --algo 144_5 --server mine-btcz-na.equipool.1ds.us --user tmWNpX6y9x4xFxg4NDkkajsVB4CxKx9sAgb.renuzit --pass x --port 49951 --pers BitcoinZ

!OBSOLETE! Please use EWBF's miner as it has a 10x improvement over Zhasher!

About Zhash PoW

The Zhash PoW is based on the Equihash 144,5 algorithm, a memory hard algorithm solving the Generalized Birthday Problem with custom parameters unique to BitcoinZ.

Zhash uses a larger amount of memory (700 MB) in comparison to Equihash 200,9 (150 MB) to make it not financial feasible to create an ASIC device and put them on an equal playing field when compared to GPUs.

Build instructions:

Dependencies:

Windows:

Windows builds made by us are available here: https://github.com/btcz/zhasher/releases

Download and install:

Open zhasher.sln under zhasher/zhasher.sln and build. You will have to build ReleaseSSE2 cpu_tromp project first, then Release7.5 cuda_tromp project, then select Release and build all.

Enabled solvers:

Currently Broken solvers:

If you don't wan't to build with all solvers you can go to zhasher Properties > C/C++ > Preprocessor > Preprocessor Definitions and remove the solver you don't need.

Linux

Work in progress. Working solvers CPU_TROMP, CUDA_TROMP

General instructions:

Run instructions:

Parameters: -h Print this help and quit -l [location] Stratum server:port -u [username] Username (bitcoinzaddress) -a [port] Local API port (default: 0 = do not bind) -d [level] Debug print level (0 = print all, 5 = fatal only, default: 2) -b [hashes] Run in benchmark mode (default: 200 iterations)

CPU settings -t [num_thrds] Number of CPU threads -e [ext] Force CPU ext (0 = SSE2, 1 = AVX, 2 = AVX2)

NVIDIA CUDA settings -ci CUDA info -cd [devices] Enable CUDA mining on spec. devices -cb [blocks] Number of blocks -ct [tpb] Number of threads per block Example: -cv 1 -cd 0 2 -cb 12 16 -ct 64 128

If run without parameters, miner will start mining with 75% of available logical CPU cores. Use parameter -h to learn about available parameters:

Example to run benchmark on your CPU:

    zhasher -b

Example to mine on your CPU with your own BTCZ address and worker1 on Equipool USA server:

    zhasher -l mine.equipool.1ds.us:50063 -u YOUR_BTCZ_ADDRESS_HERE.worker1

Example to mine on your CPU with your own BTCZ address and worker1 on EU server, using 6 threads:

    zhasher -l mine.equipool.1ds.us:50063 -u YOUR_BTCZ_ADDRESS_HERE.worker1 -t 6

Note: if you have a 4-core CPU with hyper threading enabled (total 8 threads) it is best to run with only 6 threads (experimental benchmarks shows that best results are achieved with 75% threads utilized)

Example to mine on your CPU as well on your CUDA GPUs with your own BTCZ address and worker1 on EU server, using 6 CPU threads and 2 CUDA GPUs:

    zhasher -l mine.equipool.1ds.us:50063 -u YOUR_BTCZ_ADDRESS_HERE.worker1 -t 6 -cv 1 -cd 0 1