Zhasher is a Zhash CPU&GPU Miner for BitcoinZ based on nheqminer made by NiceHash.
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
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.
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.
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.
Work in progress. Working solvers CPU_TROMP, CUDA_TROMP
Install CUDA SDK v9 (make sure you have cuda libraries in LD_LIBRARY_PATH and cuda toolkit bins in PATH)
Use Boost 1.62+ (if it is not available from the repos you will have to download and build it yourself)
CMake v3.5 (if it is not available from the repos you will have to download and build it yourself)
Currently support only static building (CUDA_TROMP is enabled by default, check CMakeLists.txt in zhasher root folder)
If not on Ubuntu make sure you have fasm installed and accessible in PATH
After that open the terminal and run the following commands:
git clone https://github.com/btcz/zhasher.git
mkdir build && cd build
export CUDA_CUDART_LIBRARY="/usr/local/cuda/lib64/libcudart.so"
cmake -DCUDA_CUDART_LIBRARY=CUDA_CUDART_LIBRARY ../
make -j $(nproc)
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