/ZILMiner

Mining software for Zilliqa

Primary LanguageC++GNU General Public License v3.0GPL-3.0

ZILMiner

Zilliqa miner with OpenCL and CUDA support. It supports both Ubuntu and Windows OS.

ZILMiner is an Ethash GPU mining software that supports the Zilliqa Proof-of-Work process.

This project is a fork of ethminer. Please do see ethminer README for more details of the implementation.

Features

  • Zilliqa Getwork protocol
  • Dual-Mining support
  • All current ethminer features

Install

Standalone executables for Linux, macOS and Windows are provided in the Releases section. Download an archive for your operating system and unpack the content to a place accessible from command line. After which, zilminer will be ready to go.

Usage

ZILMiner is a command line program. This means you will have to launch it either from a Windows command prompt or Linux Bash console. You can also create shortcuts to predefined commands using a Linux Bash script or Windows batch/cmd file. For the full list of available commands, please enter the following:

zilminer --help

Settings on Zilliqa Node Work in GetWork Server Mode

  1. Setup Zilliqa Node by following the Zilliqa Mining Guide

  2. Change the constants.xml for the following parameter:

    • Set GETWORK_SERVER_MINE to true

    • Set GETWORK_SERVER_PORT to the port you will be using to GetWork (default is 4202)

    • Set the other mining parameters to false:

      <CUDA_GPU_MINE>false</CUDA_GPU_MINE>
      <FULL_DATASET_MINE>false</FULL_DATASET_MINE>
      <OPENCL_GPU_MINE>false</OPENCL_GPU_MINE>
      <REMOTE_MINE>false</REMOTE_MINE>
  3. Launch your node and find out your IP address with the following command:

    curl https://ipinfo.io/ip
    ./launch_docker.sh

Settings on ZILMiner client

Key in the following command in your command prompt:

zilminer -P zil://wallet_address.worker_name@zil_node_ip:get_work_port

Please change the wallet_address, worker_name, zil_node_ip, and get_work_port accordingly.

  • For wallet_address: You can use the Moonlet to create a new keypair and a Zilliqa address
  • For worker_name You can key in any abitrary worker name you desire
  • For zil_node_ip: Please key in the IP address of the Zilliqa node
  • For get_work_port: Please key in the port used in GETWORK_SERVER_PORT. Default is 4202

Dual Mining

  1. Create 2 bat scripts yourself to start/stop other coin's miner

  2. Add arg --pow-start to stop the other miner before ZIL PoW process starts

  3. Add arg --pow-end to start the other miner after ZIL PoW process stops

    Example:

    zilminer --pow-start stopAE.bat --pow-end startAE.bat -P zil://wallet_address.worker_name@zil_node_ip:get_work_port
  4. (Optional) If your GPU's memory is insufficient, add the arg --clear-dag to clear Zilliqa's DAG after ZIL PoW has stopped.

Dual Mining Scripts

Zilminer + GMiner

Here is an example of how to create the 2 batch files necessary for dual mining BEAM and ZIL:

  • To create the start_beam.bat batch file that is needed to start the BEAM miner, do the following:

    taskkill /f /im miner.exe >null
    START cmd /c "miner.exe --algo 150_5 --server beam-us.leafpool.com --port 4444 --ssl 1 --user walletxxx.namexxx"
  • To create the stop_beam.bat batch file that is needed to stop the BEAM miner, do the following:

    taskkill /f /im miner.exe >null

Then, run both bat scripts by following the example command below:

zilminer.exe --pow-start stop_beam.bat --pow-end start_beam.bat --pow-end-at-startup -P zil://wallet_address.worker_name@proxy.getzil.com:5000/api

If your GPU's memory is not sufficient for these 2 miners to run concurrently, add the arg --clear-dag to the command above.

Build

Building from source

See docs/BUILD.md for build/compilation details.