diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d8b25d6..9b99aeb1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ 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_VERUSHASH "Enable Verushash 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) @@ -20,7 +21,7 @@ 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_CUDA "Enable CUDA backend" OFF) 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) @@ -199,11 +200,16 @@ find_package(UV REQUIRED) include(cmake/flags.cmake) include(cmake/randomx.cmake) include(cmake/argon2.cmake) +include(cmake/verushash.cmake) include(cmake/kawpow.cmake) include(cmake/ghostrider.cmake) include(cmake/OpenSSL.cmake) include(cmake/asm.cmake) +if (WITH_VERUSHASH) + add_definitions(/DXMRIG_ALGO_VERUSHASH) +endif() + if (WITH_CN_LITE) add_definitions(/DXMRIG_ALGO_CN_LITE) endif() @@ -236,7 +242,7 @@ if (WITH_DEBUG_LOG) endif() 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}) +target_link_libraries(${CMAKE_PROJECT_NAME} ${XMRIG_ASM_LIBRARY} ${OPENSSL_LIBRARIES} ${UV_LIBRARIES} ${EXTRA_LIBS} ${CPUID_LIB} ${ARGON2_LIBRARY} ${ETHASH_LIBRARY} ${VERUSHASH_LIBRARY} ${GHOSTRIDER_LIBRARY}) if (WIN32) add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/bin/WinRing0/WinRing0x64.sys" $) diff --git a/cmake/verushash.cmake b/cmake/verushash.cmake new file mode 100644 index 00000000..247130ed --- /dev/null +++ b/cmake/verushash.cmake @@ -0,0 +1,21 @@ +if (WITH_VERUSHASH) + add_definitions(/DXMRIG_ALGO_VERUSHASH) + set(VERUSHASH_LIBRARY verushash) + + list(APPEND HEADERS_CRYPTO + src/crypto/verus/haraka.h + src/crypto/verus/haraka_portable.h + src/crypto/verus/verus_hash.h + ) + + list(APPEND SOURCES_CRYPTO + src/crypto/verus/haraka.c + src/crypto/verus/equi-stratum.c + src/crypto/verus/haraka_portable.c + src/crypto/verus/verus_hash.c + ) + +else() + remove_definitions(/DXMRIG_ALGO_VERUSHASH) + set(VERUSHASH_LIBRARY "") +endif() diff --git a/src/backend/cpu/CpuConfig.cpp b/src/backend/cpu/CpuConfig.cpp index a7d5db55..105a743c 100644 --- a/src/backend/cpu/CpuConfig.cpp +++ b/src/backend/cpu/CpuConfig.cpp @@ -179,6 +179,7 @@ void xmrig::CpuConfig::generate() count += xmrig::generate(m_threads, m_limit); count += xmrig::generate(m_threads, m_limit); count += xmrig::generate(m_threads, m_limit); + count += xmrig::generate(m_threads, m_limit); m_shouldSave |= count > 0; } diff --git a/src/backend/cpu/CpuConfig_gen.h b/src/backend/cpu/CpuConfig_gen.h index c1bdb908..247c5f52 100644 --- a/src/backend/cpu/CpuConfig_gen.h +++ b/src/backend/cpu/CpuConfig_gen.h @@ -161,6 +161,14 @@ size_t inline generate(Threads& threads, uint } #endif +#ifdef XMRIG_ALGO_VERUSHASH +template<> +size_t inline generate(Threads& threads, uint32_t limit) +{ + return generate(Algorithm::kVERUSHASH, threads, Algorithm::VERUSHASH_VRSC, limit); +} +#endif + } /* namespace xmrig */ diff --git a/src/crypto/verus/haraka.c b/src/crypto/verus/haraka.c new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/src/crypto/verus/haraka.c @@ -0,0 +1 @@ +