Skip to content
Open

new #23

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
fe118f0
Tighten up that loop in fast_aesb_pseudu_round_mut().
May 22, 2014
8f853fd
I oopsed in the Windows code last commit. Fixed.
May 22, 2014
db1483f
Aligned our shit and used faster SSE load ops.
May 22, 2014
695589f
Merge pull request #4 from wolf9466/master
lucasjones May 22, 2014
243abde
Merge pull request #3 from erkmos/osxfix
lucasjones May 22, 2014
3c07548
Merge branch 'master' of github.com:LucasJones/cpuminer-multi
lucasjones May 23, 2014
6341e62
Fix job decoding
lucasjones May 23, 2014
df43d59
Unlock mutex only after lock
lucasjones May 23, 2014
c9c0770
Fix authentication issue
lucasjones May 23, 2014
4951c4d
Job id bugfix
lucasjones May 24, 2014
2dec03d
Fix redefinition error
lucasjones May 24, 2014
ed24255
Fix empty job id
lucasjones May 24, 2014
98fcef4
Merge pull request #6 from LucasJones/dev
lucasjones May 24, 2014
fd672de
Fix JSON-RPC 2.0 tcp sleep bug
lucasjones May 24, 2014
22b64d6
Create placeholder aesb-x86.S
lucasjones May 24, 2014
18d25e0
Small optimizations
lucasjones May 24, 2014
dbc99c4
Update README.md
lucasjones May 24, 2014
94db93c
Removed code for checking return value of hash functions - jh_hash() …
May 24, 2014
a7a47cb
Removed the slow, unoptimized oaes_lib calls from cryptonight_hash_ct…
May 24, 2014
79f7c50
Changed cryptnight_hash() to use AES-NI if available. It's only used …
May 24, 2014
fff4583
Added myself to AUTHORS and added some CryptoNight specific build-tim…
May 24, 2014
09950a5
Change two unaligned SSE stores into aligned ones, as the addresses i…
May 25, 2014
16d06ec
Removed those awful macros generating repeated calls to fast_aesb_pse…
May 25, 2014
8f24d51
Huge speedup - align loops so they execute faster, especially that hu…
May 26, 2014
cb198cb
Align ALL the things! Seriously, it helps a lot. Also, the stupid fuc…
May 26, 2014
a9b7a5f
Fixes a build error on OSes with brain dead designers who don't put l…
May 26, 2014
d33902b
Most of the time is taken up in that loop. I optimized it and rewrote…
May 26, 2014
974348b
Fixed some things in the autotools scripts that were causing warnings…
May 26, 2014
74a4002
Finally figured out how to add an autoconf option. Added the ability …
May 26, 2014
aa8688f
Changed default to use the number of cores minus one.
May 27, 2014
dda51fb
Updated the README.md.
May 28, 2014
c50b408
Forgot something in the last commit.
May 28, 2014
5e089e1
Forgot a newline in README.md.
May 28, 2014
3997f45
Small speedups - most notably the removal of the length parameter in …
May 28, 2014
e788fbc
Changed CFLAGS - does way better now.
May 28, 2014
97d6f52
More optimizations.
May 28, 2014
e5d5ba2
Oopsed. Freed something that was not allocated on the heap.
May 28, 2014
5f81481
Updated README with more credits.
May 28, 2014
9ddae56
Memory leak bugfix that is also a nice optimization.
May 28, 2014
3862e61
Remove some redundant CFLAGS.
May 29, 2014
6d3507e
I'm kinda half asleep, but I remember doing a whole bunch of optimiza…
May 29, 2014
5e469bf
Merge branch 'master' of https://github.com/wolf9466/cpuminer-multi
May 29, 2014
6934615
Fixed an error in the README.md.
May 29, 2014
e09583c
Use hugepages on Windows.
May 30, 2014
3822017
Updated README.md, MRO's symbol is now XMR.
Jun 5, 2014
e5266c5
Fixes for Macs.
Jun 6, 2014
e1c460c
Fixed a bug in the earlier fixes.
Jun 6, 2014
f094b3a
More fixes.
Jun 6, 2014
d547f95
Speedup for non-AES-NI.
Jun 6, 2014
52ef283
Added an else branch in the code for Macs.
Jun 6, 2014
ce4bee4
Fixed compile error.
Jun 6, 2014
d78dfaa
Don't assemble or link in aesni.S anymore, it's not used.
Jun 8, 2014
12dc73f
Speedups for non-AES-NI implementation.
Jun 8, 2014
fc4433c
Up to 25% speedup on linux if you're lucky.
Jun 8, 2014
10f7ac5
Various optimizations and work done to improve hashrate stability - p…
Jun 8, 2014
1be93e8
Remove the cpu affinity thing. Seriously, someone must have thrown th…
Jun 8, 2014
89a9cd2
More optimized CFLAGS.
Jun 8, 2014
b60ec34
Optimized generating work for cryptonight at the expense of totally w…
Jun 8, 2014
7d39164
Removed per thread output, as it was done inside the loop, and printi…
Jun 9, 2014
8a84c8c
Minor speed boost.
Jun 9, 2014
3aaa285
Build fix for Windows.
Jun 9, 2014
39733ad
Changed address.
Jun 14, 2014
1624eaa
Lowered required autoconf version, 2.68 is fine.
Jun 16, 2014
59007d0
Removed all other algorithms but CryptoNight - algo switch still need…
Jun 18, 2014
0c3a064
Set default algo to cryptonight and removed -a and --algo switches fr…
Jun 19, 2014
4230012
Added a check for AES-NI, so it doesn't just crash if the miner is bu…
Jun 20, 2014
4ad3285
Fixed non-AES-NI implementation.
Jul 8, 2014
ea9ea41
Added an optimization flag I forgot about and had been meaning to add…
Jul 9, 2014
5bec61e
Get rid of that lingering pointless OpenSSL requirement.
Jul 9, 2014
b1cd8e5
Fixed the non-AES-NI implementation - I broke it again a commit or tw…
Jul 9, 2014
6b78eaa
Updated README.md
Jul 12, 2014
54f45bc
New option to disable hugepages and other memory-related calls like m…
Jul 14, 2014
2ee3b29
Updated README.
Jul 21, 2014
977dad2
Tiny bugfix.
Jul 23, 2014
eb1f6c5
No more stratum connection interruption.
sammy007 Feb 24, 2015
6c10b7d
Merge pull request #4 from sammy007/master
wolf9466 Apr 30, 2015
dc6b040
Increase timeout to 600 for upcoming fork
sammy007 Mar 15, 2016
8393e03
Merge pull request #5 from sammy007/master
wolf9466 Mar 16, 2016
8a91eb3
Updated XMR donation address.
Aug 29, 2016
b9370f6
example config string and without-aes-ni instructions
sling00 Feb 20, 2017
821036b
fix typo
sling00 Feb 20, 2017
a6903e8
slightly better format
sling00 Feb 20, 2017
2eb772a
Merge pull request #9 from sling00/master
wolf9466 Feb 20, 2017
2b158fa
Update README.md
wolf9466 Feb 20, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ Neisklar
prettyhatemachine

LucasJones

Wolf9466 (AKA Wolf0 or Wolf`)
59 changes: 20 additions & 39 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@ else
JANSSON_INCLUDES=
endif

AUTOMAKE_OPTIONS= subdir-objects
ACLOCAL_AMFLAGS = -I .

EXTRA_DIST = example-cfg.json nomacro.pl

SUBDIRS = compat

INCLUDES = $(PTHREAD_FLAGS) -fno-strict-aliasing $(JANSSON_INCLUDES)
AM_CPPFLAGS = $(PTHREAD_FLAGS) $(JANSSON_INCLUDES)
AM_CFLAGS = -falign-loops=16 -falign-functions=16 -falign-jumps=16 -falign-labels=16

bin_PROGRAMS = minerd

Expand All @@ -20,50 +24,27 @@ minerd_SOURCES = elist.h \
compat.h \
cpu-miner.c \
util.c \
sha2.c \
scrypt.c \
keccak.c \
heavy.c \
quark.c \
skein.c \
ink.c \
blake.c \
cryptonight.c \
x11.c \
sha3/sph_keccak.c \
sha3/sph_hefty1.c \
sha3/sph_groestl.c \
sha3/sph_skein.c \
sha3/sph_bmw.c \
sha3/sph_jh.c \
sha3/sph_shavite.c \
sha3/sph_blake.c \
sha3/sph_luffa.c \
sha3/sph_cubehash.c \
sha3/sph_simd.c \
sha3/sph_echo.c \
crypto/oaes_lib.c \
cryptonight_common.c \
crypto/c_keccak.c \
crypto/c_groestl.c \
crypto/c_blake256.c \
crypto/c_jh.c \
crypto/c_skein.c \
crypto/hash.c \
crypto/aesb.c
if ARCH_x86
minerd_SOURCES += sha2-x86.S scrypt-x86.S
endif
if ARCH_x86_64
minerd_SOURCES += sha2-x64.S scrypt-x64.S aesb-x64.S
endif
if ARCH_ARM
minerd_SOURCES += sha2-arm.S scrypt-arm.S
crypto/c_skein.c

# These CFLAGS stop the lobotomized implementation from breaking
if USE_LOBOTOMIZED_AES
minerd_SOURCES += cryptonight_lobotomized.c crypto/oaes_lib.c
AM_CFLAGS += -O2 -fno-strict-aliasing
else
AM_CFLAGS += -Ofast -flto -fuse-linker-plugin -funroll-loops -fvariable-expansion-in-unroller -ftree-loop-if-convert-stores -fmerge-all-constants -fbranch-target-load-optimize2 -fsched2-use-superblocks -maes
minerd_SOURCES += cryptonight_aesni.c
endif
minerd_LDFLAGS = $(PTHREAD_FLAGS)

minerd_LDFLAGS = $(AM_LDFLAGS)
minerd_LDADD = @LIBCURL@ @JANSSON_LIBS@ @PTHREAD_LIBS@ @WS2_LIBS@
minerd_CPPFLAGS = @LIBCURL_CPPFLAGS@
minerd_CFLAGS =
minerd_CPPFLAGS = $(AM_CPPFLAGS) @LIBCURL_CPPFLAGS@
minerd_CFLAGS = $(AM_CFLAGS)

if HAVE_WINDOWS
minerd_CFLAGS += -Wl,--stack,10485760
endif
endif
82 changes: 23 additions & 59 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
CPUMiner-Multi
==============

[![Build Status](https://travis-ci.org/LucasJones/cpuminer-multi.svg?branch=master)](https://travis-ci.org/LucasJones/cpuminer-multi)
###NOTE: Wolf's cpuminer-multi is no longer maintained - please use https://github.com/genesismining/sgminer-gm.

This is a multi-threaded CPU miner,
fork of [pooler](//github.com/pooler)'s cpuminer.
This is a multi-threaded CPU miner, fork of [LucasJones](//github.com/lucasjones)' cpuminer-multi.

#### Table of contents

Expand All @@ -20,81 +19,45 @@ fork of [pooler](//github.com/pooler)'s cpuminer.
Algorithms
==========
#### Currently supported
* ✓ __scrypt__ (Litecoin, Dogecoin, Feathercoin, etc..)
* ✓ __sha256d__ (Bitcoin, Freicoin, Peercoin/PPCoin, Terracoin, etc..)
* ✓ __x11__ (Darkcoin [DRK], Hirocoin, Limecoin)
* ✓ __cryptonight__ (Bytecoin [BCN], Monero)

#### 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-n* (Vertcoin [VTC])
* *scrypt-jane* (YaCoin, CopperBars, Pennies, Tickets, etc..)
* *qubit* (Qubitcoin, Myriadcoin)
* *groestl* (Groestlcoin)

Dependencies
============
* libcurl http://curl.haxx.se/libcurl/
* jansson http://www.digip.org/jansson/ (jansson is included in-tree)
* openssl https://www.openssl.org/

Download
========
* Binary releases: https://github.com/LucasJones/cpuminer-multi/releases
* Git tree: https://github.com/LucasJones/cpuminer-multi
* Clone with `git clone https://github.com/LucasJones/cpuminer-multi`
* For binary releases, see Bitcointalk thread: https://bitcointalk.org/index.php?topic=632724
* Git tree: https://github.com/wolf9466/cpuminer-multi
* Clone with `git clone https://github.com/wolf9466/cpuminer-multi`

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="-O3"
* Optimal GCC flags are built in - you only need to use -march=native if you want it
* # Use -march=native if building for a single machine
* With AES-NI:
* CFLAGS="*-march=native*" ./configure
* Without AES-NI:
* CFLAGS="*-march=native*" ./configure --disable-aes-ni

* 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="-O3"
* 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.
* CryptoNight works only on x86 and x86-64.
* If you don't have AES-NI, it's slower. A lot slower, around 1/3rd the speed. This implementation is deprecated and will not be improved.

Usage instructions
==================
Run "minerd --help" to see options.

Example command line
==================
./minerd -a cryptonight -o stratum+tcp://mine.moneropool.com:3333 -p x -u 42QWoLF7pdwMcTXDviJvNkWEHJ4TXnMBh2Cx6HNkVAW57E48Zfw6wLwDUYFDYJAqY7PLJUTz9cHWB5C4wUA7UJPu5wPf4sZ -t `nproc`

### Connecting through a proxy

Use the --proxy option.
Expand All @@ -108,13 +71,14 @@ When the --proxy option is not used, the program honors the http_proxy and all_p
Donations
=========
Donations for the work done in this fork are accepted at
* MRO: `472haywQKoxFzf7asaQ4XKBc2foAY4ezk8HiN63ifW4iAbJiLnfmJfhHSR9XmVKw2WYPnszJV9MEHj9Z5WMK9VCNHaGLDmJ`
* BTC: `139QWoktddChHsZMWZFxmBva4FM96X2dhE`
* XMR: `42QWoLF7pdwMcTXDviJvNkWEHJ4TXnMBh2Cx6HNkVAW57E48Zfw6wLwDUYFDYJAqY7PLJUTz9cHWB5C4wUA7UJPu5wPf4sZ`
* BTC: `1WoLFumNUvjCgaCyjFzvFrbGfDddYrKNR`

Credits
=======
CPUMiner-multi was forked from pooler's CPUMiner, and has been developed by Lucas Jones.
* [Wolf9466](https://github.com/wolf9466) Helped with Intel AES-NI support for CryptoNight
This faster CPUMiner-multi was forked from LucasJones', and has been developed by Wolf.
Special thanks to Intel for helping me with the usage of the AESKEYGENASSIST instruction, which I used to replace the calls to the slow, unoptimized oaes_lib.
Special thanks also to dga for his code with that loop - since it runs over 500,000 times per hash, it's extremely important.

License
=======
Expand Down
57 changes: 0 additions & 57 deletions aesb-x64.S

This file was deleted.

Loading