Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1867 commits
Select commit Hold shift + click to select a range
1fb5be6
Update deps.
xmrig Mar 19, 2024
42f645f
Merge branch 'dev' of github.com:xmrig/xmrig into dev
xmrig Mar 19, 2024
ef9bf2a
Merge branch 'master' of https://github.com/goodmost/xmrig into goodm…
xmrig Mar 20, 2024
3beccae
Merge branch 'goodmost-master' into dev
xmrig Mar 20, 2024
5552e1f
Fix scripts for systems without bash.
xmrig Mar 20, 2024
e65e283
Merge remote-tracking branch 'upstream/dev' into dev
SChernykh Mar 20, 2024
f6c50b5
Fix RandomX crash when compiled with fortify_source
SChernykh Mar 20, 2024
032c28d
Merge remote-tracking branch 'upstream/dev' into dev
SChernykh Mar 20, 2024
b9dd5e3
Merge pull request #3450 from SChernykh/dev
xmrig Mar 20, 2024
b8e4eaa
Fix rapidjson assert.
xmrig Mar 21, 2024
850b43c
Fix build with recent libuv.
xmrig Mar 21, 2024
7a85257
Update hwloc for MSVC builds.
xmrig Mar 22, 2024
3347537
Update CHANGELOG.md
xmrig Mar 22, 2024
0c2ee01
Merge branch 'dev'
xmrig Mar 23, 2024
4ab9329
v6.21.2
xmrig Mar 23, 2024
44eb4f0
Merge branch 'master' into dev
xmrig Mar 23, 2024
1c5786e
v6.21.3-dev
xmrig Mar 23, 2024
1f7e635
Use internal logger for error message.
xmrig Mar 26, 2024
c7c26d9
RandomX: check pointer sizes during JIT initialization
SChernykh Apr 13, 2024
9fbdcc0
Merge pull request #3461 from SChernykh/dev
xmrig Apr 13, 2024
caae7c6
RandomX: correct memcpy size for JIT initialization
SChernykh Apr 14, 2024
1efe7e9
Merge pull request #3462 from SChernykh/dev
xmrig Apr 14, 2024
57f3e9c
Update CHANGELOG.md
xmrig Apr 23, 2024
da2fb33
Merge branch 'dev'
xmrig Apr 23, 2024
7897f10
v6.21.3
xmrig Apr 23, 2024
6972f72
Merge branch 'master' into dev
xmrig Apr 23, 2024
5eaa6c1
v6.21.4-dev
xmrig Apr 23, 2024
2ce16df
Create signal handles after fork() call, replace #3492.
xmrig Jun 4, 2024
a7be8cb
Remove chdir call after fork.
xmrig Jun 4, 2024
2bb07fe
#3515 Update build scripts for OpenSSL.
xmrig Jul 24, 2024
f509524
Make Json::normalize more strict
SChernykh Jul 29, 2024
b4a47d6
Merge pull request #3518 from SChernykh/dev
xmrig Jul 29, 2024
86f5db1
Removed rx/keva
SChernykh Jul 31, 2024
ecef382
Merge pull request #3522 from SChernykh/dev
xmrig Jul 31, 2024
5f6bcfe
add yada constants
pdxwebdev Aug 1, 2024
5342f25
update constants for yadacoin
pdxwebdev Aug 1, 2024
046b2a1
finish updating for yadacoin
pdxwebdev Aug 1, 2024
b108845
fix yada nonce offset
pdxwebdev Aug 1, 2024
92ffcd3
Merge pull request #2411 from pdxwebdev/feature/yadacoin
xmrig Aug 2, 2024
ef6fb72
Fixed ARMv8 compilation
SChernykh Aug 2, 2024
dd7e0e5
Merge pull request #3524 from SChernykh/dev
xmrig Aug 2, 2024
748365d
Added Zen5 detection
SChernykh Aug 3, 2024
4570187
Merge pull request #3525 from SChernykh/dev
xmrig Aug 3, 2024
8da49f2
More clean target parse.
xmrig Aug 4, 2024
98c7757
Don't generate "rx/yada" profile, use the "rx" profile by default.
xmrig Aug 4, 2024
3dfeed4
Sync changes with the proxy.
xmrig Aug 6, 2024
ecb3ec0
Added rx/yada OpenCL support
SChernykh Aug 6, 2024
c5f98fc
Merge pull request #3528 from SChernykh/dev
xmrig Aug 7, 2024
62bcd6e
v6.22.0-dev
xmrig Aug 10, 2024
9da6ea0
Merge branch 'dev'
xmrig Aug 11, 2024
544c393
v6.22.0
xmrig Aug 11, 2024
e682f89
docs: update ghostrider/README.md
eltociear Aug 11, 2024
fe0f690
Merge branch 'master' into dev
xmrig Aug 11, 2024
5776fdc
v6.22.1-dev
xmrig Aug 11, 2024
ef14d55
Merge pull request #3529 from eltociear/patch-1
xmrig Aug 11, 2024
7e4caa8
Merge remote-tracking branch 'remotes/origin/master' into dev
xmrig Aug 11, 2024
17a52fb
Always reset nonce on RandomX dataset change
SChernykh Aug 14, 2024
56baec7
Merge pull request #3531 from SChernykh/dev
xmrig Aug 14, 2024
20d5556
Fixed threads auto-config on Zen5
SChernykh Aug 16, 2024
01bd0d4
Merge pull request #3534 from SChernykh/dev
xmrig Aug 16, 2024
a411ee3
RandomX: tweaks for Zen5
SChernykh Aug 19, 2024
26f4936
Merge pull request #3535 from SChernykh/dev
xmrig Aug 19, 2024
29f9c8c
Added Zen5 to randomx_boost.sh
SChernykh Aug 28, 2024
e0af8f0
Merge pull request #3539 from SChernykh/dev
xmrig Aug 28, 2024
bc1c835
Detect AMD engineering samples in randomx_boost.sh
SChernykh Aug 29, 2024
e1ae367
Merge pull request #3540 from SChernykh/dev
xmrig Aug 29, 2024
e32731b
Update deps
xmrig Oct 20, 2024
8a4792f
Update hwloc for MSVC.
xmrig Oct 21, 2024
a32f9b5
Fixed --version output on ARM.
xmrig Oct 21, 2024
5cf2422
Update CHANGELOG.md
xmrig Oct 22, 2024
1f75d19
Merge branch 'dev'
xmrig Oct 23, 2024
ee65b3d
v6.22.1
xmrig Oct 23, 2024
21c206f
Merge branch 'master' into dev
xmrig Oct 23, 2024
56c447e
v6.22.2-dev
xmrig Oct 23, 2024
40949f2
Fix: don't use NaN in hashrate calculations
SChernykh Oct 23, 2024
8b03750
Merge pull request #3569 from SChernykh/dev
xmrig Oct 23, 2024
77c14c8
Fix number of threads on the new Intel Core Ultra CPUs
SChernykh Oct 25, 2024
c5d8b82
Merge pull request #3571 from SChernykh/dev
xmrig Oct 25, 2024
4234b20
Update CHANGELOG.md
xmrig Nov 3, 2024
200f23b
Merge branch 'dev'
xmrig Nov 3, 2024
f9e990d
v6.22.2
xmrig Nov 3, 2024
cf86a1e
Merge branch 'master' into dev
xmrig Nov 3, 2024
e8bbd13
v6.22.3-dev
xmrig Nov 3, 2024
064cd3e
Fixed and simplified OpenCL GPU type detection.
xmrig Nov 8, 2024
cd2fd9d
Simplified getting PCI topology for the OpenCL backend.
xmrig Nov 8, 2024
4a13a8a
CUDA backend: update RandomX dataset when it changes
SChernykh Dec 18, 2024
0229c65
Merge pull request #3605 from SChernykh/dev
xmrig Dec 18, 2024
16ecb8f
Allow use of the previous CUDA plugin version with a warning.
xmrig Dec 23, 2024
6cfc02d
Optimized autoconfig for AMD CPUs with < 2 MB L3 cache per thread
SChernykh Mar 22, 2025
36fdfa2
Merge pull request #3646 from SChernykh/dev
xmrig Mar 22, 2025
d24e13e
Fixed HttpsClient::flush logic
SChernykh Apr 17, 2025
0d9af33
Merge pull request #3652 from SChernykh/dev
xmrig Apr 17, 2025
46572dc
Fix type of `keccak_f800`
ybh1998 May 29, 2025
77009bd
Merge pull request #3662 from ybh1998/keccak_f800
xmrig May 29, 2025
3362349
Allow run `generate_cl.js` from the `scripts` directory.
xmrig May 29, 2025
35b334d
Fixed compile warning.
xmrig May 30, 2025
a32b688
Update CHANGELOG.md
xmrig Jun 3, 2025
f499155
Merge branch 'dev'
xmrig Jun 4, 2025
6184224
v6.22.3
xmrig Jun 4, 2025
e33334f
Merge branch 'master' into dev
xmrig Jun 4, 2025
0c52d78
v6.22.4-dev
xmrig Jun 4, 2025
184d610
Update rapidjson
xmrig Jun 4, 2025
682834b
Universal fix for NaN and Infinity in JSON output
xmrig Jun 6, 2025
a6a0f80
Fix header path.
xmrig Jun 6, 2025
a7dcbb1
Bump minimum CMake version to 3.10
xmrig Jun 8, 2025
9a71190
Update llhttp to 9.3.0
xmrig Jun 8, 2025
d4e57d9
Fix LLHTTP_EXPORT
xmrig Jun 9, 2025
e4c30eb
Tweaked autoconfig for AMD CPUs with < 2 MB L3 cache per thread
SChernykh Jun 11, 2025
2ab7f85
Merge pull request #3665 from SChernykh/dev
xmrig Jun 11, 2025
064a619
Update deps scripts.
xmrig Jun 11, 2025
650d794
Initial Windows ARM64 support via MSYS2.
xmrig Jun 12, 2025
34b4448
Split BasicCpuInfo_arm.
xmrig Jun 12, 2025
57a4998
Fix Linux build.
xmrig Jun 12, 2025
9e7cf69
Detect CPU name and AES instructions on Windows ARM64.
xmrig Jun 13, 2025
faa3d55
Remove deprecated -Ofast for Clang.
xmrig Jun 13, 2025
3ff41f7
Fixed UTF-8 paths support for the config file with Clang compiler on …
xmrig Jun 14, 2025
dba336a
Update hwloc for MSVC.
xmrig Jun 14, 2025
bcc5581
Better detection of aligned malloc functions
SChernykh Jun 14, 2025
a18fa26
Merge pull request #3666 from SChernykh/dev
xmrig Jun 14, 2025
9c7468d
Fixed user agent string.
xmrig Jun 14, 2025
3b863cf
Fixed __umul128 for MSVC ARM64.
xmrig Jun 14, 2025
d58061c
Add detection for _aligned_malloc.
xmrig Jun 15, 2025
9138690
v6.23.0-dev
xmrig Jun 15, 2025
fc395a5
Update ARM CPUs database.
xmrig Jun 16, 2025
5ed8d79
Update CHANGELOG.md
xmrig Jun 16, 2025
f354b85
Merge branch 'dev'
xmrig Jun 16, 2025
e5a7a69
v6.23.0
xmrig Jun 16, 2025
6bbbcc7
Merge branch 'master' into dev
xmrig Jun 16, 2025
9f3591a
v6.23.1-dev
xmrig Jun 16, 2025
d125d22
Hwloc: fixed detection of L2 cache size for some complex NUMA topologies
SChernykh Jun 17, 2025
48faf0a
Merge pull request #3671 from SChernykh/dev
xmrig Jun 17, 2025
762c435
cflags: Add lax-vector-conversions on ARMv7
benthetechguy Jun 18, 2025
bf44ed5
Merge pull request #3674 from benthetechguy/armhf
xmrig Jun 18, 2025
aba1ad8
Tweaked autoconfig for AMD CPUs with < 2 MB L3 cache per thread, agai…
SChernykh Jun 19, 2025
e28d663
Merge pull request #3677 from SChernykh/dev
xmrig Jun 19, 2025
ec286c7
Improved IPv6 support.
xmrig Jun 20, 2025
9fa66d3
Merge pull request #3678 from xmrig/dns_ip_version
xmrig Jun 20, 2025
545aef0
v6.24.0-dev
xmrig Jun 20, 2025
6a690ba
More DNS cleanup.
xmrig Jun 20, 2025
c69e30c
Update CHANGELOG.md
xmrig Jun 22, 2025
273133a
Merge branch 'dev'
xmrig Jun 23, 2025
6e4a5a6
v6.24.0
xmrig Jun 23, 2025
1676da1
Merge branch 'master' into dev
xmrig Jun 23, 2025
d2363ba
v6.24.1-dev
xmrig Jun 23, 2025
1161f23
Add armv8l to list of 32 bit ARM targets
benthetechguy Jun 24, 2025
2619131
Merge pull request #3680 from benthetechguy/armhf
xmrig Jun 24, 2025
a1ee2fd
Improved LibreSSL support.
xmrig Jun 29, 2025
dd6671b
Merge branch 'dev' of github.com:xmrig/xmrig into dev
xmrig Jun 29, 2025
93f5067
minor Aarch64 JIT changes (better instruction selection, don't emit i…
xtophyr Sep 17, 2025
eeec5ec
undo this change
xtophyr Sep 20, 2025
7abf17c
adjust instruction/register suffixes to compile with gcc-based assemb…
xtophyr Sep 21, 2025
878e83b
Merge branch 'master' of https://github.com/xtophyr/xmrig into xtophy…
xmrig Sep 22, 2025
255565b
Merge branch 'xtophyr-master' into dev
xmrig Sep 22, 2025
da683d8
Solo mining: added support for FCMP++ hardfork
SChernykh Oct 5, 2025
20acfd0
Merge pull request #3718 from SChernykh/dev
xmrig Oct 5, 2025
a659397
Fix: correct FCMP++ version number
SChernykh Oct 5, 2025
6cc4819
Merge pull request #3719 from SChernykh/dev
xmrig Oct 5, 2025
da5a567
Added Zen4 (Hawk Point) CPUs detection
SChernykh Oct 15, 2025
116ba18
Merge pull request #3722 from SChernykh/dev
xmrig Oct 15, 2025
643b65f
RISC-V Intergration
Slayingripper Oct 22, 2025
75b63dd
RISC-V JIT compiler
SChernykh Oct 22, 2025
985fe06
RISC-V: test for instruction extensions
SChernykh Oct 22, 2025
27c8e60
Removed unused files
SChernykh Oct 22, 2025
3ecacf0
Merge pull request #3725 from SChernykh/dev
xmrig Oct 23, 2025
ea83289
Fixed macOS build.
xmrig Oct 23, 2025
a44b21c
Cleanup
xmrig Oct 27, 2025
b02519b
feat: initial support for haiku
Nov 4, 2025
4cdc35f
Merge pull request #3731 from user0-07161/dev-haiku-os-support
xmrig Nov 5, 2025
5115597
Improved compatibility for automatically enabling huge pages on Linux…
xmrig Nov 6, 2025
e88009d
add detection for MSVC/2026
void-512 Nov 12, 2025
db5c6d9
Merge pull request #3733 from void-512/master
xmrig Nov 13, 2025
7ef5142
RISC-V: added vectorized dataset init (activated by setting `init-avx…
SChernykh Nov 30, 2025
7981e4a
Merge pull request #3736 from SChernykh/dev
xmrig Dec 1, 2025
23da1a9
RISC-V: added vectorized soft AES
SChernykh Dec 5, 2025
856813c
Merge pull request #3740 from SChernykh/dev
xmrig Dec 6, 2025
482a1f0
Linux: added support for transparent huge pages
SChernykh Dec 11, 2025
e0564b5
Merge pull request #3743 from SChernykh/dev
xmrig Dec 11, 2025
290a0de
v6.25.0-dev
xmrig Dec 23, 2025
712a5a5
Merge branch 'dev'
xmrig Dec 23, 2025
753859c
v6.25.0
xmrig Dec 23, 2025
5fb0321
Merge branch 'master' into dev
xmrig Dec 23, 2025
9948875
v6.25.1-dev
xmrig Dec 23, 2025
f661e1e
RISC-V: vectorized RandomX main loop
SChernykh Dec 26, 2025
e3d0135
Merge pull request #3746 from SChernykh/dev
xmrig Dec 27, 2025
e1efd3d
RISC-V: auto-detect and use vector code for all RandomX AES functions
SChernykh Dec 27, 2025
eb49237
Merge pull request #3748 from SChernykh/dev
xmrig Dec 28, 2025
d3a84c4
RISC-V: detect and use hardware AES
SChernykh Dec 29, 2025
30ffb9c
Merge pull request #3749 from SChernykh/dev
xmrig Dec 30, 2025
8ccf7de
RISC-V: use vector hardware AES instead of scalar
SChernykh Dec 31, 2025
1bd5912
Merge pull request #3750 from SChernykh/dev
xmrig Jan 1, 2026
e41b28e
Improved RISC-V code
SChernykh Jan 15, 2026
9e5492e
Merge pull request #3757 from SChernykh/dev
xmrig Jan 15, 2026
ed80a8a
RandomX: added VAES-512 support for Zen5
SChernykh Jan 16, 2026
f4845cb
Merge pull request #3758 from SChernykh/dev
xmrig Jan 16, 2026
45d0a15
Optimized VAES code
SChernykh Jan 16, 2026
f35f9d7
Merge pull request #3759 from SChernykh/dev
xmrig Jan 17, 2026
6e6eab1
Fix keepalive timer logic
HashVault Jan 20, 2026
cb75115
fix: cross typos detail below:
oxyzenQ Jan 21, 2026
5feb764
Merge branch 'fix-keepalive-timer' of https://github.com/HashVault/vl…
xmrig Jan 21, 2026
1a04bf2
Merge branch 'pr3762' into dev
xmrig Jan 21, 2026
5ca4828
feat: stability improvements, see detail below
oxyzenQ Jan 21, 2026
c1e3d38
Merge branch 'master' of https://github.com/oxyzenQ/xmrig into pr3764
xmrig Jan 21, 2026
0d9a372
Merge branch 'pr3764' into dev
xmrig Jan 21, 2026
db24bf5
Revert "Merge branch 'pr3764' into dev"
xmrig Jan 21, 2026
67cc6cf
fix: cross typos detail below:
oxyzenQ Jan 21, 2026
5a80c65
Merge pull request #3765 from oxyzenQ/dev-typos
xmrig Jan 22, 2026
9d71358
RandomX v2 + commitments
SChernykh Jan 29, 2026
f16a06e
Merge pull request #3769 from SChernykh/dev
xmrig Jan 30, 2026
cb60019
RandomX v2 (ARM64)
SChernykh Jan 31, 2026
a189d84
Merge pull request #3772 from SChernykh/dev
xmrig Jan 31, 2026
d82d7f3
RandomX v2 (RISC-V)
SChernykh Jan 31, 2026
c2c8080
Merge pull request #3774 from SChernykh/dev
xmrig Feb 1, 2026
42c943c
RandomX v2: added `commitment` field to stratum submit message
SChernykh Feb 1, 2026
316a367
Merge pull request #3775 from SChernykh/dev
xmrig Feb 1, 2026
05dd6dc
Sync changes with xmrig-proxy
SChernykh Feb 2, 2026
d9b39e8
Merge pull request #3776 from SChernykh/dev
xmrig Feb 2, 2026
26ee1cd
ARM64 fixes
SChernykh Feb 3, 2026
8464d47
Merge pull request #3778 from SChernykh/dev
xmrig Feb 4, 2026
6454a0a
Removed unused -P command line option.
xmrig Feb 9, 2026
48b29fd
RandomX v2: don't update dataset when switching to/from it
SChernykh Feb 13, 2026
17aa97e
Merge pull request #3782 from SChernykh/dev
xmrig Feb 15, 2026
976a08e
Fixed initial dataset prefetch for RandomX v2
SChernykh Feb 15, 2026
a935641
Merge pull request #3783 from SChernykh/dev
xmrig Feb 15, 2026
14dcd36
Fix OpenCL address-space mismatch in keccak_f800_round
Willie169 Feb 26, 2026
d7f7094
Apply uint32_t st[25] in keccak_f800
Willie169 Feb 26, 2026
c534c66
Merge pull request #3784 from Willie169/master
xmrig Feb 27, 2026
8b33d24
Don't reset nonce during donation rounds (possible fix for #3669)
SChernykh Feb 27, 2026
3b4e38b
Merge pull request #3785 from SChernykh/dev
xmrig Feb 27, 2026
9d296c7
Fixed clang arm64 builds
SChernykh Mar 3, 2026
27d535d
Merge pull request #3789 from SChernykh/dev
xmrig Mar 3, 2026
84352c7
Fix arm64 builds (attempt number 2)
SChernykh Mar 3, 2026
806cfc3
Merge pull request #3790 from SChernykh/dev
xmrig Mar 3, 2026
4f58a7a
v6.26.0-dev
xmrig Mar 25, 2026
92705f2
Merge branch 'dev'
xmrig Mar 28, 2026
b2ca724
v6.26.0
xmrig Mar 28, 2026
69b7e60
Merge branch 'master' into dev
xmrig Mar 28, 2026
6bf4305
v6.26.1-dev
xmrig Mar 28, 2026
5347458
ARM64 JIT: Optimize Group E register conversion
SChernykh Apr 25, 2026
80eff55
Merge pull request #3805 from SChernykh/dev
xmrig Apr 25, 2026
c59c03e
Update FCMP++ block template layout
SChernykh Apr 29, 2026
a7baa9c
Merge pull request #3807 from SChernykh/dev
xmrig Apr 30, 2026
f91b796
RandomX: 2.5% faster dataset init on RISC-V
SChernykh May 7, 2026
ab8f005
Merge pull request #3812 from SChernykh/dev
xmrig May 7, 2026
f8dd210
ARM64 RandomX JIT:
SChernykh May 8, 2026
27f116e
Merge pull request #3815 from SChernykh/dev
xmrig May 15, 2026
720325c
RandomX optimizations:
SChernykh May 17, 2026
7eadfdc
Merge pull request #3816 from SChernykh/dev
xmrig May 17, 2026
9787204
ARM64 RandomX JIT: dataset prefetch + non-temporal loads
aa022 May 25, 2026
9ac373f
ARM64 RandomX JIT: drop early dataset prefetch
aa022 May 25, 2026
3fb851d
Merge pull request #3820 from aa022/dev
xmrig May 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[codespell]
skip = ./src/3rdparty,./src/crypto/ghostrider,./src/crypto/randomx/blake2,./src/crypto/cn/sse2neon.h,./src/backend/opencl/cl/cn/groestl256.cl,./src/backend/opencl/cl/cn/jh.cl
ignore-words-list = Carmel,vor
29 changes: 29 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Required data**
- XMRig version
- Either the exact link to a release you downloaded from https://github.com/xmrig/xmrig/releases
- Or the exact command lines that you used to build XMRig
- Miner log as text or screenshot
- Config file or command line (without wallets)
- OS: [e.g. Windows]
- For GPU related issues: information about GPUs and driver version.

**Additional context**
Add any other context about the problem here.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
/build
scripts/build
scripts/deps
/CMakeLists.txt.user
/.idea
/src/backend/opencl/cl/cn/cryptonight_gen.cl
.vscode
/.qtcreator
599 changes: 592 additions & 7 deletions CHANGELOG.md

Large diffs are not rendered by default.

91 changes: 68 additions & 23 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,41 @@
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.10)
project(xmrig)

option(WITH_LIBCPUID "Enable libcpuid support" ON)
option(WITH_HWLOC "Enable hwloc support" ON)
option(WITH_CN_LITE "Enable CryptoNight-Lite algorithms family" ON)
option(WITH_CN_HEAVY "Enable CryptoNight-Heavy algorithms family" ON)
option(WITH_CN_PICO "Enable CryptoNight-Pico algorithm" ON)
option(WITH_CN_GPU "Enable CryptoNight-GPU algorithm" ON)
option(WITH_CN_FEMTO "Enable CryptoNight-UPX2 algorithm" ON)
option(WITH_RANDOMX "Enable RandomX algorithms family" ON)
option(WITH_ARGON2 "Enable Argon2 algorithms family" ON)
option(WITH_KAWPOW "Enable KawPow algorithms family" ON)
option(WITH_GHOSTRIDER "Enable GhostRider algorithm" ON)
option(WITH_HTTP "Enable HTTP protocol support (client/server)" ON)
option(WITH_DEBUG_LOG "Enable debug log output" OFF)
option(WITH_TLS "Enable OpenSSL support" ON)
option(WITH_ASM "Enable ASM PoW implementations" ON)
option(WITH_MSR "Enable MSR mod & 1st-gen Ryzen fix" ON)
option(WITH_ENV_VARS "Enable environment variables support in config file" ON)
option(WITH_EMBEDDED_CONFIG "Enable internal embedded JSON config" OFF)
option(WITH_OPENCL "Enable OpenCL backend" ON)
set(WITH_OPENCL_VERSION 200 CACHE STRING "Target OpenCL version")
set_property(CACHE WITH_OPENCL_VERSION PROPERTY STRINGS 120 200 210 220)
option(WITH_CUDA "Enable CUDA backend" ON)
option(WITH_NVML "Enable NVML (NVIDIA Management Library) support (only if CUDA backend enabled)" ON)
option(WITH_ADL "Enable ADL (AMD Display Library) or sysfs support (only if OpenCL backend enabled)" ON)
option(WITH_STRICT_CACHE "Enable strict checks for OpenCL cache" ON)
option(WITH_INTERLEAVE_DEBUG_LOG "Enable debug log for threads interleave" OFF)
option(WITH_PROFILING "Enable profiling for developers" OFF)
option(WITH_SSE4_1 "Enable SSE 4.1 for Blake2" ON)
option(WITH_AVX2 "Enable AVX2 for Blake2" ON)
option(WITH_VAES "Enable VAES instructions for Cryptonight" ON)
option(WITH_BENCHMARK "Enable builtin RandomX benchmark and stress test" ON)
option(WITH_SECURE_JIT "Enable secure access to JIT memory" OFF)
option(WITH_DMI "Enable DMI/SMBIOS reader" ON)

option(BUILD_STATIC "Build static binary" OFF)
option(ARM_TARGET "Force use specific ARM target 8 or 7" 0)
option(ARM_V8 "Force ARMv8 (64 bit) architecture, use with caution if automatic detection fails, but you sure it may work" OFF)
option(ARM_V7 "Force ARMv7 (32 bit) architecture, use with caution if automatic detection fails, but you sure it may work" OFF)
option(HWLOC_DEBUG "Enable hwloc debug helpers and log" OFF)


Expand All @@ -47,11 +61,11 @@ set(HEADERS
src/core/config/usage.h
src/core/Controller.h
src/core/Miner.h
src/core/Taskbar.h
src/net/interfaces/IJobResultListener.h
src/net/JobResult.h
src/net/JobResults.h
src/net/Network.h
src/net/NetworkState.h
src/net/strategies/DonateStrategy.h
src/Summary.h
src/version.h
Expand All @@ -74,17 +88,14 @@ set(HEADERS_CRYPTO
src/crypto/cn/hash.h
src/crypto/cn/skein_port.h
src/crypto/cn/soft_aes.h
src/crypto/common/Algorithm.h
src/crypto/common/Coin.h
src/crypto/common/HugePagesInfo.h
src/crypto/common/keccak.h
src/crypto/common/MemoryPool.h
src/crypto/common/Nonce.h
src/crypto/common/portable/mm_malloc.h
src/crypto/common/VirtualMemory.h
)

if (XMRIG_ARM)
if (XMRIG_ARM OR XMRIG_RISCV)
set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/cn/CryptoNight_arm.h)
else()
set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/cn/CryptoNight_x86.h)
Expand All @@ -99,9 +110,9 @@ set(SOURCES
src/core/config/ConfigTransform.cpp
src/core/Controller.cpp
src/core/Miner.cpp
src/core/Taskbar.cpp
src/net/JobResults.cpp
src/net/Network.cpp
src/net/NetworkState.cpp
src/net/strategies/DonateStrategy.cpp
src/Summary.cpp
src/xmrig.cpp
Expand All @@ -114,15 +125,25 @@ set(SOURCES_CRYPTO
src/crypto/cn/c_skein.c
src/crypto/cn/CnCtx.cpp
src/crypto/cn/CnHash.cpp
src/crypto/common/Algorithm.cpp
src/crypto/common/Coin.cpp
src/crypto/common/HugePagesInfo.cpp
src/crypto/common/keccak.cpp
src/crypto/common/MemoryPool.cpp
src/crypto/common/Nonce.cpp
src/crypto/common/VirtualMemory.cpp
)

if (CMAKE_C_COMPILER_ID MATCHES GNU)
set_source_files_properties(src/crypto/cn/CnHash.cpp PROPERTIES COMPILE_FLAGS "-Ofast -fno-tree-vectorize")
endif()

if (WITH_VAES)
add_definitions(-DXMRIG_VAES)
set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/cn/CryptoNight_x86_vaes.h)
set(SOURCES_CRYPTO "${SOURCES_CRYPTO}" src/crypto/cn/CryptoNight_x86_vaes.cpp)
if (CMAKE_C_COMPILER_ID MATCHES GNU OR CMAKE_C_COMPILER_ID MATCHES Clang)
set_source_files_properties(src/crypto/cn/CryptoNight_x86_vaes.cpp PROPERTIES COMPILE_FLAGS "-Ofast -fno-tree-vectorize -mavx2 -mvaes")
endif()
endif()

if (WITH_HWLOC)
list(APPEND HEADERS_CRYPTO
src/crypto/common/NUMAMemoryPool.h
Expand All @@ -141,12 +162,16 @@ if (XMRIG_OS_WIN)
src/crypto/common/VirtualMemory_win.cpp
)

set(EXTRA_LIBS ws2_32 psapi iphlpapi userenv)
set(EXTRA_LIBS ws2_32 psapi iphlpapi userenv dbghelp)
elseif (XMRIG_OS_APPLE)
list(APPEND SOURCES_OS
src/App_unix.cpp
src/crypto/common/VirtualMemory_unix.cpp
)

find_library(IOKIT_LIBRARY IOKit)
find_library(CORESERVICES_LIBRARY CoreServices)
set(EXTRA_LIBS ${IOKIT_LIBRARY} ${CORESERVICES_LIBRARY})
else()
list(APPEND SOURCES_OS
src/App_unix.cpp
Expand All @@ -167,17 +192,18 @@ else()
endif()
endif()

add_definitions(/D__STDC_FORMAT_MACROS)
add_definitions(/DUNICODE)
add_definitions(-DXMRIG_MINER_PROJECT -DXMRIG_JSON_SINGLE_LINE_ARRAY)
add_definitions(-D__STDC_FORMAT_MACROS -DUNICODE -D_FILE_OFFSET_BITS=64)

find_package(UV REQUIRED)

include(cmake/flags.cmake)
include(cmake/randomx.cmake)
include(cmake/argon2.cmake)
include(cmake/kawpow.cmake)
include(cmake/ghostrider.cmake)
include(cmake/OpenSSL.cmake)
include(cmake/asm.cmake)
include(cmake/cn-gpu.cmake)

if (WITH_CN_LITE)
add_definitions(/DXMRIG_ALGO_CN_LITE)
Expand All @@ -191,21 +217,40 @@ if (WITH_CN_PICO)
add_definitions(/DXMRIG_ALGO_CN_PICO)
endif()

if (WITH_CN_FEMTO)
add_definitions(/DXMRIG_ALGO_CN_FEMTO)
endif()

if (WITH_EMBEDDED_CONFIG)
add_definitions(/DXMRIG_FEATURE_EMBEDDED_CONFIG)
endif()

include(src/hw/api/api.cmake)
include(src/hw/dmi/dmi.cmake)

include_directories(src)
include_directories(src/3rdparty)
include_directories(${UV_INCLUDE_DIR})

if (BUILD_STATIC)
set(CMAKE_EXE_LINKER_FLAGS " -static")
endif()

if (WITH_DEBUG_LOG)
add_definitions(/DAPP_DEBUG)
endif()

add_executable(${CMAKE_PROJECT_NAME} ${HEADERS} ${SOURCES} ${SOURCES_OS} ${SOURCES_CPUID} ${HEADERS_CRYPTO} ${SOURCES_CRYPTO} ${SOURCES_SYSLOG} ${TLS_SOURCES} ${XMRIG_ASM_SOURCES} ${CN_GPU_SOURCES})
target_link_libraries(${CMAKE_PROJECT_NAME} ${XMRIG_ASM_LIBRARY} ${OPENSSL_LIBRARIES} ${UV_LIBRARIES} ${EXTRA_LIBS} ${CPUID_LIB} ${ARGON2_LIBRARY})
add_executable(${CMAKE_PROJECT_NAME} ${HEADERS} ${SOURCES} ${SOURCES_OS} ${HEADERS_CRYPTO} ${SOURCES_CRYPTO} ${SOURCES_SYSLOG} ${TLS_SOURCES} ${XMRIG_ASM_SOURCES})
target_link_libraries(${CMAKE_PROJECT_NAME} ${XMRIG_ASM_LIBRARY} ${OPENSSL_LIBRARIES} ${UV_LIBRARIES} ${EXTRA_LIBS} ${CPUID_LIB} ${ARGON2_LIBRARY} ${ETHASH_LIBRARY} ${GHOSTRIDER_LIBRARY})

if (WIN32)
if (NOT ARM_TARGET)
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/bin/WinRing0/WinRing0x64.sys" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
endif()

add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/scripts/benchmark_1M.cmd" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/scripts/benchmark_10M.cmd" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/scripts/pool_mine_example.cmd" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/scripts/solo_mine_example.cmd" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/scripts/rtm_ghostrider_example.cmd" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
endif()

if (CMAKE_CXX_COMPILER_ID MATCHES Clang AND CMAKE_BUILD_TYPE STREQUAL Release AND NOT CMAKE_GENERATOR STREQUAL Xcode)
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_STRIP} "$<TARGET_FILE:${CMAKE_PROJECT_NAME}>")
endif()
106 changes: 13 additions & 93 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,116 +1,36 @@
# XMRig

**:warning: [Monero will change PoW algorithm to RandomX on November 30.](https://github.com/xmrig/xmrig/issues/1204)**

[![Github All Releases](https://img.shields.io/github/downloads/xmrig/xmrig/total.svg)](https://github.com/xmrig/xmrig/releases)
[![GitHub release](https://img.shields.io/github/release/xmrig/xmrig/all.svg)](https://github.com/xmrig/xmrig/releases)
[![GitHub Release Date](https://img.shields.io/github/release-date-pre/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/releases)
[![GitHub Release Date](https://img.shields.io/github/release-date/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/releases)
[![GitHub license](https://img.shields.io/github/license/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/blob/master/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/network)

XMRig High performance, open source, cross platform RandomX, CryptoNight and Argon2 CPU/GPU miner, with official support for Windows.
XMRig is a high performance, open source, cross platform RandomX, KawPow, CryptoNight and [GhostRider](https://github.com/xmrig/xmrig/tree/master/src/crypto/ghostrider#readme) unified CPU/GPU miner and [RandomX benchmark](https://xmrig.com/benchmark). Official binaries are available for Windows, Linux, macOS and FreeBSD.

## Mining backends
- **CPU** (x64/x86/ARM)
- **CPU** (x86/x64/ARMv7/ARMv8/RISC-V)
- **OpenCL** for AMD GPUs.
- **CUDA** for NVIDIA GPUs via external [CUDA plugin](https://github.com/xmrig/xmrig-cuda).

<img src="doc/screenshot.png" width="808" >

## Download
* Binary releases: https://github.com/xmrig/xmrig/releases
* Git tree: https://github.com/xmrig/xmrig.git
* Clone with `git clone https://github.com/xmrig/xmrig.git` :hammer: [Build instructions](https://github.com/xmrig/xmrig/wiki/Build).
* **[Binary releases](https://github.com/xmrig/xmrig/releases)**
* **[Build from source](https://xmrig.com/docs/miner/build)**

## Usage
The preferred way to configure the miner is the [JSON config file](src/config.json) as it is more flexible and human friendly. The command line interface does not cover all features, such as mining profiles for different algorithms. Important options can be changed during runtime without miner restart by editing the config file or executing API calls.

* **[xmrig.com/wizard](https://xmrig.com/wizard)** helps you create initial configuration for the miner.
* **[workers.xmrig.info](http://workers.xmrig.info)** helps manage your miners via HTTP API.

### Command line options
```
Network:
-o, --url=URL URL of mining server
-a, --algo=ALGO mining algorithm https://xmrig.com/docs/algorithms
--coin=COIN specify coin instead of algorithm
-u, --user=USERNAME username for mining server
-p, --pass=PASSWORD password for mining server
-O, --userpass=U:P username:password pair for mining server
-k, --keepalive send keepalived packet for prevent timeout (needs pool support)
--nicehash enable nicehash.com support
--rig-id=ID rig identifier for pool-side statistics (needs pool support)
--tls enable SSL/TLS support (needs pool support)
--tls-fingerprint=HEX pool TLS certificate fingerprint for strict certificate pinning
--daemon use daemon RPC instead of pool for solo mining
--daemon-poll-interval=N daemon poll interval in milliseconds (default: 1000)
-r, --retries=N number of times to retry before switch to backup server (default: 5)
-R, --retry-pause=N time to pause between retries (default: 5)
--user-agent set custom user-agent string for pool
--donate-level=N donate level, default 5%% (5 minutes in 100 minutes)
--donate-over-proxy=N control donate over xmrig-proxy feature

CPU backend:
--no-cpu disable CPU mining backend
-t, --threads=N number of CPU threads
-v, --av=N algorithm variation, 0 auto select
--cpu-affinity set process affinity to CPU core(s), mask 0x3 for cores 0 and 1
--cpu-priority set process priority (0 idle, 2 normal to 5 highest)
--cpu-max-threads-hint=N maximum CPU threads count (in percentage) hint for autoconfig
--cpu-memory-pool=N number of 2 MB pages for persistent memory pool, -1 (auto), 0 (disable)
--cpu-no-yield prefer maximum hashrate rather than system response/stability
--no-huge-pages disable huge pages support
--asm=ASM ASM optimizations, possible values: auto, none, intel, ryzen, bulldozer
--randomx-init=N threads count to initialize RandomX dataset
--randomx-no-numa disable NUMA support for RandomX
--randomx-mode=MODE RandomX mode: auto, fast, light
--randomx-1gb-pages use 1GB hugepages for dataset (Linux only)
The preferred way to configure the miner is the [JSON config file](https://xmrig.com/docs/miner/config) as it is more flexible and human friendly. The [command line interface](https://xmrig.com/docs/miner/command-line-options) does not cover all features, such as mining profiles for different algorithms. Important options can be changed during runtime without miner restart by editing the config file or executing [API](https://xmrig.com/docs/miner/api) calls.

API:
--api-worker-id=ID custom worker-id for API
--api-id=ID custom instance ID for API
--http-host=HOST bind host for HTTP API (default: 127.0.0.1)
--http-port=N bind port for HTTP API
--http-access-token=T access token for HTTP API
--http-no-restricted enable full remote access to HTTP API (only if access token set)

OpenCL backend:
--opencl enable OpenCL mining backend
--opencl-devices=N comma separated list of OpenCL devices to use
--opencl-platform=N OpenCL platform index or name
--opencl-loader=PATH path to OpenCL-ICD-Loader (OpenCL.dll or libOpenCL.so)
--opencl-no-cache disable OpenCL cache
--print-platforms print available OpenCL platforms and exit

CUDA backend:
--cuda enable CUDA mining backend
--cuda-loader=PATH path to CUDA plugin (xmrig-cuda.dll or libxmrig-cuda.so)
--cuda-devices=N comma separated list of CUDA devices to use
--cuda-bfactor-hint=N bfactor hint for autoconfig (0-12)
--cuda-bsleep-hint=N bsleep hint for autoconfig
--no-nvml disable NVML (NVIDIA Management Library) support

Logging:
-S, --syslog use system log for output messages
-l, --log-file=FILE log all output to a file
--print-time=N print hashrate report every N seconds
--health-print-time=N print health report every N seconds
--no-color disable colored output

Misc:
-c, --config=FILE load a JSON-format configuration file
-B, --background run the miner in the background
-V, --version output version information and exit
-h, --help display this help and exit
--dry-run test configuration and exit
--export-topology export hwloc topology to a XML file and exit
```
* **[Wizard](https://xmrig.com/wizard)** helps you create initial configuration for the miner.
* **[Workers](http://workers.xmrig.info)** helps manage your miners via HTTP API.

## Donations
* Default donation 5% (5 minutes in 100 minutes) can be reduced to 1% via option `donate-level` or disabled in source code.
* Default donation 1% (1 minute in 100 minutes) can be increased via option `donate-level` or disabled in source code.
* XMR: `48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD`
* BTC: `1P7ujsXeX7GxQwHNnJsRMgAdNkFZmNVqJT`

## Developers
* **[xmrig](https://github.com/xmrig)**
* **[sech1](https://github.com/SChernykh)**

## Contacts
* support@xmrig.com
Expand Down
Loading