Skip to content

Commit ae9f673

Browse files
authored
Merge pull request #22 from scala-network/xlarig520
Xlarig update to v5.2.0
2 parents 3d9d4f7 + 49f87fb commit ae9f673

File tree

409 files changed

+20221
-23465
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

409 files changed

+20221
-23465
lines changed

CHANGELOG.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1+
# v5.2.0
2+
- Updated Panthera algo
3+
- Removed DefyX algo
4+
- Rebased from XMRig v6.3.4 [(changelog)](doc/CHANGELOG.md)
5+
6+
17
# v5.1.0
2-
- Added Panthera Algo
8+
- Added Panthera algo
39
- Moved DefyX config data into RandomX.
4-
- Rebased from XMRig v5.11.1 [(changelog)](doc/CHANGELOG.md)
10+
- Rebased from XMRig v5.11.1
511

612
# v5.0.2
713

CMakeLists.txt

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ option(WITH_HWLOC "Enable hwloc support" OFF)
66
option(WITH_CN_LITE "Enable CryptoNight-Lite algorithms family" OFF)
77
option(WITH_CN_HEAVY "Enable CryptoNight-Heavy algorithms family" OFF)
88
option(WITH_CN_PICO "Enable CryptoNight-Pico algorithm" OFF)
9-
option(WITH_CN_GPU "Enable CryptoNight-GPU algorithm" OFF)
109
option(WITH_RANDOMX "Enable RandomX algorithms family" ON)
1110
option(WITH_ARGON2 "Enable Argon2 algorithms family" ON)
12-
option(WITH_ASTROBWT "Enable AstroBWT algorithms family" ON)
11+
option(WITH_ASTROBWT "Enable AstroBWT algorithms family" OFF)
12+
option(WITH_KAWPOW "Enable KawPow algorithms family" OFF)
1313
option(WITH_HTTP "Enable HTTP protocol support (client/server)" ON)
1414
option(WITH_DEBUG_LOG "Enable debug log output" OFF)
1515
option(WITH_TLS "Enable OpenSSL support" ON)
@@ -20,9 +20,10 @@ option(WITH_EMBEDDED_CONFIG "Enable internal embedded JSON config" OFF)
2020
option(WITH_OPENCL "Enable OpenCL backend" OFF)
2121
option(WITH_CUDA "Enable CUDA backend" OFF)
2222
option(WITH_NVML "Enable NVML (NVIDIA Management Library) support (only if CUDA backend enabled)" OFF)
23-
option(WITH_ADL "Enable ADL (AMD Display Library) or sysfs support (only if OpenCL backend enabled)" ON)
23+
option(WITH_ADL "Enable ADL (AMD Display Library) or sysfs support (only if OpenCL backend enabled)" OFF)
2424
option(WITH_STRICT_CACHE "Enable strict checks for OpenCL cache" ON)
2525
option(WITH_INTERLEAVE_DEBUG_LOG "Enable debug log for threads interleave" OFF)
26+
option(WITH_PROFILING "Enable profiling for developers" OFF)
2627

2728
option(BUILD_STATIC "Build static binary" OFF)
2829
option(ARM_TARGET "Force use specific ARM target 8 or 7" 0)
@@ -143,6 +144,8 @@ elseif (XMRIG_OS_APPLE)
143144
src/App_unix.cpp
144145
src/crypto/common/VirtualMemory_unix.cpp
145146
)
147+
find_library(IOKIT_LIBRARY IOKit)
148+
set(EXTRA_LIBS ${IOKIT_LIBRARY})
146149
else()
147150
list(APPEND SOURCES_OS
148151
src/App_unix.cpp
@@ -163,18 +166,18 @@ else()
163166
endif()
164167
endif()
165168

166-
add_definitions(/D__STDC_FORMAT_MACROS)
167-
add_definitions(/DUNICODE)
169+
add_definitions(-DXMRIG_MINER_PROJECT)
170+
add_definitions(-D__STDC_FORMAT_MACROS -DUNICODE)
168171

169172
find_package(UV REQUIRED)
170173

171174
include(cmake/flags.cmake)
172175
include(cmake/randomx.cmake)
173176
include(cmake/argon2.cmake)
174177
include(cmake/astrobwt.cmake)
178+
include(cmake/kawpow.cmake)
175179
include(cmake/OpenSSL.cmake)
176180
include(cmake/asm.cmake)
177-
include(cmake/cn-gpu.cmake)
178181

179182
if (WITH_CN_LITE)
180183
add_definitions(/DXMRIG_ALGO_CN_LITE)
@@ -196,18 +199,18 @@ include_directories(src)
196199
include_directories(src/3rdparty)
197200
include_directories(${UV_INCLUDE_DIR})
198201

199-
if (BUILD_STATIC)
200-
set(CMAKE_EXE_LINKER_FLAGS " -static")
201-
endif()
202-
203202
if (WITH_DEBUG_LOG)
204203
add_definitions(/DAPP_DEBUG)
205204
endif()
206205

207-
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})
208-
target_link_libraries(${CMAKE_PROJECT_NAME} ${XMRIG_ASM_LIBRARY} ${OPENSSL_LIBRARIES} ${UV_LIBRARIES} ${EXTRA_LIBS} ${CPUID_LIB} ${ARGON2_LIBRARY})
206+
add_executable(${CMAKE_PROJECT_NAME} ${HEADERS} ${SOURCES} ${SOURCES_OS} ${SOURCES_CPUID} ${HEADERS_CRYPTO} ${SOURCES_CRYPTO} ${SOURCES_SYSLOG} ${TLS_SOURCES} ${XMRIG_ASM_SOURCES})
207+
target_link_libraries(${CMAKE_PROJECT_NAME} ${XMRIG_ASM_LIBRARY} ${OPENSSL_LIBRARIES} ${UV_LIBRARIES} ${EXTRA_LIBS} ${CPUID_LIB} ${ARGON2_LIBRARY} ${ETHASH_LIBRARY})
209208

210209
if (WIN32)
211210
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
212211
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/bin/WinRing0/WinRing0x64.sys" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)
213212
endif()
213+
214+
if (CMAKE_CXX_COMPILER_ID MATCHES Clang AND CMAKE_BUILD_TYPE STREQUAL Release)
215+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_STRIP} ${CMAKE_PROJECT_NAME})
216+
endif()

cmake/OpenSSL.cmake

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@ if (WITH_TLS)
55
set(OPENSSL_USE_STATIC_LIBS TRUE)
66
set(OPENSSL_MSVC_STATIC_RT TRUE)
77

8-
set(EXTRA_LIBS ${EXTRA_LIBS} Crypt32)
8+
set(EXTRA_LIBS ${EXTRA_LIBS} crypt32)
99
elseif (APPLE)
1010
set(OPENSSL_USE_STATIC_LIBS TRUE)
1111
endif()
1212

13+
if (BUILD_STATIC)
14+
set(OPENSSL_USE_STATIC_LIBS TRUE)
15+
endif()
16+
17+
1318
find_package(OpenSSL)
1419

1520
if (OPENSSL_FOUND)

cmake/astrobwt.cmake

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@ if (WITH_ASTROBWT)
33

44
list(APPEND HEADERS_CRYPTO
55
src/crypto/astrobwt/AstroBWT.h
6-
src/crypto/astrobwt/sha3.h
76
)
87

98
list(APPEND SOURCES_CRYPTO
109
src/crypto/astrobwt/AstroBWT.cpp
11-
src/crypto/astrobwt/sha3.cpp
1210
)
1311

1412
if (XMRIG_ARM)

cmake/cn-gpu.cmake

Lines changed: 0 additions & 25 deletions
This file was deleted.

cmake/flags.cmake

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU)
2929
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon")
3030
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -flax-vector-conversions")
3131
else()
32-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
33-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes")
32+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes -msse4.1")
33+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes -msse4.1")
3434

3535
add_definitions(/DHAVE_ROTR)
3636
endif()
@@ -45,6 +45,10 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU)
4545
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++")
4646
endif()
4747

48+
if (BUILD_STATIC)
49+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
50+
endif()
51+
4852
add_definitions(/D_GNU_SOURCE)
4953

5054
if (${CMAKE_VERSION} VERSION_LESS "3.1.0")
@@ -60,6 +64,9 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
6064
set(CMAKE_C_FLAGS_RELEASE "/MT /O2 /Oi /DNDEBUG /GL")
6165
set(CMAKE_CXX_FLAGS_RELEASE "/MT /O2 /Oi /DNDEBUG /GL")
6266

67+
set(CMAKE_C_FLAGS_RELWITHDEBINFO "/Ob1 /GL")
68+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Ob1 /GL")
69+
6370
add_definitions(/D_CRT_SECURE_NO_WARNINGS)
6471
add_definitions(/D_CRT_NONSTDC_NO_WARNINGS)
6572
add_definitions(/DNOMINMAX)
@@ -80,15 +87,19 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang)
8087
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}")
8188
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}")
8289
else()
83-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
84-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes")
90+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes -msse4.1")
91+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes -msse4.1")
8592

8693
check_symbol_exists("_rotr" "x86intrin.h" HAVE_ROTR)
8794
if (HAVE_ROTR)
8895
add_definitions(/DHAVE_ROTR)
8996
endif()
9097
endif()
9198

99+
if (BUILD_STATIC)
100+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
101+
endif()
102+
92103
endif()
93104

94105
if (NOT WIN32)

cmake/kawpow.cmake

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
if (WITH_KAWPOW)
2+
add_definitions(/DXMRIG_ALGO_KAWPOW)
3+
4+
list(APPEND HEADERS_CRYPTO
5+
src/crypto/kawpow/KPCache.h
6+
src/crypto/kawpow/KPHash.h
7+
)
8+
9+
list(APPEND SOURCES_CRYPTO
10+
src/crypto/kawpow/KPCache.cpp
11+
src/crypto/kawpow/KPHash.cpp
12+
)
13+
14+
add_subdirectory(src/3rdparty/libethash)
15+
set(ETHASH_LIBRARY ethash)
16+
else()
17+
remove_definitions(/DXMRIG_ALGO_KAWPOW)
18+
set(ETHASH_LIBRARY "")
19+
endif()

cmake/randomx.cmake

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
if (WITH_RANDOMX)
22
add_definitions(/DXMRIG_ALGO_RANDOMX)
3+
set(WITH_ARGON2 ON)
34

45
list(APPEND HEADERS_CRYPTO
56
src/crypto/rx/Rx.h
@@ -16,8 +17,6 @@ if (WITH_RANDOMX)
1617
list(APPEND SOURCES_CRYPTO
1718
src/crypto/randomx/aes_hash.cpp
1819
src/crypto/randomx/allocator.cpp
19-
src/crypto/randomx/argon2_core.c
20-
src/crypto/randomx/argon2_ref.c
2120
src/crypto/randomx/blake2_generator.cpp
2221
src/crypto/randomx/blake2/blake2b.c
2322
src/crypto/randomx/bytecode_machine.cpp
@@ -47,7 +46,6 @@ if (WITH_RANDOMX)
4746
src/crypto/randomx/panthera/KangarooTwelve.c
4847
src/crypto/randomx/panthera/KeccakP-1600-reference.c
4948
src/crypto/randomx/panthera/KeccakSpongeWidth1600.c
50-
src/crypto/randomx/defyx/yescrypt-best.c
5149
src/crypto/randomx/panthera/yespower-opt.c
5250
)
5351

doc/ALGORITHMS.md

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,38 +6,40 @@ Algorithm can be defined in 3 ways:
66
2. Per pool `coin` option, currently only usable values for this option is `monero` and `arqma`.
77
3. Per pool `algo` option.
88

9-
Option `coin` useful for pools without algorithm negotiation support or daemon to allow automatically switch algorithm in next hard fork.
9+
Option `coin` useful for pools without algorithm negotiation support or daemon to allow automatically switch algorithm in next hard fork. If you use xmrig-proxy don't need specify algorithm on miner side.
1010

1111
## Algorithm names
1212

13-
| Name | Memory | Version | Notes |
14-
|------|--------|---------|-------|
15-
| `rx/sfx` | 2 MB | 5.4.0+ | RandomSFX (RandomX variant for Safex). |
16-
| `rx/v` | 2 MB | 5.4.0+ | RandomV (RandomX variant for new MoneroV). |
17-
| `rx/arq` | 256 KB | 4.3.0+ | RandomARQ (RandomX variant for ArQmA). |
18-
| `rx/0` | 2 MB | 3.2.0+ | RandomX (Monero). |
19-
| `argon2/chukwa` | 512 KB | 3.1.0+ | Argon2id (Chukwa). |
20-
| `argon2/wrkz` | 256 KB | 3.1.0+ | Argon2id (WRKZ) |
21-
| `rx/wow` | 1 MB | 3.0.0+ | RandomWOW (RandomX variant for Wownero). |
22-
| `rx/loki` | 2 MB | 3.0.0+ | RandomXL (RandomX variant for Loki). |
23-
| `cn/fast` | 2 MB | 3.0.0+ | CryptoNight variant 1 with half iterations. |
24-
| `cn/rwz` | 2 MB | 2.14.0+ | CryptoNight variant 2 with 3/4 iterations and reversed shuffle operation. |
25-
| `cn/zls` | 2 MB | 2.14.0+ | CryptoNight variant 2 with 3/4 iterations. |
26-
| `cn/double` | 2 MB | 2.14.0+ | CryptoNight variant 2 with double iterations. |
27-
| `cn/r` | 2 MB | 2.13.0+ | CryptoNightR (Monero's variant 4). |
28-
| `cn/gpu` | 2 MB | 2.11.0+ | CryptoNight-GPU. |
29-
| `cn-pico` | 256 KB | 2.10.0+ | CryptoNight-Pico. |
30-
| `cn/half` | 2 MB | 2.9.0+ | CryptoNight variant 2 with half iterations. |
31-
| `cn/2` | 2 MB | 2.8.0+ | CryptoNight variant 2. |
32-
| `cn/xao` | 2 MB | 2.6.4+ | CryptoNight variant 0 (modified). |
33-
| `cn/rto` | 2 MB | 2.6.4+ | CryptoNight variant 1 (modified). |
34-
| `cn-heavy/tube` | 4 MB | 2.6.4+ | CryptoNight-Heavy (modified). |
35-
| `cn-heavy/xhv` | 4 MB | 2.6.3+ | CryptoNight-Heavy (modified). |
36-
| `cn-heavy/0` | 4 MB | 2.6.0+ | CryptoNight-Heavy. |
37-
| `cn/1` | 2 MB | 2.5.0+ | CryptoNight variant 1. |
38-
| `cn-lite/1` | 1 MB | 2.5.0+ | CryptoNight-Lite variant 1. |
39-
| `cn-lite/0` | 1 MB | 0.8.0+ | CryptoNight-Lite variant 0. |
40-
| `cn/0` | 2 MB | 0.5.0+ | CryptoNight (original). |
13+
| Name | Memory | Version | Description | Notes |
14+
|------|--------|---------|-------------|-------|
15+
| `kawpow` | - | 6.0.0+ | KawPow (Ravencoin) | GPU only |
16+
| `rx/keva` | 1 MB | 5.9.0+ | RandomKEVA (RandomX variant for Keva). | |
17+
| `astrobwt` | 20 MB | 5.8.0+ | AstroBWT (Dero). | |
18+
| `cn-pico/tlo` | 256 KB | 5.5.0+ | CryptoNight-Pico (Talleo). | |
19+
| `rx/sfx` | 2 MB | 5.4.0+ | RandomSFX (RandomX variant for Safex). | |
20+
| `rx/arq` | 256 KB | 4.3.0+ | RandomARQ (RandomX variant for ArQmA). | |
21+
| `rx/0` | 2 MB | 3.2.0+ | RandomX (Monero). | |
22+
| `argon2/chukwa` | 512 KB | 3.1.0+ | Argon2id (Chukwa). | CPU only |
23+
| `argon2/wrkz` | 256 KB | 3.1.0+ | Argon2id (WRKZ) | CPU only |
24+
| `rx/wow` | 1 MB | 3.0.0+ | RandomWOW (RandomX variant for Wownero). | |
25+
| `rx/loki` | 2 MB | 3.0.0+ | RandomXL (RandomX variant for Loki). | |
26+
| `cn/fast` | 2 MB | 3.0.0+ | CryptoNight variant 1 with half iterations. | |
27+
| `cn/rwz` | 2 MB | 2.14.0+ | CryptoNight variant 2 with 3/4 iterations and reversed shuffle operation. | |
28+
| `cn/zls` | 2 MB | 2.14.0+ | CryptoNight variant 2 with 3/4 iterations. | |
29+
| `cn/double` | 2 MB | 2.14.0+ | CryptoNight variant 2 with double iterations. | |
30+
| `cn/r` | 2 MB | 2.13.0+ | CryptoNightR (Monero's variant 4). | |
31+
| `cn-pico` | 256 KB | 2.10.0+ | CryptoNight-Pico. | |
32+
| `cn/half` | 2 MB | 2.9.0+ | CryptoNight variant 2 with half iterations. | |
33+
| `cn/2` | 2 MB | 2.8.0+ | CryptoNight variant 2. | |
34+
| `cn/xao` | 2 MB | 2.6.4+ | CryptoNight variant 0 (modified). | |
35+
| `cn/rto` | 2 MB | 2.6.4+ | CryptoNight variant 1 (modified). | |
36+
| `cn-heavy/tube` | 4 MB | 2.6.4+ | CryptoNight-Heavy (modified). | |
37+
| `cn-heavy/xhv` | 4 MB | 2.6.3+ | CryptoNight-Heavy (modified). | |
38+
| `cn-heavy/0` | 4 MB | 2.6.0+ | CryptoNight-Heavy. | |
39+
| `cn/1` | 2 MB | 2.5.0+ | CryptoNight variant 1. | |
40+
| `cn-lite/1` | 1 MB | 2.5.0+ | CryptoNight-Lite variant 1. | |
41+
| `cn-lite/0` | 1 MB | 0.8.0+ | CryptoNight-Lite variant 0. | |
42+
| `cn/0` | 2 MB | 0.5.0+ | CryptoNight (original). | |
4143

4244
## Migration to v3
4345
Since version 3 mining [algorithm](#algorithm-names) should specified for each pool separately (`algo` option), earlier versions was use one global `algo` option and per pool `variant` option (this option was removed in v3). If your pool support [mining algorithm negotiation](https://github.com/xmrig/xmrig-proxy/issues/168) you may not specify this option at all.

0 commit comments

Comments
 (0)