Ethereum miner with OpenCL, CUDA and stratum support
C++ C Cuda CMake Shell
Latest commit 68fc436 Jun 20, 2018
Permalink
Failed to load latest commit information.
cmake Remove the no longer needed C4503 MSVC suppression. Jun 18, 2018
docs Update BUILD.md. Jun 20, 2018
ethminer Fix DBUS build Jun 20, 2018
libapicore Replace defined NULL with C++ nullptr Jun 20, 2018
libdevcore Make log values more readable using locale specific formatting Jun 18, 2018
libethash-cl Replace defined NULL with C++ nullptr Jun 20, 2018
libethash-cuda Replace defined NULL with C++ nullptr Jun 20, 2018
libethcore Replace defined NULL with C++ nullptr Jun 20, 2018
libhwmon Replace defined NULL with C++ nullptr Jun 20, 2018
libpoolprotocols Replace defined NULL with C++ nullptr Jun 20, 2018
scripts CI: Install only cuda-nvcc instead of cuda-core Jun 4, 2018
.bumpversion.cfg Bump version: 0.15.0.dev11 → 0.16.0.dev0 Jun 5, 2018
.clang-format Reduce clang-format to minimal size Feb 3, 2018
.gitignore Power usage parameterized: -HWMON 0 works as before and -HWMON 1 show… Feb 17, 2018
.gitmodules Remove the unused `evmjit` submodule. Mar 31, 2018
.travis.yml Travis CI: Build with g++-7, upgrade CUDA to 9.2 May 22, 2018
BuildInfo.h.in Simplify buildinfo generation May 10, 2017
CHANGELOG.md Add feature to changelog Jun 6, 2018
CMakeLists.txt Bump version: 0.15.0.dev11 → 0.16.0.dev0 Jun 5, 2018
CODEOWNERS Add CODEOWNERS for D-Bus Aug 26, 2017
LICENSE Clarify license Jan 30, 2018
README.md Update README.md Jun 19, 2018
appveyor.yml Tweak docs. Jun 17, 2018
circle.yml Circle CI: Use 9.2-devel-ubuntu18.04 docker image May 22, 2018

README.md

ethminer

standard-readme compliant Gitter Releases

Ethereum miner with OpenCL, CUDA and stratum support

Ethminer is an Ethash GPU mining worker: with ethminer you can mine every coin which relies on an Ethash Proof of Work thus including Ethereum, Ethereum Classic, Metaverse, Musicoin, Ellaism, Pirl, Expanse and others. This is the actively maintained version of ethminer. It originates from cpp-ethereum project (where GPU mining has been discontinued) and builds on the improvements made in Genoil's fork. See FAQ for more details.

Features

  • OpenCL mining
  • Nvidia CUDA mining
  • realistic benchmarking against arbitrary epoch/DAG/blocknumber
  • on-GPU DAG generation (no more DAG files on disk)
  • stratum mining without proxy
  • OpenCL devices picking
  • farm failover (getwork + stratum)

Table of Contents

Install

Releases

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. The ethminer is ready to go.

Builds Release Date
Last GitHub release GitHub Release Date
Stable GitHub release GitHub Release Date

Usage

The ethminer is a command line program. This means you launch it either from a Windows command prompt or Linux console, or create shortcuts to predefined command lines using a Linux Bash script or Windows batch/cmd file. For a full list of available command, please run:

ethminer --help

Examples connecting to pools

Check our samples to see how to connect to different pools.

Build

Continuous Integration and development builds

CI OS Status Development builds
Travis CI Linux, macOS Travis CI ✗ No build artifacts, Amazon S3 is needed for this
AppVeyor Windows AppVeyor ✓ Build artifacts available for all PRs and branches

The AppVeyor system automatically builds a Windows .exe for every commit. The latest version is always available on the landing page or you can browse the history to access previous builds.

To download the .exe on a build under JOB NAME select Configuration: Release, choose ARTIFACTS then download the zip file.

Building from source

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

Maintainers & Authors

Gitter

The list of current and past maintainers, authors and contributors to the ethminer project. Ordered alphabetically. Contributors statistics since 2015-08-20.

Name Contact
Andrea Lanfranchi @AndreaLanfranchi ETH: 0xa7e593bde6b5900262cf94e4d75fb040f7ff4727
EoD @EoD
Genoil @Genoil
goobur @goobur
Marius van der Wijden @MariusVanDerWijden ETH: 0x57d22b967c9dc64e5577f37edf1514c2d8985099
Paweł Bylica @chfast ETH: 0x8FB24C5b5a75887b429d886DBb57fd053D4CF3a2
Philipp Andreas @smurfy
Stefan Oberhumer @StefanOberhumer

Contribute

Gitter

To meet the community, ask general questions and chat about ethminer join the ethminer channel on Gitter.

All bug reports, pull requests and code reviews are very much welcome.

License

Licensed under the GNU General Public License, Version 3.

F.A.Q

Why is my hashrate with Nvidia cards on Windows 10 so low?

The new WDDM 2.x driver on Windows 10 uses a different way of addressing the GPU. This is good for a lot of things, but not for ETH mining.

  • For Kepler GPUs: I actually don't know. Please let me know what works best for good old Kepler.
  • For Maxwell 1 GPUs: Unfortunately the issue is a bit more serious on the GTX750Ti, already causing suboptimal performance on Win7 and Linux. Apparently about 4MH/s can still be reached on Linux, which, depending on ETH price, could still be profitable, considering the relatively low power draw.
  • For Maxwell 2 GPUs: There is a way of mining ETH at Win7/8/Linux speeds on Win10, by downgrading the GPU driver to a Win7 one (350.12 recommended) and using a build that was created using CUDA 6.5.
  • For Pascal GPUs: You have to use the latest WDDM 2.1 compatible drivers in combination with Windows 10 Anniversary edition in order to get the full potential of your Pascal GPU.

Why is a GTX 1080 slower than a GTX 1070?

Because of the GDDR5X memory, which can't be fully utilized for ETH mining (yet).

Are AMD cards also affected by slowdowns with increasing DAG size?

Only GCN 1.0 GPUs (78x0, 79x0, 270, 280), but in a different way. You'll see that on each new epoch (30K blocks), the hashrate will go down a little bit.

Can I still mine ETH with my 2GB GPU?

Not really, your VRAM must be above the DAG size (Currently about 2.15 GB.) to get best performance. Without it severe hash loss will occur.

What are the optimal launch parameters?

The default parameters are fine in most scenario's (CUDA). For OpenCL it varies a bit more. Just play around with the numbers and use powers of 2. GPU's like powers of 2.

What does the --cuda-parallel-hash flag do?

@davilizh made improvements to the CUDA kernel hashing process and added this flag to allow changing the number of tasks it runs in parallel. These improvements were optimised for GTX 1060 GPUs which saw a large increase in hashrate, GTX 1070 and GTX 1080/Ti GPUs saw some, but less, improvement. The default value is 4 (which does not need to be set with the flag) and in most cases this will provide the best performance.

What is ethminer's relationship with Genoil's fork?

Genoil's fork was the original source of this version, but as Genoil is no longer consistently maintaining that fork it became almost impossible for developers to get new code merged there. In the interests of progressing development without waiting for reviews this fork should be considered the active one and Genoil's as legacy code.

Can I CPU Mine?

No, use geth, the go program made for ethereum by ethereum.

CUDA GPU order changes sometimes. What can I do?

There is an environment var CUDA_DEVICE_ORDER which tells the Nvidia CUDA driver how to enumerates the graphic cards. The following values are valid:

  • FASTEST_FIRST (Default) - causes CUDA to guess which device is fastest using a simple heuristic.
  • PCI_BUS_ID - orders devices by PCI bus ID in ascending order.

To prevent some unwanted changes in the order of your CUDA devices you might set the environment variable to PCI_BUS_ID. This can be done with one of the 2 ways:

  • Linux:

    • Adapt the /etc/environment file and add a line CUDA_DEVICE_ORDER=PCI_BUS_ID
    • Adapt your start script launching ethminer and add a line export CUDA_DEVICE_ORDER=PCI_BUS_ID
  • Windows:

    • Adapt your environment using the control panel (just search setting environment windows control panel using your favorite search engine)
    • Adapt your start (.bat) file launching ethminer and add a line set CUDA_DEVICE_ORDER=PCI_BUS_ID or setx CUDA_DEVICE_ORDER PCI_BUS_ID. For more info about set see here, for more info about setx see here
  1. Insufficient CUDA driver

    Error: Insufficient CUDA driver: 9010

    You have to upgrade your Nvidia drivers. On Linux, install nvidia-396 package or newer.