Home

Awesome

gominer

gominer is an application for performing Proof-of-Work (PoW) mining on the Decred network after the activation of DCP0011 using BLAKE3. It supports solo and stratum/pool mining using OpenCL and CUDA devices.

User Reported Hashrates

Downloading

Binaries are not currently available. See the Building (Windows, Linux) section for details on how to build gominer from source.

Configuring gominer

gominer needs to acquire work in order to have something to solve. Currently, the only supported method is solo mining via a dcrd RPC server. There are plans to support dcrpool for pooled mining in the future.

In order to communicate with the dcrd RPC server, gominer must be configured with dcrd's RPC server credentials.

Next, dcrd must be configured with a mining address to send the payment for mined blocks. That is accomplished by either launching dcrd with the --miningaddr=Ds... CLI flag or adding a miningaddr=Ds... to the aforementioned dcrd.conf file and restarting dcrd.

Running

Benchmark mode

gominer provides a benchmark mode where no work is submitted in order to test your setup.

gominer -B

Solo Mining on Mainnet

Ensure you have configured gominer with dcrd's RPC credentials as well as dcrd with a miningaddr. Once the credentials and mining address have been configured, simply run gominer to begin mining.

gominer

Stratum/pool Mining on Mainnet

Mining with a Pool Based on Dcrpool

The username for pools running dcrpool is the payment address for receiving rewards and a unique name identifying the client formatted as address.name.

Run the following command replacing the pooldomain:port with the appropriate domain name and port of the desired pool to connect to and the address.name as previously described:

gominer --pool stratum+tcp://pooldomain:port --pooluser address.name

General Pool Mining

There is no other known pool software aside from dcrpool, that supports the latest Decred consensus rules at the current time. However, as long as the pool software supports the stratum protocol with the same semantics implemented by dcrpool, the following command should serve as a starting point:

gominer --pool stratum+tcp://pooldomain:port --pooluser username --poolpass password

Status API

There is a built-in status API to report miner information. You can set an address and port with --apilisten. There are configuration examples on sample-gominer.conf. If no port is specified, then it will listen by default on 3333.

Example usage:

$ gominer --apilisten="localhost"

Example output:

$ curl http://localhost:3333/
> {
    "validShares": 0,
    "staleShares": 0,
    "invalidShares": 0,
    "totalShares": 0,
    "sharesPerMinute": 0,
    "started": 1504453881,
    "uptime": 6,
    "devices": [{
        "index": 2,
        "deviceName": "GeForce GT 750M",
        "deviceType": "GPU",
        "hashRate": 110127366.53846154,
        "hashRateFormatted": "110MH/s",
        "fanPercent": 0,
        "temperature": 0,
        "started": 1504453880
    }],
    "pool": {
        "started": 1504453881,
        "uptime": 6
    }
}

Building

Linux

Preliminaries

Gominer works with OpenCL (both AMD and NVIDIA) and CUDA (NVIDIA only). At the current time, most users have reported that OpenCL gives them higher hashrates on NVIDIA.

Once you decide on OpenCL or CUDA, you will need to install the graphics driver for your GPU as well as the headers for OpenCL or CUDA depending on your choice.

The exact packages are dependent on the specific Linux distribution, but, generally speaking, you will need the latest AMDGPU-PRO display drivers for AMD cards and the latest NVIDIA graphics display drivers for NVIDIA cards. Then, depending on whether you will build the OpenCL or CUDA version, the specific set of toolsets, headers and libraries will have to be installed.

For OpenCL, the packages are typically named something similar to mesa-opencl-dev (for AMD) or nvidia-opencl-dev (for NVIDIA).

If you're using OpenCL, it is also recommended to install your distribution's equivalent of the clinfo package if you have any issues to ensure your device can be detected by OpenCL. When clinfo is unable to detect your device, gominer will not be able to either.

For CUDA, on distributions where it is available via the standard package manager, the required files are usually found as nvidia-cuda-toolkit. NVIDIA also provides its own CUDA Toolkit downloads.

The following sections provide instructions for building various combinations of gominer:

NVIDIA on Ubuntu 23.04

This section provides instructions for building gominer on a computer with an NVIDIA graphics card running Ubuntu 23.04. Both OpenCL and CUDA build instructions are provided.

Prerequisites

The following steps are applicable for both OpenCL and CUDA builds of gominer:

OpenCL on Ubuntu
CUDA on Ubuntu

Debian Bookworm

This section provides instructions for building gominer on a computer running Debian bookworm. Both OpenCL (using either AMD or NVIDIA graphics cards) and CUDA (NVIDIA graphics cards only) build instructions are provided.

Prerequisites

Proceed to install the appropriate graphics card driver and supporting firmware, based on the hardware available on the computer:

OpenCL on Debian

This build mode supports both AMD and NVIDIA graphics cards.

CUDA on Debian

Note that this requires having an NVIDIA graphics card installed on the computer.

Windows

Windows Preliminaries

Gominer works with OpenCL (both AMD and NVIDIA) and CUDA (NVIDIA only).

At the current time, most users have reported that OpenCL gives them higher hashrates on NVIDIA. Additionally, building the CUDA-enabled version of gominer on Windows is a much more involved process. For these reasons, unless you really want to run the CUDA version for a specific reason, it is recommended to use OpenCL.

Windows Prerequisites

The following steps are applicable for both OpenCL and CUDA builds of gominer:

OpenCL Prerequisites on Windows

The following is needed when performing an OpenCL build:

OpenCL with AMD
OpenCL with NVIDIA

CUDA with NVIDIA

Building the CUDA-enabled gominer on a Windows platform is tricky, requires several GB worth of downloads and while we have made attempts at detecting the necessary tools and automating the building process, it is not guaranteed to work, in particular as newer or older versions of the various tools are installed.

This guide has been tested on a Windows 10 machine, with an NVIDIA graphics card installed, using Microsoft Visual Studio Community Edition 2022 and NVIDIA CUDA Toolkit version 12.2. If the automatic builder for gominer does not work on your system, you many need to manually setup the various tools.

After fulfilling the Windows prerequisites, follow the following instructions:

User Reported Hashrates

OpenCL

GPUHashrate
NVIDIA GTX 10603.0 Gh/s
AMD RX 5803.7 Gh/s
NVIDIA 1660 Super5.0 Gh/s
AMD Vega 567.0 Gh/s
NVIDIA RTX 3060 Ti8.7 Gh/s
NVIDIA GTX 3080 Mobile9.4 Gh/s
NVIDIA RTX 307010.1 Gh/s
NVIDIA RTX 208010.4 Gh/s
NVIDIA Tesla V10013.9 Gh/s
NVIDIA Tesla V100S14.6 Gh/s
NVIDIA RTX 407014.9 Gh/s
NVIDIA RTX 308015.2 Gh/s
NVIDIA RTX 309017.6 Gh/s
AMD 7900 XTX23.8 Gh/s