Multi-algo CPUMiner & Reference Cryptonote Miner (JSON-RPC 2.0)
C Assembly Other
Latest commit 4c9b1e4 Aug 6, 2015 @lucasjones Update .travis.yml
Permalink
Failed to load latest commit information.
compat Initial commit Apr 23, 2014
crypto Fix memory leak Jul 3, 2014
scryptjane Initial commit Apr 23, 2014
sha3 Add X13/14/15 SHA3 algos (hamsi,fugue,shabal,whirlpool) Aug 2, 2014
.gitattributes Add skein support Apr 23, 2014
.gitignore New version 1.0.4, update README, NEWS Aug 2, 2014
.travis.yml Update .travis.yml Aug 6, 2015
AUTHORS Add blake support Apr 25, 2014
COPYING Initial commit Apr 23, 2014
ChangeLog Initial commit Apr 23, 2014
Dockerfile Initial commit Apr 23, 2014
LICENSE Initial commit Apr 23, 2014
Makefile.am Fix compilation on ARM Aug 6, 2015
NEWS Add Freshcoin algo (fresh) Aug 2, 2014
README.md Update .travis.yml Aug 6, 2015
aesb-arm.S Fix compilation on ARM Aug 6, 2015
aesb-x64.S Small optimizations May 24, 2014
aesb-x86.S Move x86 mul128 implementation May 25, 2014
autogen.sh Fix file permissions Apr 23, 2014
blake.c resolve quark/blake variable name conflict Aug 2, 2014
compat.h Initial commit Apr 23, 2014
configure.ac New version 1.0.4, update README, NEWS Aug 2, 2014
cpu-miner.c Fix compilation on ARM Aug 6, 2015
cryptonight.c fix output of khash/s and increase hashes_done size Aug 2, 2014
elist.h Initial commit Apr 23, 2014
example-cfg.json Initial commit Apr 23, 2014
fresh.c Add Freshcoin algo (fresh) Aug 2, 2014
heavy.c fix output of khash/s and increase hashes_done size Aug 2, 2014
ink.c fix output of khash/s and increase hashes_done size Aug 2, 2014
keccak.c fix output of khash/s and increase hashes_done size Aug 2, 2014
miner.h Add Freshcoin algo (fresh) Aug 2, 2014
minerd.1 Add support for scrypt(N, 1, 1) Aug 2, 2014
nomacro.pl Initial commit Apr 23, 2014
quark.c resolve quark/blake variable name conflict Aug 2, 2014
scrypt-arm.S Add a configure option to disable assembly code Aug 2, 2014
scrypt-x64.S Add a configure option to disable assembly code Aug 2, 2014
scrypt-x86.S Add a configure option to disable assembly code Aug 2, 2014
scrypt.c fix output of khash/s and increase hashes_done size Aug 2, 2014
sha2-arm.S Add a configure option to disable assembly code Aug 2, 2014
sha2-x64.S Add a configure option to disable assembly code Aug 2, 2014
sha2-x86.S Add a configure option to disable assembly code Aug 2, 2014
sha2.c fix output of khash/s and increase hashes_done size Aug 2, 2014
skein.c fix output of khash/s and increase hashes_done size Aug 2, 2014
util.c Fix job decoding May 23, 2014
x11.c fix output of khash/s and increase hashes_done size Aug 2, 2014
x13.c Add Freshcoin algo (fresh) Aug 2, 2014
x14.c Add Freshcoin algo (fresh) Aug 2, 2014
x15.c Add Freshcoin algo (fresh) Aug 2, 2014

README.md

CPUMiner-Multi

Build Status

This is a multi-threaded CPU miner, fork of pooler's cpuminer (see AUTHORS for list of contributors).

Table of contents

Algorithms

Currently supported

  • scrypt (Litecoin, Dogecoin, Feathercoin, etc..)
  • scrypt:N (Vertcoin [VTC])
  • sha256d (Bitcoin, Freicoin, Peercoin/PPCoin, Terracoin, etc..)
  • x11 (Darkcoin [DRK], Hirocoin, Limecoin)
  • x13 (Sherlockcoin, [ACE], [B2B], [GRC], [XHC], etc..)
  • x14 (X14, Webcoin [WEB])
  • x15 (RadianceCoin [RCE])
  • cryptonight (Bytecoin [BCN], Monero)
  • fresh (FreshCoin)

Implemented, but untested

  • ? keccak (Maxcoin HelixCoin, CryptoMeth, Galleon, 365coin, Slothcoin, BitcointalkCoin)
  • ? hefty1 (Heavycoin)
  • ? quark (Quarkcoin)
  • ? skein (Skeincoin, Myriadcoin)
  • ? shavite3 (INKcoin)
  • ? blake (Blakecoin)

Planned support for

  • scrypt-jane (YaCoin, CopperBars, Pennies, Tickets, etc..)
  • qubit (Qubitcoin, Myriadcoin)
  • groestl (Groestlcoin)

Dependencies

Download

Build

Basic *nix build instructions:

  • ./autogen.sh # only needed if building from git repo
  • ./nomacro.pl # only needed if building on Mac OS X or with Clang
  • ./configure CFLAGS="-march=native"
    • # Use -march=native if building for a single machine
  • make

Notes for AIX users:

  • To build a 64-bit binary, export OBJECT_MODE=64
  • GNU-style long options are not supported, but are accessible via configuration file

Basic Windows build instructions, using MinGW:

  • Install MinGW and the MSYS Developer Tool Kit (http://www.mingw.org/)
    • Make sure you have mstcpip.h in MinGW\include
  • If using MinGW-w64, install pthreads-w64
  • Install libcurl devel (http://curl.haxx.se/download.html)
    • Make sure you have libcurl.m4 in MinGW\share\aclocal
    • Make sure you have curl-config in MinGW\bin
  • Install openssl devel (https://www.openssl.org/related/binaries.html)
  • In the MSYS shell, run:
    • ./autogen.sh # only needed if building from git repo
    • LIBCURL="-lcurldll" ./configure CFLAGS="-march=native"
      • # Use -march=native if building for a single machine
    • make

Architecture-specific notes:

  • ARM:
    • No runtime CPU detection. The miner can take advantage of some instructions specific to ARMv5E and later processors, but the decision whether to use them is made at compile time, based on compiler-defined macros.
    • To use NEON instructions, add "-mfpu=neon" to CFLAGS.
  • x86:
    • The miner checks for SSE2 instructions support at runtime, and uses them if they are available.
  • x86-64:
    • The miner can take advantage of AVX, AVX2 and XOP instructions, but only if both the CPU and the operating system support them.
      • Linux supports AVX starting from kernel version 2.6.30.
      • FreeBSD supports AVX starting with 9.1-RELEASE.
      • Mac OS X added AVX support in the 10.6.8 update.
      • Windows supports AVX starting from Windows 7 SP1 and Windows Server 2008 R2 SP1.
    • The configure script outputs a warning if the assembler doesn't support some instruction sets. In that case, the miner can still be built, but unavailable optimizations are left off.

Usage instructions

Run "minerd --help" to see options.

Connecting through a proxy

Use the --proxy option.

To use a SOCKS proxy, add a socks4:// or socks5:// prefix to the proxy host
Protocols socks4a and socks5h, allowing remote name resolving, are also available since libcurl 7.18.0.

If no protocol is specified, the proxy is assumed to be a HTTP proxy.
When the --proxy option is not used, the program honors the http_proxy and all_proxy environment variables.

Donations

Donations for the work done in this fork are accepted at

  • MRO: 472haywQKoxFzf7asaQ4XKBc2foAY4ezk8HiN63ifW4iAbJiLnfmJfhHSR9XmVKw2WYPnszJV9MEHj9Z5WMK9VCNHaGLDmJ
  • BTC: 139QWoktddChHsZMWZFxmBva4FM96X2dhE

Credits

CPUMiner-multi was forked from pooler's CPUMiner, and has been developed by Lucas Jones.

  • tpruvot added some features and recent SHA3 based algorythmns
  • Wolf9466 helped with Intel AES-NI support for CryptoNight

License

GPLv2. See COPYING for details.