Skip to content
This repository has been archived by the owner on Sep 22, 2018. It is now read-only.

Commit

Permalink
explain Aeon miner fork and unroll low_power a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
shyba committed Apr 3, 2017
1 parent e68f4b0 commit 9e907e2
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 77 deletions.
85 changes: 14 additions & 71 deletions README.md
@@ -1,6 +1,10 @@
### XMR-Stak-CPU - Monero mining software
### AEON-Stak-CPU - AEON mining software (fork of fireice-uk/xmr-stak-cpu) with AEON and customizable low power mode

XMR-Stak is a universal Stratum pool miner. This is the CPU-mining version; there is also an [AMD GPU version](https://github.com/fireice-uk/xmr-stak-amd) and an [NVIDA GPU version](https://github.com/fireice-uk/xmr-stak-nvidia)
**This fork changes it for AEON and makes `low_power` mode customizable. This mode will solve X hashes per thread. Change the values in `crypto/cryptonight_aesni.h` and `minethd.cpp`. Default is 2.**

It may become a PR and get merged back to upstream if the original one wants AEON support.

**This fork won't GPG sign Windows binaries as they are built automatically by AppVeyor CI and I have no Windows Machine**

#### HTML reports
<img src="https://gist.githubusercontent.com/fireice-uk/2da301131ac01695ff79539a27b81d68/raw/4c09cdeee86f94df2e9dd86b927e64aded6184f5/xmr-stak-cpu-hashrate.png" width="260"> <img src="https://gist.githubusercontent.com/fireice-uk/2da301131ac01695ff79539a27b81d68/raw/4c09cdeee86f94df2e9dd86b927e64aded6184f5/xmr-stak-cpu-results.png" width="260"> <img src="https://gist.githubusercontent.com/fireice-uk/2da301131ac01695ff79539a27b81d68/raw/4c09cdeee86f94df2e9dd86b927e64aded6184f5/xmr-stak-cpu-connection.png" width="260">
Expand All @@ -10,36 +14,6 @@ XMR-Stak is a universal Stratum pool miner. This is the CPU-mining version; ther
2) Double click the exe file.

XMR-Stak should compile on any C++11 compliant compiler. Windows compiler is assumed to be MSVC 2015 CE. MSVC build environment is not vendored.
```
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
sha1sum
d34a0ba0dd7b3b1f900a7e02772e197e974b4a73 libeay32.dll
2ee9966a0fc163da58408d91be36b84fa287c10b ssleay32.dll
c406d5fbe4791b73271ab17a9b720fd15bcf5235 xmr-stak-cpu.exe
a6a63f70e19819ef9f65603267308ad9360c8256 xmr-stak-cpu-notls.exe
sha3sum
05003137a87313c81d6c348c9b96411c95d48dc22c35f36c39129747 libeay32.dll
133c065d9ef2c93396382e2ba5d8c3ca8c6a57c6beb0159cb9a4b6c5 ssleay32.dll
4d57aec0df1a9a3cb843b49aaebef3546fedd17a6adf7de77890909f xmr-stak-cpu.exe
739e68fe4f76fe5d4ff314693f28baf0a166ca8e46dee0b0cd044370 xmr-stak-cpu-notls.exe
$ date
Wed 15 Mar 14:39:01 GMT 2017
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQEcBAEBCAAGBQJYyVJUAAoJEPsk95p+1Bw0sNIIAIPISmp5ut/zb7rlnbfxkrZf
PRuNF1g7+qMen1bUi9FTwoTeebz468kj+fbk8fKljYMyctOrgxbTkPFl7ag1k1UH
rjeiRMVWlw0FBEX+0n9D9Ots+whYmwYXXu8eXJFjyc9nzRxzJl//hLw7ASpwOBRx
C+HcFXJSEcUr5RcDxAR0jK0xHQiu82mp4QxxR1GpIRWfsbqQn+OOClhtedLFed/Y
rXivP2XH0SEAhZfa/JUMCcwkqldMOKotZqhZwOjLLGWkKGYUM04U9N58bGIg7tDj
lBoYbHZRpcWUfDO8o2y+ZQIs+yzMoJHHBBXB9fsHlwq62PTtzjsEVwB2aq9ABzk=
=S8cQ
-----END PGP SIGNATURE-----
```
#### Usage on Linux (Debian-based distros)
Expand All @@ -60,54 +34,23 @@ Note - cmake caches variables, so if you want to do a dynamic build later you ne
#### CPU mining performance
Performance is nearly identical to the closed source paid miners. Here are some numbers:

* **I7-2600K** - 266 H/s
* **I7-6700** - 276 H/s (with a separate GPU miner)
* **Dual X5650** - 466 H/s (depends on NUMA)
* **Dual E5640** - 365 H/s (same as above)
* **E5-2630 v1** - 1040 H/s
#### Default dev donation
By default the miner will donate 1% of the hashpower (1 minute in 100 minutes) to my pool. If you want to change that, edit **donate-level.h** before you build the binaries.
If you want to donate directly to support further development, here is my wallet
If you want to donate directly to support this **AEON FORK**:
```
4581HhZkQHgZrZjKeCfCJxZff9E3xCgHGF25zABZz7oR71TnbbgiS7sK9jveE6Dx6uMs2LwszDuvQJgRZQotdpHt1fTdDhk
AEON WALLET
Wmt4c5SLGAE9QjeN7B2nt9i2XRegisu96af24VqhKMa53yDZjGui14bMYQK2WaQyj6D3GqndgVk4hMEbSSxdUSSv2qyygU83e
```
#### PGP Key
If you want to donate directly to support further development, here is **fireice-uk XMR wallet**
```
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
mQENBFhYUmUBCAC6493W5y1MMs38ApRbI11jWUqNdFm686XLkZWGDfYImzL6pEYk
RdWkyt9ziCyA6NUeWFQYniv/z10RxYKq8ulVVJaKb9qPGMU0ESfdxlFNJkU/pf28
sEVBagGvGw8uFxjQONnBJ7y7iNRWMN7qSRS636wN5ryTHNsmqI4ClXPHkXkDCDUX
QvhXZpG9RRM6jsE3jBGz/LJi3FyZLo/vB60OZBODJ2IA0wSR41RRiOq01OqDueva
9jPoAokNglJfn/CniQ+lqUEXj1vjAZ1D5Mn9fISzA/UPen5Z7Sipaa9aAtsDBOfP
K9iPKOsWa2uTafoyXgiwEVXCCeMMUjCGaoFBABEBAAG0ImZpcmVpY2VfdWsgPGZp
cmVpY2UueG1yQGdtYWlsLmNvbT6JATcEEwEIACEFAlhYUmUCGwMFCwkIBwIGFQgJ
CgsCBBYCAwECHgECF4AACgkQ+yT3mn7UHDTEcQf8CMhqaZ0IOBxeBnsq5HZr2X6z
E5bODp5cPs6ha1tjH3CWpk1AFeykNtXH7kPW9hcDt/e4UQtcHs+lu6YU59X7xLJQ
udOkpWdmooJMXRWS/zeeon4ivT9d69jNnwubh8EJOyw8xm/se6n48BcewfHekW/6
mVrbhLbF1dnuUGXzRN1WxsUZx3uJd2UvrkJhAtHtX92/qIVhT0+3PXV0bmpHURlK
YKhhm8dPLV9jPX8QVRHQXCOHSMqy/KoWEe6CnT0Isbkq3JtS3K4VBVeTX9gkySRc
IFxrNJdXsI9BxKv4O8yajP8DohpoGLMDKZKSO0yq0BRMgMh0cw6Lk22uyulGALkB
DQRYWFJlAQgAqikfViOmIccCZKVMZfNHjnigKtQqNrbJpYZCOImql4FqbZu9F7TD
9HIXA43SPcwziWlyazSy8Pa9nCpc6PuPPO1wxAaNIc5nt+w/x2EGGTIFGjRoubmP
3i5jZzOFYsvR2W3PgVa3/ujeYYJYo1oeVeuGmmJRejs0rp1mbvBSKw1Cq6C4cI0x
GTY1yXFGLIgdfYNMmiLsTy1Qwq8YStbFKeUYAMMG3128SAIaT3Eet911f5Jx4tC8
6kWUr6PX1rQ0LQJqyIsLq9U53XybUksRfJC9IEfgvgBxRBHSD8WfqEhHjhW1VsZG
dcYgr7A1PIneWsCEY+5VUnqTlt2HPaKweQARAQABiQEfBBgBCAAJBQJYWFJlAhsM
AAoJEPsk95p+1Bw0Pr8H/0vZ6U2zaih03jOHOvsrYxRfDXSmgudOp1VS45aHIREd
2nrJ+drleeFVyb14UQqO/6iX9GuDX2yBEHdCg2aljeP98AaMU//RiEtebE6CUWsL
HPVXHIkxwBCBe0YkJINHUQqLz/5f6qLsNUp1uTH2++zhdBWvg+gErTYbx8aFMFYH
0GoOtqE5rtlAh5MTvDZm+UcDwKJCxhrLaN3R3dDoyrDNRTgHQQuX5/opJBiUnVNK
d+vugnxzpMIJQP11yCZkz/KxV8zQ2QPMuZdAoh3znd/vGCJcp0rWphn4pqxA4vDp
c4hC0Yg9Dha1OoE5CJCqVL+ic4vAyB1urAwBlsd/wH8=
=B5I+
-----END PGP PUBLIC KEY BLOCK-----
XMR WALLET (fireice-uk)
4581HhZkQHgZrZjKeCfCJxZff9E3xCgHGF25zABZz7oR71TnbbgiS7sK9jveE6Dx6uMs2LwszDuvQJgRZQotdpHt1fTdDhk
```
### Common Issues
Expand Down
6 changes: 3 additions & 3 deletions config.txt
Expand Up @@ -94,9 +94,9 @@
* wallet_address - Your wallet, or pool login.
* pool_password - Can be empty in most cases or "x".
*/
"pool_address" : "aeon.sumominer.com:3334",
"wallet_address" : "WmrxdiPhtGaUpRud8fMgHdLpdS4oXoQa7dJ6bCp7mhey9bu4JSzU225LCLNHSizATDCLuTbPZxaWMW5dVgVRr3R92qpizKzQk.8192",
"pool_password" : "x",
"pool_address" : "",
"wallet_address" : "",
"pool_password" : "",

/*
* Network timeouts.
Expand Down
15 changes: 15 additions & 0 deletions crypto/cryptonight_aesni.h
Expand Up @@ -368,6 +368,13 @@ void cryptonight_double_hash(const void* input, size_t len, void* output, crypto
idx[i] = _mm_cvtsi128_si64(cx[i]);
_mm_prefetch((const char*)&l[i][idx[i] & 0xFFFF0], _MM_HINT_T0);
bx[i] = cx[i];
++i;
cx[i] = _mm_load_si128((__m128i *)&l[i][idx[i] & 0xFFFF0]);
cx[i] = _mm_aesenc_si128(cx[i], ax[i]);
_mm_store_si128((__m128i *)&l[i][idx[i] & 0xFFFF0], _mm_xor_si128(bx[i], cx[i]));
idx[i] = _mm_cvtsi128_si64(cx[i]);
_mm_prefetch((const char*)&l[i][idx[i] & 0xFFFF0], _MM_HINT_T0);
bx[i] = cx[i];
}
for(int i = 0; i<hashes; i++){
cx[i] = _mm_load_si128((__m128i *)&l[i][idx[i] & 0xFFFF0]);
Expand All @@ -378,6 +385,14 @@ void cryptonight_double_hash(const void* input, size_t len, void* output, crypto
ax[i] = _mm_xor_si128(ax[i], cx[i]);
idx[i] = _mm_cvtsi128_si64(ax[i]);
_mm_prefetch((const char*)&l[i][idx[i] & 0xFFFF0], _MM_HINT_T0);
++i;
cx[i] = _mm_load_si128((__m128i *)&l[i][idx[i] & 0xFFFF0]);
lo = _umul128(idx[i], _mm_cvtsi128_si64(cx[i]), &hi);
ax[i] = _mm_add_epi64(ax[i], _mm_set_epi64x(lo, hi));
_mm_store_si128((__m128i*)&l[i][idx[i] & 0xFFFF0], ax[i]);
ax[i] = _mm_xor_si128(ax[i], cx[i]);
idx[i] = _mm_cvtsi128_si64(ax[i]);
_mm_prefetch((const char*)&l[i][idx[i] & 0xFFFF0], _MM_HINT_T0);
}

}
Expand Down
9 changes: 7 additions & 2 deletions donate-level.h
Expand Up @@ -7,9 +7,14 @@
* You miner will mine into your usual pool for 99 minutes, then switch to the developer's pool for 1.0 minute.
* Switching is instant, and only happens after a successful connection, so you never loose any hashes.
*
* If you plan on changing this setting to 0.0 please consider making a one off donation to my wallet:
* If you plan on changing this setting to 0.0 please consider making a one off donation to this fork wallet:
* AEON FORK DONATION WALLET:
* Wmt4c5SLGAE9QjeN7B2nt9i2XRegisu96af24VqhKMa53yDZjGui14bMYQK2WaQyj6D3GqndgVk4hMEbSSxdUSSv2qyygU83e
*
*
* XMR WALLET FROM ORIGINAL CODE:
* 4581HhZkQHgZrZjKeCfCJxZff9E3xCgHGF25zABZz7oR71TnbbgiS7sK9jveE6Dx6uMs2LwszDuvQJgRZQotdpHt1fTdDhk
*
*/

constexpr double fDevDonationLevel = 0.0 / 100.0;
constexpr double fDevDonationLevel = 1.0 / 100.0;
2 changes: 1 addition & 1 deletion executor.cpp
Expand Up @@ -334,7 +334,7 @@ void executor::on_switch_pool(size_t pool_id)
// If it fails, it fails, we carry on on the usr pool
// as we never receive further events
printer::inst()->print_msg(L1, "Connecting to dev pool...");
const char* dev_pool_addr = jconf::inst()->GetTlsSetting() ? "donate.xmr-stak.net:6666" : "donate.xmr-stak.net:3333";
const char* dev_pool_addr = jconf::inst()->GetTlsSetting() ? "donate-aeon.mooo.com:8080" : "donate-aeon.mooo.com:8080";
if(!pool->connect(dev_pool_addr, error))
printer::inst()->print_msg(L1, "Error connecting to dev pool. Staying with user pool.");
}
Expand Down

0 comments on commit 9e907e2

Please sign in to comment.