replaced all xmrig values with xmlcore

This commit is contained in:
taherkaraki 2021-02-15 14:02:36 +02:00
parent 8bfaddd3fc
commit 9b5585786a
587 changed files with 5515 additions and 5509 deletions

View file

@ -1,48 +1,48 @@
# v6.8.2 # v6.8.2
- [#2080](https://github.com/xmrig/xmrig/pull/2080) Fixed compile error in Termux. - [#2080](https://github.com/xmlcore/xmlcore/pull/2080) Fixed compile error in Termux.
- [#2089](https://github.com/xmrig/xmrig/pull/2089) Optimized CryptoNight-Heavy for Zen3, 7-8% speedup. - [#2089](https://github.com/xmlcore/xmlcore/pull/2089) Optimized CryptoNight-Heavy for Zen3, 7-8% speedup.
# v6.8.1 # v6.8.1
- [#2064](https://github.com/xmrig/xmrig/pull/2064) Added documentation for config.json CPU options. - [#2064](https://github.com/xmlcore/xmlcore/pull/2064) Added documentation for config.json CPU options.
- [#2066](https://github.com/xmrig/xmrig/issues/2066) Fixed AMD GPUs health data readings on Linux. - [#2066](https://github.com/xmlcore/xmlcore/issues/2066) Fixed AMD GPUs health data readings on Linux.
- [#2067](https://github.com/xmrig/xmrig/pull/2067) Fixed compilation error when RandomX and Argon2 are disabled. - [#2067](https://github.com/xmlcore/xmlcore/pull/2067) Fixed compilation error when RandomX and Argon2 are disabled.
- [#2076](https://github.com/xmrig/xmrig/pull/2076) Added support for flexible huge page sizes on Linux. - [#2076](https://github.com/xmlcore/xmlcore/pull/2076) Added support for flexible huge page sizes on Linux.
- [#2077](https://github.com/xmrig/xmrig/pull/2077) Fixed `illegal instruction` crash on ARM. - [#2077](https://github.com/xmlcore/xmlcore/pull/2077) Fixed `illegal instruction` crash on ARM.
# v6.8.0 # v6.8.0
- [#2052](https://github.com/xmrig/xmrig/pull/2052) Added DMI/SMBIOS reader. - [#2052](https://github.com/xmlcore/xmlcore/pull/2052) Added DMI/SMBIOS reader.
- Added information about memory modules on the miner startup and for online benchmark. - Added information about memory modules on the miner startup and for online benchmark.
- Added new HTTP API endpoint: `GET /2/dmi`. - Added new HTTP API endpoint: `GET /2/dmi`.
- Added new command line option `--no-dmi` or config option `"dmi"`. - Added new command line option `--no-dmi` or config option `"dmi"`.
- Added new CMake option `-DWITH_DMI=OFF`. - Added new CMake option `-DWITH_DMI=OFF`.
- [#2057](https://github.com/xmrig/xmrig/pull/2057) Improved MSR subsystem code quality. - [#2057](https://github.com/xmlcore/xmlcore/pull/2057) Improved MSR subsystem code quality.
- [#2058](https://github.com/xmrig/xmrig/pull/2058) RandomX JIT x86: removed unnecessary instructions. - [#2058](https://github.com/xmlcore/xmlcore/pull/2058) RandomX JIT x86: removed unnecessary instructions.
# v6.7.2 # v6.7.2
- [#2039](https://github.com/xmrig/xmrig/pull/2039) Fixed solo mining. - [#2039](https://github.com/xmlcore/xmlcore/pull/2039) Fixed solo mining.
# v6.7.1 # v6.7.1
- [#1995](https://github.com/xmrig/xmrig/issues/1995) Fixed log initialization. - [#1995](https://github.com/xmlcore/xmlcore/issues/1995) Fixed log initialization.
- [#1998](https://github.com/xmrig/xmrig/pull/1998) Added hashrate in the benchmark finished message. - [#1998](https://github.com/xmlcore/xmlcore/pull/1998) Added hashrate in the benchmark finished message.
- [#2009](https://github.com/xmrig/xmrig/pull/2009) AstroBWT OpenCL fixes. - [#2009](https://github.com/xmlcore/xmlcore/pull/2009) AstroBWT OpenCL fixes.
- [#2028](https://github.com/xmrig/xmrig/pull/2028) RandomX x86 JIT: removed redundant `CFROUND`. - [#2028](https://github.com/xmlcore/xmlcore/pull/2028) RandomX x86 JIT: removed redundant `CFROUND`.
# v6.7.0 # v6.7.0
- **[#1991](https://github.com/xmrig/xmrig/issues/1991) Added Apple M1 processor support.** - **[#1991](https://github.com/xmlcore/xmlcore/issues/1991) Added Apple M1 processor support.**
- **[#1986](https://github.com/xmrig/xmrig/pull/1986) Up to 20-30% faster RandomX dataset initialization with AVX2 on some CPUs.** - **[#1986](https://github.com/xmlcore/xmlcore/pull/1986) Up to 20-30% faster RandomX dataset initialization with AVX2 on some CPUs.**
- [#1964](https://github.com/xmrig/xmrig/pull/1964) Cleanup and refactoring. - [#1964](https://github.com/xmlcore/xmlcore/pull/1964) Cleanup and refactoring.
- [#1966](https://github.com/xmrig/xmrig/pull/1966) Removed libcpuid support. - [#1966](https://github.com/xmlcore/xmlcore/pull/1966) Removed libcpuid support.
- [#1968](https://github.com/xmrig/xmrig/pull/1968) Added virtual machine detection. - [#1968](https://github.com/xmlcore/xmlcore/pull/1968) Added virtual machine detection.
- [#1969](https://github.com/xmrig/xmrig/pull/1969) [#1970](https://github.com/xmrig/xmrig/pull/1970) Fixed errors found by static analysis. - [#1969](https://github.com/xmlcore/xmlcore/pull/1969) [#1970](https://github.com/xmlcore/xmlcore/pull/1970) Fixed errors found by static analysis.
- [#1977](https://github.com/xmrig/xmrig/pull/1977) Fixed: secure JIT and huge pages are incompatible on Windows. - [#1977](https://github.com/xmlcore/xmlcore/pull/1977) Fixed: secure JIT and huge pages are incompatible on Windows.
- [#1979](https://github.com/xmrig/xmrig/pull/1979) Term `x64` replaced to `64-bit`. - [#1979](https://github.com/xmlcore/xmlcore/pull/1979) Term `x64` replaced to `64-bit`.
- [#1980](https://github.com/xmrig/xmrig/pull/1980) Fixed build on gcc 11. - [#1980](https://github.com/xmlcore/xmlcore/pull/1980) Fixed build on gcc 11.
- [#1989](https://github.com/xmrig/xmrig/pull/1989) Fixed broken Dero solo mining. - [#1989](https://github.com/xmlcore/xmlcore/pull/1989) Fixed broken Dero solo mining.
# v6.6.2 # v6.6.2
- [#1958](https://github.com/xmrig/xmrig/pull/1958) Added example mining scripts to help new miners. - [#1958](https://github.com/xmlcore/xmlcore/pull/1958) Added example mining scripts to help new miners.
- [#1959](https://github.com/xmrig/xmrig/pull/1959) Optimized JIT compiler. - [#1959](https://github.com/xmlcore/xmlcore/pull/1959) Optimized JIT compiler.
- [#1960](https://github.com/xmrig/xmrig/pull/1960) Fixed RandomX init when switching to other algo and back. - [#1960](https://github.com/xmlcore/xmlcore/pull/1960) Fixed RandomX init when switching to other algo and back.
# v6.6.1 # v6.6.1
- Fixed, benchmark validation on NUMA hardware produced incorrect results in some conditions. - Fixed, benchmark validation on NUMA hardware produced incorrect results in some conditions.
@ -55,66 +55,66 @@
- DNS cache for online benchmark to prevent unexpected delays. - DNS cache for online benchmark to prevent unexpected delays.
# v6.5.3 # v6.5.3
- [#1946](https://github.com/xmrig/xmrig/pull/1946) Fixed MSR mod names in JSON API (v6.5.2 affected). - [#1946](https://github.com/xmlcore/xmlcore/pull/1946) Fixed MSR mod names in JSON API (v6.5.2 affected).
# v6.5.2 # v6.5.2
- [#1935](https://github.com/xmrig/xmrig/pull/1935) Separate MSR mod for Zen/Zen2 and Zen3. - [#1935](https://github.com/xmlcore/xmlcore/pull/1935) Separate MSR mod for Zen/Zen2 and Zen3.
- [#1937](https://github.com/xmrig/xmrig/issues/1937) Print path to existing WinRing0 service without verbose option. - [#1937](https://github.com/xmlcore/xmlcore/issues/1937) Print path to existing WinRing0 service without verbose option.
- [#1939](https://github.com/xmrig/xmrig/pull/1939) Fixed build with gcc 4.8. - [#1939](https://github.com/xmlcore/xmlcore/pull/1939) Fixed build with gcc 4.8.
- [#1941](https://github.com/xmrig/xmrig/pull/1941) Added CPUID info to JSON report. - [#1941](https://github.com/xmlcore/xmlcore/pull/1941) Added CPUID info to JSON report.
- [#1941](https://github.com/xmrig/xmrig/pull/1942) Fixed alignment modification in memory pool. - [#1941](https://github.com/xmlcore/xmlcore/pull/1942) Fixed alignment modification in memory pool.
- [#1944](https://github.com/xmrig/xmrig/pull/1944) Updated `randomx_boost.sh` with new MSR mod. - [#1944](https://github.com/xmlcore/xmlcore/pull/1944) Updated `randomx_boost.sh` with new MSR mod.
- Added `250K` and `500K` offline benchmarks. - Added `250K` and `500K` offline benchmarks.
# v6.5.1 # v6.5.1
- [#1932](https://github.com/xmrig/xmrig/pull/1932) New MSR mod for Ryzen, up to +3.5% on Zen2 and +1-2% on Zen3. - [#1932](https://github.com/xmlcore/xmlcore/pull/1932) New MSR mod for Ryzen, up to +3.5% on Zen2 and +1-2% on Zen3.
- [#1918](https://github.com/xmrig/xmrig/issues/1918) Fixed 1GB huge pages support on ARMv8. - [#1918](https://github.com/xmlcore/xmlcore/issues/1918) Fixed 1GB huge pages support on ARMv8.
- [#1926](https://github.com/xmrig/xmrig/pull/1926) Fixed compilation on ARMv8 with GCC 9.3.0. - [#1926](https://github.com/xmlcore/xmlcore/pull/1926) Fixed compilation on ARMv8 with GCC 9.3.0.
- [#1929](https://github.com/xmrig/xmrig/issues/1929) Fixed build without HTTP. - [#1929](https://github.com/xmlcore/xmlcore/issues/1929) Fixed build without HTTP.
# v6.5.0 # v6.5.0
- **Added [online benchmark](https://xmrig.com/benchmark) mode for sharing results.** - **Added [online benchmark](https://xmlcore.com/benchmark) mode for sharing results.**
- Added new command line options: `--submit`, ` --verify=ID`, ` --seed=SEED`, `--hash=HASH`. - Added new command line options: `--submit`, ` --verify=ID`, ` --seed=SEED`, `--hash=HASH`.
- [#1912](https://github.com/xmrig/xmrig/pull/1912) Fixed MSR kernel module warning with new Linux kernels. - [#1912](https://github.com/xmlcore/xmlcore/pull/1912) Fixed MSR kernel module warning with new Linux kernels.
- [#1925](https://github.com/xmrig/xmrig/pull/1925) Add checking for config files in user home directory. - [#1925](https://github.com/xmlcore/xmlcore/pull/1925) Add checking for config files in user home directory.
- Added vendor to ARM CPUs name and added `"arch"` field to API. - Added vendor to ARM CPUs name and added `"arch"` field to API.
- Removed legacy CUDA plugin API. - Removed legacy CUDA plugin API.
# v6.4.0 # v6.4.0
- [#1862](https://github.com/xmrig/xmrig/pull/1862) **RandomX: removed `rx/loki` algorithm.** - [#1862](https://github.com/xmlcore/xmlcore/pull/1862) **RandomX: removed `rx/loki` algorithm.**
- [#1890](https://github.com/xmrig/xmrig/pull/1890) **Added `argon2/chukwav2` algorithm.** - [#1890](https://github.com/xmlcore/xmlcore/pull/1890) **Added `argon2/chukwav2` algorithm.**
- [#1895](https://github.com/xmrig/xmrig/pull/1895) [#1897](https://github.com/xmrig/xmrig/pull/1897) **Added [benchmark and stress test](https://github.com/xmrig/xmrig/blob/dev/doc/BENCHMARK.md).** - [#1895](https://github.com/xmlcore/xmlcore/pull/1895) [#1897](https://github.com/xmlcore/xmlcore/pull/1897) **Added [benchmark and stress test](https://github.com/xmlcore/xmlcore/blob/dev/doc/BENCHMARK.md).**
- [#1864](https://github.com/xmrig/xmrig/pull/1864) RandomX: improved software AES performance. - [#1864](https://github.com/xmlcore/xmlcore/pull/1864) RandomX: improved software AES performance.
- [#1870](https://github.com/xmrig/xmrig/pull/1870) RandomX: fixed unexpected resume due to disconnect during dataset init. - [#1870](https://github.com/xmlcore/xmlcore/pull/1870) RandomX: fixed unexpected resume due to disconnect during dataset init.
- [#1872](https://github.com/xmrig/xmrig/pull/1872) RandomX: fixed `randomx_create_vm` call. - [#1872](https://github.com/xmlcore/xmlcore/pull/1872) RandomX: fixed `randomx_create_vm` call.
- [#1875](https://github.com/xmrig/xmrig/pull/1875) RandomX: fixed crash on x86. - [#1875](https://github.com/xmlcore/xmlcore/pull/1875) RandomX: fixed crash on x86.
- [#1876](https://github.com/xmrig/xmrig/pull/1876) RandomX: added `huge-pages-jit` config parameter. - [#1876](https://github.com/xmlcore/xmlcore/pull/1876) RandomX: added `huge-pages-jit` config parameter.
- [#1881](https://github.com/xmrig/xmrig/pull/1881) Fixed possible race condition in hashrate counting code. - [#1881](https://github.com/xmlcore/xmlcore/pull/1881) Fixed possible race condition in hashrate counting code.
- [#1882](https://github.com/xmrig/xmrig/pull/1882) [#1886](https://github.com/xmrig/xmrig/pull/1886) [#1887](https://github.com/xmrig/xmrig/pull/1887) [#1893](https://github.com/xmrig/xmrig/pull/1893) General code improvements. - [#1882](https://github.com/xmlcore/xmlcore/pull/1882) [#1886](https://github.com/xmlcore/xmlcore/pull/1886) [#1887](https://github.com/xmlcore/xmlcore/pull/1887) [#1893](https://github.com/xmlcore/xmlcore/pull/1893) General code improvements.
- [#1885](https://github.com/xmrig/xmrig/pull/1885) Added more precise hashrate calculation. - [#1885](https://github.com/xmlcore/xmlcore/pull/1885) Added more precise hashrate calculation.
- [#1889](https://github.com/xmrig/xmrig/pull/1889) Fixed libuv performance issue on Linux. - [#1889](https://github.com/xmlcore/xmlcore/pull/1889) Fixed libuv performance issue on Linux.
# v6.3.5 # v6.3.5
- [#1845](https://github.com/xmrig/xmrig/pull/1845) [#1861](https://github.com/xmrig/xmrig/pull/1861) Fixed ARM build and added CMake option `WITH_SSE4_1`. - [#1845](https://github.com/xmlcore/xmlcore/pull/1845) [#1861](https://github.com/xmlcore/xmlcore/pull/1861) Fixed ARM build and added CMake option `WITH_SSE4_1`.
- [#1846](https://github.com/xmrig/xmrig/pull/1846) KawPow: fixed OpenCL memory leak. - [#1846](https://github.com/xmlcore/xmlcore/pull/1846) KawPow: fixed OpenCL memory leak.
- [#1849](https://github.com/xmrig/xmrig/pull/1849) [#1859](https://github.com/xmrig/xmrig/pull/1859) RandomX: optimized soft AES code. - [#1849](https://github.com/xmlcore/xmlcore/pull/1849) [#1859](https://github.com/xmlcore/xmlcore/pull/1859) RandomX: optimized soft AES code.
- [#1850](https://github.com/xmrig/xmrig/pull/1850) [#1852](https://github.com/xmrig/xmrig/pull/1852) General code improvements. - [#1850](https://github.com/xmlcore/xmlcore/pull/1850) [#1852](https://github.com/xmlcore/xmlcore/pull/1852) General code improvements.
- [#1853](https://github.com/xmrig/xmrig/issues/1853) [#1856](https://github.com/xmrig/xmrig/pull/1856) [#1857](https://github.com/xmrig/xmrig/pull/1857) Fixed crash on old CPUs. - [#1853](https://github.com/xmlcore/xmlcore/issues/1853) [#1856](https://github.com/xmlcore/xmlcore/pull/1856) [#1857](https://github.com/xmlcore/xmlcore/pull/1857) Fixed crash on old CPUs.
# v6.3.4 # v6.3.4
- [#1823](https://github.com/xmrig/xmrig/pull/1823) RandomX: added new option `scratchpad_prefetch_mode`. - [#1823](https://github.com/xmlcore/xmlcore/pull/1823) RandomX: added new option `scratchpad_prefetch_mode`.
- [#1827](https://github.com/xmrig/xmrig/pull/1827) [#1831](https://github.com/xmrig/xmrig/pull/1831) Improved nonce iteration performance. - [#1827](https://github.com/xmlcore/xmlcore/pull/1827) [#1831](https://github.com/xmlcore/xmlcore/pull/1831) Improved nonce iteration performance.
- [#1828](https://github.com/xmrig/xmrig/pull/1828) RandomX: added SSE4.1-optimized Blake2b. - [#1828](https://github.com/xmlcore/xmlcore/pull/1828) RandomX: added SSE4.1-optimized Blake2b.
- [#1830](https://github.com/xmrig/xmrig/pull/1830) RandomX: added performance profiler (for developers). - [#1830](https://github.com/xmlcore/xmlcore/pull/1830) RandomX: added performance profiler (for developers).
- [#1835](https://github.com/xmrig/xmrig/pull/1835) RandomX: returned old soft AES implementation and added auto-select between the two. - [#1835](https://github.com/xmlcore/xmlcore/pull/1835) RandomX: returned old soft AES implementation and added auto-select between the two.
- [#1840](https://github.com/xmrig/xmrig/pull/1840) RandomX: moved more stuff to compile time, small x86 JIT compiler speedup. - [#1840](https://github.com/xmlcore/xmlcore/pull/1840) RandomX: moved more stuff to compile time, small x86 JIT compiler speedup.
- [#1841](https://github.com/xmrig/xmrig/pull/1841) Fixed Cryptonight OpenCL for AMD 20.7.2 drivers. - [#1841](https://github.com/xmlcore/xmlcore/pull/1841) Fixed Cryptonight OpenCL for AMD 20.7.2 drivers.
- [#1842](https://github.com/xmrig/xmrig/pull/1842) RandomX: AES improvements, a bit faster hardware AES code when compiled with MSVC. - [#1842](https://github.com/xmlcore/xmlcore/pull/1842) RandomX: AES improvements, a bit faster hardware AES code when compiled with MSVC.
- [#1843](https://github.com/xmrig/xmrig/pull/1843) RandomX: improved performance of GCC compiled binaries. - [#1843](https://github.com/xmlcore/xmlcore/pull/1843) RandomX: improved performance of GCC compiled binaries.
# v6.3.3 # v6.3.3
- [#1817](https://github.com/xmrig/xmrig/pull/1817) Fixed self-select login sequence. - [#1817](https://github.com/xmlcore/xmlcore/pull/1817) Fixed self-select login sequence.
- Added brand new [build from source](https://xmrig.com/docs/miner/build) documentation. - Added brand new [build from source](https://xmlcore.com/docs/miner/build) documentation.
- New binary downloads for macOS (`macos-x64`), FreeBSD (`freebsd-static-x64`), Linux (`linux-static-x64`), Ubuntu 18.04 (`bionic-x64`), Ubuntu 20.04 (`focal-x64`). - New binary downloads for macOS (`macos-x64`), FreeBSD (`freebsd-static-x64`), Linux (`linux-static-x64`), Ubuntu 18.04 (`bionic-x64`), Ubuntu 20.04 (`focal-x64`).
- Generic Linux download `xenial-x64` renamed to `linux-x64`. - Generic Linux download `xenial-x64` renamed to `linux-x64`.
- Builds without SSL/TLS support are no longer provided. - Builds without SSL/TLS support are no longer provided.
@ -123,227 +123,227 @@
- Fixed colors on macOS. - Fixed colors on macOS.
# v6.3.2 # v6.3.2
- [#1794](https://github.com/xmrig/xmrig/pull/1794) More robust 1 GB pages handling. - [#1794](https://github.com/xmlcore/xmlcore/pull/1794) More robust 1 GB pages handling.
- Don't allocate 1 GB per thread if 1 GB is the default huge page size. - Don't allocate 1 GB per thread if 1 GB is the default huge page size.
- Try to allocate scratchpad from dataset's 1 GB huge pages, if normal huge pages are not available. - Try to allocate scratchpad from dataset's 1 GB huge pages, if normal huge pages are not available.
- Correctly initialize RandomX cache if 1 GB pages fail to allocate on a first NUMA node. - Correctly initialize RandomX cache if 1 GB pages fail to allocate on a first NUMA node.
- [#1806](https://github.com/xmrig/xmrig/pull/1806) Fixed macOS battery detection. - [#1806](https://github.com/xmlcore/xmlcore/pull/1806) Fixed macOS battery detection.
- [#1809](https://github.com/xmrig/xmrig/issues/1809) Improved auto configuration on ARM CPUs. - [#1809](https://github.com/xmlcore/xmlcore/issues/1809) Improved auto configuration on ARM CPUs.
- Added retrieving ARM CPU names, based on lscpu code and database. - Added retrieving ARM CPU names, based on lscpu code and database.
# v6.3.1 # v6.3.1
- [#1786](https://github.com/xmrig/xmrig/pull/1786) Added `pause-on-battery` option, supported on Windows and Linux. - [#1786](https://github.com/xmlcore/xmlcore/pull/1786) Added `pause-on-battery` option, supported on Windows and Linux.
- Added command line options `--randomx-cache-qos` and `--argon2-impl`. - Added command line options `--randomx-cache-qos` and `--argon2-impl`.
# v6.3.0 # v6.3.0
- [#1771](https://github.com/xmrig/xmrig/pull/1771) Adopted new SSE2NEON and reduced ARM-specific changes. - [#1771](https://github.com/xmlcore/xmlcore/pull/1771) Adopted new SSE2NEON and reduced ARM-specific changes.
- [#1774](https://github.com/xmrig/xmrig/pull/1774) RandomX: Added new option `cache_qos` in `randomx` object for cache QoS support. - [#1774](https://github.com/xmlcore/xmlcore/pull/1774) RandomX: Added new option `cache_qos` in `randomx` object for cache QoS support.
- [#1777](https://github.com/xmrig/xmrig/pull/1777) Added support for upcoming Haven offshore fork. - [#1777](https://github.com/xmlcore/xmlcore/pull/1777) Added support for upcoming Haven offshore fork.
- [#1780](https://github.com/xmrig/xmrig/pull/1780) CryptoNight OpenCL: fix for long input data. - [#1780](https://github.com/xmlcore/xmlcore/pull/1780) CryptoNight OpenCL: fix for long input data.
# v6.2.3 # v6.2.3
- [#1745](https://github.com/xmrig/xmrig/pull/1745) AstroBWT: fixed OpenCL compilation on some systems. - [#1745](https://github.com/xmlcore/xmlcore/pull/1745) AstroBWT: fixed OpenCL compilation on some systems.
- [#1749](https://github.com/xmrig/xmrig/pull/1749) KawPow: optimized CPU share verification. - [#1749](https://github.com/xmlcore/xmlcore/pull/1749) KawPow: optimized CPU share verification.
- [#1752](https://github.com/xmrig/xmrig/pull/1752) RandomX: added error message when MSR mod fails. - [#1752](https://github.com/xmlcore/xmlcore/pull/1752) RandomX: added error message when MSR mod fails.
- [#1754](https://github.com/xmrig/xmrig/issues/1754) Fixed GPU health readings for pre Vega GPUs on Linux. - [#1754](https://github.com/xmlcore/xmlcore/issues/1754) Fixed GPU health readings for pre Vega GPUs on Linux.
- [#1756](https://github.com/xmrig/xmrig/issues/1756) Added results and connection reports. - [#1756](https://github.com/xmlcore/xmlcore/issues/1756) Added results and connection reports.
- [#1759](https://github.com/xmrig/xmrig/pull/1759) KawPow: fixed DAG initialization on slower AMD GPUs. - [#1759](https://github.com/xmlcore/xmlcore/pull/1759) KawPow: fixed DAG initialization on slower AMD GPUs.
- [#1763](https://github.com/xmrig/xmrig/pull/1763) KawPow: fixed rare duplicate share errors. - [#1763](https://github.com/xmlcore/xmlcore/pull/1763) KawPow: fixed rare duplicate share errors.
- [#1766](https://github.com/xmrig/xmrig/pull/1766) RandomX: small speedup on Ryzen CPUs. - [#1766](https://github.com/xmlcore/xmlcore/pull/1766) RandomX: small speedup on Ryzen CPUs.
# v6.2.2 # v6.2.2
- [#1742](https://github.com/xmrig/xmrig/issues/1742) Fixed crash when use HTTP API. - [#1742](https://github.com/xmlcore/xmlcore/issues/1742) Fixed crash when use HTTP API.
# v6.2.1 # v6.2.1
- [#1726](https://github.com/xmrig/xmrig/issues/1726) Fixed detection of AVX2/AVX512. - [#1726](https://github.com/xmlcore/xmlcore/issues/1726) Fixed detection of AVX2/AVX512.
- [#1728](https://github.com/xmrig/xmrig/issues/1728) Fixed, 32 bit Windows builds was crash on start. - [#1728](https://github.com/xmlcore/xmlcore/issues/1728) Fixed, 32 bit Windows builds was crash on start.
- [#1729](https://github.com/xmrig/xmrig/pull/1729) Fixed KawPow crash on old CPUs. - [#1729](https://github.com/xmlcore/xmlcore/pull/1729) Fixed KawPow crash on old CPUs.
- [#1730](https://github.com/xmrig/xmrig/pull/1730) Improved displaying information for compute errors on GPUs. - [#1730](https://github.com/xmlcore/xmlcore/pull/1730) Improved displaying information for compute errors on GPUs.
- [#1732](https://github.com/xmrig/xmrig/pull/1732) Fixed NiceHash disconnects for KawPow. - [#1732](https://github.com/xmlcore/xmlcore/pull/1732) Fixed NiceHash disconnects for KawPow.
- Fixed AMD GPU health (temperatures/power/clocks/fans) readings on Linux. - Fixed AMD GPU health (temperatures/power/clocks/fans) readings on Linux.
# v6.2.0-beta # v6.2.0-beta
- [#1717](https://github.com/xmrig/xmrig/pull/1717) Added new algorithm `cn/ccx` for Conceal. - [#1717](https://github.com/xmlcore/xmlcore/pull/1717) Added new algorithm `cn/ccx` for Conceal.
- [#1718](https://github.com/xmrig/xmrig/pull/1718) Fixed, linker on Linux was marking entire executable as having an executable stack. - [#1718](https://github.com/xmlcore/xmlcore/pull/1718) Fixed, linker on Linux was marking entire executable as having an executable stack.
- [#1720](https://github.com/xmrig/xmrig/pull/1720) Fixed broken CryptoNight algorithms family with gcc 10.1. - [#1720](https://github.com/xmlcore/xmlcore/pull/1720) Fixed broken CryptoNight algorithms family with gcc 10.1.
# v6.0.1-beta # v6.0.1-beta
- [#1708](https://github.com/xmrig/xmrig/issues/1708) Added `title` option. - [#1708](https://github.com/xmlcore/xmlcore/issues/1708) Added `title` option.
- [#1711](https://github.com/xmrig/xmrig/pull/1711) [cuda] Print errors from KawPow DAG initialization. - [#1711](https://github.com/xmlcore/xmlcore/pull/1711) [cuda] Print errors from KawPow DAG initialization.
- [#1713](https://github.com/xmrig/xmrig/pull/1713) [cuda] Reduced memory usage for KawPow, minimum CUDA plugin version now is 6.1.0. - [#1713](https://github.com/xmlcore/xmlcore/pull/1713) [cuda] Reduced memory usage for KawPow, minimum CUDA plugin version now is 6.1.0.
# v6.0.0-beta # v6.0.0-beta
- [#1694](https://github.com/xmrig/xmrig/pull/1694) Added support for KawPow algorithm (Ravencoin) on AMD/NVIDIA. - [#1694](https://github.com/xmlcore/xmlcore/pull/1694) Added support for KawPow algorithm (Ravencoin) on AMD/NVIDIA.
- Removed previously deprecated `cn/gpu` algorithm. - Removed previously deprecated `cn/gpu` algorithm.
- Default donation level reduced to 1% but you still can increase it if you like. - Default donation level reduced to 1% but you still can increase it if you like.
# v5.11.3 # v5.11.3
- [#1718](https://github.com/xmrig/xmrig/pull/1718) Fixed, linker on Linux was marking entire executable as having an executable stack. - [#1718](https://github.com/xmlcore/xmlcore/pull/1718) Fixed, linker on Linux was marking entire executable as having an executable stack.
- [#1720](https://github.com/xmrig/xmrig/pull/1720) Fixed broken CryptoNight algorithms family with gcc 10.1. - [#1720](https://github.com/xmlcore/xmlcore/pull/1720) Fixed broken CryptoNight algorithms family with gcc 10.1.
# v5.11.2 # v5.11.2
- [#1664](https://github.com/xmrig/xmrig/pull/1664) Improved JSON config error reporting. - [#1664](https://github.com/xmlcore/xmlcore/pull/1664) Improved JSON config error reporting.
- [#1668](https://github.com/xmrig/xmrig/pull/1668) Optimized RandomX dataset initialization. - [#1668](https://github.com/xmlcore/xmlcore/pull/1668) Optimized RandomX dataset initialization.
- [#1675](https://github.com/xmrig/xmrig/pull/1675) Fixed cross-compiling on Linux. - [#1675](https://github.com/xmlcore/xmlcore/pull/1675) Fixed cross-compiling on Linux.
- Fixed memory leak in HTTP client. - Fixed memory leak in HTTP client.
- Build [dependencies](https://github.com/xmrig/xmrig-deps/releases/tag/v4.1) updated to recent versions. - Build [dependencies](https://github.com/xmlcore/xmlcore-deps/releases/tag/v4.1) updated to recent versions.
- Compiler for Windows gcc builds updated to v10.1. - Compiler for Windows gcc builds updated to v10.1.
# v5.11.1 # v5.11.1
- [#1652](https://github.com/xmrig/xmrig/pull/1652) Up to 1% RandomX perfomance improvement on recent AMD CPUs. - [#1652](https://github.com/xmlcore/xmlcore/pull/1652) Up to 1% RandomX perfomance improvement on recent AMD CPUs.
- [#1306](https://github.com/xmrig/xmrig/issues/1306) Fixed possible double connection to a pool. - [#1306](https://github.com/xmlcore/xmlcore/issues/1306) Fixed possible double connection to a pool.
- [#1654](https://github.com/xmrig/xmrig/issues/1654) Fixed build with LibreSSL. - [#1654](https://github.com/xmlcore/xmlcore/issues/1654) Fixed build with LibreSSL.
# v5.11.0 # v5.11.0
- **[#1632](https://github.com/xmrig/xmrig/pull/1632) Added AstroBWT CUDA support ([CUDA plugin](https://github.com/xmrig/xmrig-cuda) v3.0.0 or newer required).** - **[#1632](https://github.com/xmlcore/xmlcore/pull/1632) Added AstroBWT CUDA support ([CUDA plugin](https://github.com/xmlcore/xmlcore-cuda) v3.0.0 or newer required).**
- [#1605](https://github.com/xmrig/xmrig/pull/1605) Fixed AstroBWT OpenCL for NVIDIA GPUs. - [#1605](https://github.com/xmlcore/xmlcore/pull/1605) Fixed AstroBWT OpenCL for NVIDIA GPUs.
- [#1635](https://github.com/xmrig/xmrig/pull/1635) Added pooled memory allocation of RandomX VMs (+0.5% speedup on Zen2). - [#1635](https://github.com/xmlcore/xmlcore/pull/1635) Added pooled memory allocation of RandomX VMs (+0.5% speedup on Zen2).
- [#1641](https://github.com/xmrig/xmrig/pull/1641) RandomX JIT refactoring, smaller memory footprint and a bit faster overall. - [#1641](https://github.com/xmlcore/xmlcore/pull/1641) RandomX JIT refactoring, smaller memory footprint and a bit faster overall.
- [#1643](https://github.com/xmrig/xmrig/issues/1643) Fixed build on CentOS 7. - [#1643](https://github.com/xmlcore/xmlcore/issues/1643) Fixed build on CentOS 7.
# v5.10.0 # v5.10.0
- [#1602](https://github.com/xmrig/xmrig/pull/1602) Added AMD GPUs support for AstroBWT algorithm. - [#1602](https://github.com/xmlcore/xmlcore/pull/1602) Added AMD GPUs support for AstroBWT algorithm.
- [#1590](https://github.com/xmrig/xmrig/pull/1590) MSR mod automatically deactivated after switching from RandomX algorithms. - [#1590](https://github.com/xmlcore/xmlcore/pull/1590) MSR mod automatically deactivated after switching from RandomX algorithms.
- [#1592](https://github.com/xmrig/xmrig/pull/1592) Added AVX2 optimized code for AstroBWT algorithm. - [#1592](https://github.com/xmlcore/xmlcore/pull/1592) Added AVX2 optimized code for AstroBWT algorithm.
- Added new config option `astrobwt-avx2` in `cpu` object and command line option `--astrobwt-avx2`. - Added new config option `astrobwt-avx2` in `cpu` object and command line option `--astrobwt-avx2`.
- [#1596](https://github.com/xmrig/xmrig/issues/1596) Major TLS (Transport Layer Security) subsystem update. - [#1596](https://github.com/xmlcore/xmlcore/issues/1596) Major TLS (Transport Layer Security) subsystem update.
- Added new TLS options, please check [xmrig-proxy documentation](https://xmrig.com/docs/proxy/tls) for details. - Added new TLS options, please check [xmlcore-proxy documentation](https://xmlcore.com/docs/proxy/tls) for details.
- `cn/gpu` algorithm now disabled by default and will be removed in next major (v6.x.x) release, no ETA for it right now. - `cn/gpu` algorithm now disabled by default and will be removed in next major (v6.x.x) release, no ETA for it right now.
- Added command line option `--data-dir`. - Added command line option `--data-dir`.
# v5.9.0 # v5.9.0
- [#1578](https://github.com/xmrig/xmrig/pull/1578) Added new RandomKEVA algorithm for upcoming Kevacoin fork, as `"algo": "rx/keva"` or `"coin": "keva"`. - [#1578](https://github.com/xmlcore/xmlcore/pull/1578) Added new RandomKEVA algorithm for upcoming Kevacoin fork, as `"algo": "rx/keva"` or `"coin": "keva"`.
- [#1584](https://github.com/xmrig/xmrig/pull/1584) Fixed invalid AstroBWT hashes after algorithm switching. - [#1584](https://github.com/xmlcore/xmlcore/pull/1584) Fixed invalid AstroBWT hashes after algorithm switching.
- [#1585](https://github.com/xmrig/xmrig/issues/1585) Fixed build without HTTP support. - [#1585](https://github.com/xmlcore/xmlcore/issues/1585) Fixed build without HTTP support.
- Added command line option `--astrobwt-max-size`. - Added command line option `--astrobwt-max-size`.
# v5.8.2 # v5.8.2
- [#1580](https://github.com/xmrig/xmrig/pull/1580) AstroBWT algorithm 20-50% speedup. - [#1580](https://github.com/xmlcore/xmlcore/pull/1580) AstroBWT algorithm 20-50% speedup.
- Added new option `astrobwt-max-size`. - Added new option `astrobwt-max-size`.
- [#1581](https://github.com/xmrig/xmrig/issues/1581) Fixed macOS build. - [#1581](https://github.com/xmlcore/xmlcore/issues/1581) Fixed macOS build.
# v5.8.1 # v5.8.1
- [#1575](https://github.com/xmrig/xmrig/pull/1575) Fixed new block detection for DERO solo mining. - [#1575](https://github.com/xmlcore/xmlcore/pull/1575) Fixed new block detection for DERO solo mining.
# v5.8.0 # v5.8.0
- [#1573](https://github.com/xmrig/xmrig/pull/1573) Added new AstroBWT algorithm for upcoming DERO fork, as `"algo": "astrobwt"` or `"coin": "dero"`. - [#1573](https://github.com/xmlcore/xmlcore/pull/1573) Added new AstroBWT algorithm for upcoming DERO fork, as `"algo": "astrobwt"` or `"coin": "dero"`.
# v5.7.0 # v5.7.0
- **Added SOCKS5 proxies support for Tor https://xmrig.com/docs/miner/tor.** - **Added SOCKS5 proxies support for Tor https://xmlcore.com/docs/miner/tor.**
- [#377](https://github.com/xmrig/xmrig-proxy/issues/377) Fixed duplicate jobs in daemon (solo) mining client. - [#377](https://github.com/xmlcore/xmlcore-proxy/issues/377) Fixed duplicate jobs in daemon (solo) mining client.
- [#1560](https://github.com/xmrig/xmrig/pull/1560) RandomX 0.3-0.4% speedup depending on CPU. - [#1560](https://github.com/xmlcore/xmlcore/pull/1560) RandomX 0.3-0.4% speedup depending on CPU.
- Fixed possible crashes in HTTP client. - Fixed possible crashes in HTTP client.
# v5.6.0 # v5.6.0
- [#1536](https://github.com/xmrig/xmrig/pull/1536) Added workaround for new AMD GPU drivers. - [#1536](https://github.com/xmlcore/xmlcore/pull/1536) Added workaround for new AMD GPU drivers.
- [#1546](https://github.com/xmrig/xmrig/pull/1546) Fixed generic OpenCL code for AMD Navi GPUs. - [#1546](https://github.com/xmlcore/xmlcore/pull/1546) Fixed generic OpenCL code for AMD Navi GPUs.
- [#1551](https://github.com/xmrig/xmrig/pull/1551) Added RandomX JIT for AMD Navi GPUs. - [#1551](https://github.com/xmlcore/xmlcore/pull/1551) Added RandomX JIT for AMD Navi GPUs.
- Added health information for AMD GPUs (clocks/power/fan/temperature) via ADL (Windows) and sysfs (Linux). - Added health information for AMD GPUs (clocks/power/fan/temperature) via ADL (Windows) and sysfs (Linux).
- Fixed possible nicehash nonce overflow in some conditions. - Fixed possible nicehash nonce overflow in some conditions.
- Fixed wrong OpenCL platform on macOS, option `platform` now ignored on this OS. - Fixed wrong OpenCL platform on macOS, option `platform` now ignored on this OS.
# v5.5.3 # v5.5.3
- [#1529](https://github.com/xmrig/xmrig/pull/1529) Fixed crash on Bulldozer CPUs. - [#1529](https://github.com/xmlcore/xmlcore/pull/1529) Fixed crash on Bulldozer CPUs.
# v5.5.2 # v5.5.2
- [#1500](https://github.com/xmrig/xmrig/pull/1500) Removed unnecessary code from RandomX JIT compiler. - [#1500](https://github.com/xmlcore/xmlcore/pull/1500) Removed unnecessary code from RandomX JIT compiler.
- [#1502](https://github.com/xmrig/xmrig/pull/1502) Optimizations for AMD Bulldozer. - [#1502](https://github.com/xmlcore/xmlcore/pull/1502) Optimizations for AMD Bulldozer.
- [#1508](https://github.com/xmrig/xmrig/pull/1508) Added support for BMI2 instructions. - [#1508](https://github.com/xmlcore/xmlcore/pull/1508) Added support for BMI2 instructions.
- [#1510](https://github.com/xmrig/xmrig/pull/1510) Optimized `CFROUND` instruction for RandomX. - [#1510](https://github.com/xmlcore/xmlcore/pull/1510) Optimized `CFROUND` instruction for RandomX.
- [#1520](https://github.com/xmrig/xmrig/pull/1520) Fixed thread affinity. - [#1520](https://github.com/xmlcore/xmlcore/pull/1520) Fixed thread affinity.
# v5.5.1 # v5.5.1
- [#1469](https://github.com/xmrig/xmrig/issues/1469) Fixed build with gcc 4.8. - [#1469](https://github.com/xmlcore/xmlcore/issues/1469) Fixed build with gcc 4.8.
- [#1473](https://github.com/xmrig/xmrig/pull/1473) Added RandomX auto-config for mobile Ryzen APUs. - [#1473](https://github.com/xmlcore/xmlcore/pull/1473) Added RandomX auto-config for mobile Ryzen APUs.
- [#1477](https://github.com/xmrig/xmrig/pull/1477) Fixed build with Clang. - [#1477](https://github.com/xmlcore/xmlcore/pull/1477) Fixed build with Clang.
- [#1489](https://github.com/xmrig/xmrig/pull/1489) RandomX JIT compiler tweaks. - [#1489](https://github.com/xmlcore/xmlcore/pull/1489) RandomX JIT compiler tweaks.
- [#1493](https://github.com/xmrig/xmrig/pull/1493) Default value for Intel MSR preset changed to `15`. - [#1493](https://github.com/xmlcore/xmlcore/pull/1493) Default value for Intel MSR preset changed to `15`.
- Fixed unwanted resume after RandomX dataset change. - Fixed unwanted resume after RandomX dataset change.
# v5.5.0 # v5.5.0
- [#179](https://github.com/xmrig/xmrig/issues/179) Added support for [environment variables](https://xmrig.com/docs/miner/environment-variables) in config file. - [#179](https://github.com/xmlcore/xmlcore/issues/179) Added support for [environment variables](https://xmlcore.com/docs/miner/environment-variables) in config file.
- [#1445](https://github.com/xmrig/xmrig/pull/1445) Removed `rx/v` algorithm. - [#1445](https://github.com/xmlcore/xmlcore/pull/1445) Removed `rx/v` algorithm.
- [#1453](https://github.com/xmrig/xmrig/issues/1453) Fixed crash on 32bit systems. - [#1453](https://github.com/xmlcore/xmlcore/issues/1453) Fixed crash on 32bit systems.
- [#1459](https://github.com/xmrig/xmrig/issues/1459) Fixed crash on very low memory systems. - [#1459](https://github.com/xmlcore/xmlcore/issues/1459) Fixed crash on very low memory systems.
- [#1465](https://github.com/xmrig/xmrig/pull/1465) Added fix for 1st-gen Ryzen crashes. - [#1465](https://github.com/xmlcore/xmlcore/pull/1465) Added fix for 1st-gen Ryzen crashes.
- [#1466](https://github.com/xmrig/xmrig/pull/1466) Added `cn-pico/tlo` algorithm. - [#1466](https://github.com/xmlcore/xmlcore/pull/1466) Added `cn-pico/tlo` algorithm.
- Added `--randomx-no-rdmsr` command line option. - Added `--randomx-no-rdmsr` command line option.
- Added console title for Windows with miner name and version. - Added console title for Windows with miner name and version.
- On Windows `priority` option now also change base priority. - On Windows `priority` option now also change base priority.
# v5.4.0 # v5.4.0
- [#1434](https://github.com/xmrig/xmrig/pull/1434) Added RandomSFX (`rx/sfx`) algorithm for Safex Cash. - [#1434](https://github.com/xmlcore/xmlcore/pull/1434) Added RandomSFX (`rx/sfx`) algorithm for Safex Cash.
- [#1445](https://github.com/xmrig/xmrig/pull/1445) Added RandomV (`rx/v`) algorithm for *new* MoneroV. - [#1445](https://github.com/xmlcore/xmlcore/pull/1445) Added RandomV (`rx/v`) algorithm for *new* MoneroV.
- [#1419](https://github.com/xmrig/xmrig/issues/1419) Added reverting MSR changes on miner exit, use `"rdmsr": false,` in `"randomx"` object to disable this feature. - [#1419](https://github.com/xmlcore/xmlcore/issues/1419) Added reverting MSR changes on miner exit, use `"rdmsr": false,` in `"randomx"` object to disable this feature.
- [#1423](https://github.com/xmrig/xmrig/issues/1423) Fixed conflicts with exists WinRing0 driver service. - [#1423](https://github.com/xmlcore/xmlcore/issues/1423) Fixed conflicts with exists WinRing0 driver service.
- [#1425](https://github.com/xmrig/xmrig/issues/1425) Fixed crash on first generation Zen CPUs (MSR mod accidentally enable Opcache), additionally now you can disable Opcache and enable MSR mod via config `"wrmsr": ["0xc0011020:0x0", "0xc0011021:0x60", "0xc0011022:0x510000", "0xc001102b:0x1808cc16"],`. - [#1425](https://github.com/xmlcore/xmlcore/issues/1425) Fixed crash on first generation Zen CPUs (MSR mod accidentally enable Opcache), additionally now you can disable Opcache and enable MSR mod via config `"wrmsr": ["0xc0011020:0x0", "0xc0011021:0x60", "0xc0011022:0x510000", "0xc001102b:0x1808cc16"],`.
- Added advanced usage for `wrmsr` option, for example: `"wrmsr": ["0x1a4:0x6"],` (Intel) and `"wrmsr": ["0xc0011020:0x0", "0xc0011021:0x40:0xffffffffffffffdf", "0xc0011022:0x510000", "0xc001102b:0x1808cc16"],` (Ryzen). - Added advanced usage for `wrmsr` option, for example: `"wrmsr": ["0x1a4:0x6"],` (Intel) and `"wrmsr": ["0xc0011020:0x0", "0xc0011021:0x40:0xffffffffffffffdf", "0xc0011022:0x510000", "0xc001102b:0x1808cc16"],` (Ryzen).
- Added new config option `"verbose"` and command line option `--verbose`. - Added new config option `"verbose"` and command line option `--verbose`.
# v5.3.0 # v5.3.0
- [#1414](https://github.com/xmrig/xmrig/pull/1414) Added native MSR support for Windows, by using signed **WinRing0 driver** (© 2007-2009 OpenLibSys.org). - [#1414](https://github.com/xmlcore/xmlcore/pull/1414) Added native MSR support for Windows, by using signed **WinRing0 driver** (© 2007-2009 OpenLibSys.org).
- Added new [MSR documentation](https://xmrig.com/docs/miner/randomx-optimization-guide/msr). - Added new [MSR documentation](https://xmlcore.com/docs/miner/randomx-optimization-guide/msr).
- [#1418](https://github.com/xmrig/xmrig/pull/1418) Increased stratum send buffer size. - [#1418](https://github.com/xmlcore/xmlcore/pull/1418) Increased stratum send buffer size.
# v5.2.1 # v5.2.1
- [#1408](https://github.com/xmrig/xmrig/pull/1408) Added RandomX boost script for Linux (if you don't like run miner with root privileges). - [#1408](https://github.com/xmlcore/xmlcore/pull/1408) Added RandomX boost script for Linux (if you don't like run miner with root privileges).
- Added support for [AMD Ryzen MSR registers](https://www.reddit.com/r/MoneroMining/comments/e962fu/9526_hs_on_ryzen_7_3700x_xmrig_520_1gb_pages_msr/) (Linux only). - Added support for [AMD Ryzen MSR registers](https://www.reddit.com/r/MoneroMining/comments/e962fu/9526_hs_on_ryzen_7_3700x_xmlcore_520_1gb_pages_msr/) (Linux only).
- Fixed command line option `--randomx-wrmsr` option without parameters. - Fixed command line option `--randomx-wrmsr` option without parameters.
# v5.2.0 # v5.2.0
- **[#1388](https://github.com/xmrig/xmrig/pull/1388) Added [1GB huge pages support](https://xmrig.com/docs/miner/hugepages#onegb-huge-pages) for Linux.** - **[#1388](https://github.com/xmlcore/xmlcore/pull/1388) Added [1GB huge pages support](https://xmlcore.com/docs/miner/hugepages#onegb-huge-pages) for Linux.**
- Added new option `1gb-pages` in `randomx` object with command line equivalent `--randomx-1gb-pages`. - Added new option `1gb-pages` in `randomx` object with command line equivalent `--randomx-1gb-pages`.
- Added automatic huge pages configuration on Linux if use the miner with root privileges. - Added automatic huge pages configuration on Linux if use the miner with root privileges.
- **Added [automatic Intel prefetchers configuration](https://xmrig.com/docs/miner/randomx-optimization-guide#intel-specific-optimizations) on Linux.** - **Added [automatic Intel prefetchers configuration](https://xmlcore.com/docs/miner/randomx-optimization-guide#intel-specific-optimizations) on Linux.**
- Added new option `wrmsr` in `randomx` object with command line equivalent `--randomx-wrmsr=6`. - Added new option `wrmsr` in `randomx` object with command line equivalent `--randomx-wrmsr=6`.
- [#1396](https://github.com/xmrig/xmrig/pull/1396) [#1401](https://github.com/xmrig/xmrig/pull/1401) New performance optimizations for Ryzen CPUs. - [#1396](https://github.com/xmlcore/xmlcore/pull/1396) [#1401](https://github.com/xmlcore/xmlcore/pull/1401) New performance optimizations for Ryzen CPUs.
- [#1385](https://github.com/xmrig/xmrig/issues/1385) Added `max-threads-hint` option support for RandomX dataset initialization threads. - [#1385](https://github.com/xmlcore/xmlcore/issues/1385) Added `max-threads-hint` option support for RandomX dataset initialization threads.
- [#1386](https://github.com/xmrig/xmrig/issues/1386) Added `priority` option support for RandomX dataset initialization threads. - [#1386](https://github.com/xmlcore/xmlcore/issues/1386) Added `priority` option support for RandomX dataset initialization threads.
- For official builds all dependencies (libuv, hwloc, openssl) updated to recent versions. - For official builds all dependencies (libuv, hwloc, openssl) updated to recent versions.
- Windows `msvc` builds now use Visual Studio 2019 instead of 2017. - Windows `msvc` builds now use Visual Studio 2019 instead of 2017.
# v5.1.1 # v5.1.1
- [#1365](https://github.com/xmrig/xmrig/issues/1365) Fixed various system response/stability issues. - [#1365](https://github.com/xmlcore/xmlcore/issues/1365) Fixed various system response/stability issues.
- Added new CPU option `yield` and command line equivalent `--cpu-no-yield`. - Added new CPU option `yield` and command line equivalent `--cpu-no-yield`.
- [#1363](https://github.com/xmrig/xmrig/issues/1363) Fixed wrong priority of main miner thread. - [#1363](https://github.com/xmlcore/xmlcore/issues/1363) Fixed wrong priority of main miner thread.
# v5.1.0 # v5.1.0
- [#1351](https://github.com/xmrig/xmrig/pull/1351) RandomX optimizations and fixes. - [#1351](https://github.com/xmlcore/xmlcore/pull/1351) RandomX optimizations and fixes.
- Improved RandomX performance (up to +6-7% on Intel CPUs, +2-3% on Ryzen CPUs) - Improved RandomX performance (up to +6-7% on Intel CPUs, +2-3% on Ryzen CPUs)
- Added workaround for Intel JCC erratum bug see https://www.phoronix.com/scan.php?page=article&item=intel-jcc-microcode&num=1 for details. - Added workaround for Intel JCC erratum bug see https://www.phoronix.com/scan.php?page=article&item=intel-jcc-microcode&num=1 for details.
- Note! Always disable "Hardware prefetcher" and "Adjacent cacheline prefetch" in BIOS for Intel CPUs to get the optimal RandomX performance. - Note! Always disable "Hardware prefetcher" and "Adjacent cacheline prefetch" in BIOS for Intel CPUs to get the optimal RandomX performance.
- [#1307](https://github.com/xmrig/xmrig/issues/1307) Fixed mining resume after donation round for pools with `self-select` feature. - [#1307](https://github.com/xmlcore/xmlcore/issues/1307) Fixed mining resume after donation round for pools with `self-select` feature.
- [#1318](https://github.com/xmrig/xmrig/issues/1318#issuecomment-559676080) Added option `"mode"` (or `--randomx-mode`) for RandomX. - [#1318](https://github.com/xmlcore/xmlcore/issues/1318#issuecomment-559676080) Added option `"mode"` (or `--randomx-mode`) for RandomX.
- Added memory information on miner startup. - Added memory information on miner startup.
- Added `resources` field to summary API with memory information and load average. - Added `resources` field to summary API with memory information and load average.
# v5.0.1 # v5.0.1
- [#1234](https://github.com/xmrig/xmrig/issues/1234) Fixed compatibility with some AMD GPUs. - [#1234](https://github.com/xmlcore/xmlcore/issues/1234) Fixed compatibility with some AMD GPUs.
- [#1284](https://github.com/xmrig/xmrig/issues/1284) Fixed build without RandomX. - [#1284](https://github.com/xmlcore/xmlcore/issues/1284) Fixed build without RandomX.
- [#1285](https://github.com/xmrig/xmrig/issues/1285) Added command line options `--cuda-bfactor-hint` and `--cuda-bsleep-hint`. - [#1285](https://github.com/xmlcore/xmlcore/issues/1285) Added command line options `--cuda-bfactor-hint` and `--cuda-bsleep-hint`.
- [#1290](https://github.com/xmrig/xmrig/pull/1290) Fixed 32-bit ARM compilation. - [#1290](https://github.com/xmlcore/xmlcore/pull/1290) Fixed 32-bit ARM compilation.
# v5.0.0 # v5.0.0
This version is first stable unified 3 in 1 GPU+CPU release, OpenCL support built in in miner and not require additional external dependencies on compile time, NVIDIA CUDA available as external [CUDA plugin](https://github.com/xmrig/xmrig-cuda), for convenient, 3 in 1 downloads with recent CUDA version also provided. This version is first stable unified 3 in 1 GPU+CPU release, OpenCL support built in in miner and not require additional external dependencies on compile time, NVIDIA CUDA available as external [CUDA plugin](https://github.com/xmlcore/xmlcore-cuda), for convenient, 3 in 1 downloads with recent CUDA version also provided.
This release based on 4.x.x series and include all features from v4.6.2-beta, changelog below include only the most important changes, [full changelog](doc/CHANGELOG_OLD.md) available separately. This release based on 4.x.x series and include all features from v4.6.2-beta, changelog below include only the most important changes, [full changelog](doc/CHANGELOG_OLD.md) available separately.
- [#1272](https://github.com/xmrig/xmrig/pull/1272) Optimized hashrate calculation. - [#1272](https://github.com/xmlcore/xmlcore/pull/1272) Optimized hashrate calculation.
- [#1263](https://github.com/xmrig/xmrig/pull/1263) Added new option `dataset_host` for NVIDIA GPUs with less than 4 GB memory (RandomX only). - [#1263](https://github.com/xmlcore/xmlcore/pull/1263) Added new option `dataset_host` for NVIDIA GPUs with less than 4 GB memory (RandomX only).
- [#1068](https://github.com/xmrig/xmrig/pull/1068) Added support for `self-select` stratum protocol extension. - [#1068](https://github.com/xmlcore/xmlcore/pull/1068) Added support for `self-select` stratum protocol extension.
- [#1227](https://github.com/xmrig/xmrig/pull/1227) Added new algorithm `rx/arq`, RandomX variant for upcoming ArQmA fork. - [#1227](https://github.com/xmlcore/xmlcore/pull/1227) Added new algorithm `rx/arq`, RandomX variant for upcoming ArQmA fork.
- [#808](https://github.com/xmrig/xmrig/issues/808#issuecomment-539297156) Added experimental support for persistent memory for CPU mining threads. - [#808](https://github.com/xmlcore/xmlcore/issues/808#issuecomment-539297156) Added experimental support for persistent memory for CPU mining threads.
- [#1221](https://github.com/xmrig/xmrig/issues/1221) Improved RandomX dataset memory usage and initialization speed for NUMA machines. - [#1221](https://github.com/xmlcore/xmlcore/issues/1221) Improved RandomX dataset memory usage and initialization speed for NUMA machines.
- [#1175](https://github.com/xmrig/xmrig/issues/1175) Fixed support for systems where total count of NUMA nodes not equal usable nodes count. - [#1175](https://github.com/xmlcore/xmlcore/issues/1175) Fixed support for systems where total count of NUMA nodes not equal usable nodes count.
- Added config option `cpu/max-threads-hint` and command line option `--cpu-max-threads-hint`. - Added config option `cpu/max-threads-hint` and command line option `--cpu-max-threads-hint`.
- [#1185](https://github.com/xmrig/xmrig/pull/1185) Added JIT compiler for RandomX on ARMv8. - [#1185](https://github.com/xmlcore/xmlcore/pull/1185) Added JIT compiler for RandomX on ARMv8.
- Improved API endpoint `GET /2/backends` and added support for this endpoint to [workers.xmrig.info](http://workers.xmrig.info). - Improved API endpoint `GET /2/backends` and added support for this endpoint to [workers.xmlcore.info](http://workers.xmlcore.info).
- Added command line option `--no-cpu` to disable CPU backend. - Added command line option `--no-cpu` to disable CPU backend.
- Added OpenCL specific command line options: `--opencl`, `--opencl-devices`, `--opencl-platform`, `--opencl-loader` and `--opencl-no-cache`. - Added OpenCL specific command line options: `--opencl`, `--opencl-devices`, `--opencl-platform`, `--opencl-loader` and `--opencl-no-cache`.
- Added CUDA specific command line options: `--cuda`, `--cuda-loader` and `--no-nvml`. - Added CUDA specific command line options: `--cuda`, `--cuda-loader` and `--no-nvml`.
- Removed command line option `--http-enabled`, HTTP API enabled automatically if any other `--http-*` option provided. - Removed command line option `--http-enabled`, HTTP API enabled automatically if any other `--http-*` option provided.
- [#1172](https://github.com/xmrig/xmrig/issues/1172) **Added OpenCL mining backend.** - [#1172](https://github.com/xmlcore/xmlcore/issues/1172) **Added OpenCL mining backend.**
- [#268](https://github.com/xmrig/xmrig-amd/pull/268) [#270](https://github.com/xmrig/xmrig-amd/pull/270) [#271](https://github.com/xmrig/xmrig-amd/pull/271) [#273](https://github.com/xmrig/xmrig-amd/pull/273) [#274](https://github.com/xmrig/xmrig-amd/pull/274) [#1171](https://github.com/xmrig/xmrig/pull/1171) Added RandomX support for OpenCL, thanks [@SChernykh](https://github.com/SChernykh). - [#268](https://github.com/xmlcore/xmlcore-amd/pull/268) [#270](https://github.com/xmlcore/xmlcore-amd/pull/270) [#271](https://github.com/xmlcore/xmlcore-amd/pull/271) [#273](https://github.com/xmlcore/xmlcore-amd/pull/273) [#274](https://github.com/xmlcore/xmlcore-amd/pull/274) [#1171](https://github.com/xmlcore/xmlcore/pull/1171) Added RandomX support for OpenCL, thanks [@SChernykh](https://github.com/SChernykh).
- Algorithm `cn/wow` removed, as no longer alive. - Algorithm `cn/wow` removed, as no longer alive.
# Previous versions # Previous versions

View file

@ -1,5 +1,6 @@
cmake_minimum_required(VERSION 2.8.12) cmake_minimum_required(VERSION 2.8.12)
project(xmrig) SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE} CACHE STRING "" FORCE)
project(xmlcore)
option(WITH_HWLOC "Enable hwloc support" ON) option(WITH_HWLOC "Enable hwloc support" ON)
option(WITH_CN_LITE "Enable CryptoNight-Lite algorithms family" ON) option(WITH_CN_LITE "Enable CryptoNight-Lite algorithms family" ON)
@ -88,7 +89,7 @@ set(HEADERS_CRYPTO
src/crypto/common/VirtualMemory.h src/crypto/common/VirtualMemory.h
) )
if (XMRIG_ARM) if (xmlcore_ARM)
set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/cn/CryptoNight_arm.h) set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/cn/CryptoNight_arm.h)
else() else()
set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/cn/CryptoNight_x86.h) set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/cn/CryptoNight_x86.h)
@ -107,7 +108,7 @@ set(SOURCES
src/net/Network.cpp src/net/Network.cpp
src/net/strategies/DonateStrategy.cpp src/net/strategies/DonateStrategy.cpp
src/Summary.cpp src/Summary.cpp
src/xmrig.cpp src/xmlcore.cpp
) )
set(SOURCES_CRYPTO set(SOURCES_CRYPTO
@ -134,7 +135,7 @@ if (WITH_HWLOC)
) )
endif() endif()
if (XMRIG_OS_WIN) if (xmlcore_OS_WIN)
list(APPEND SOURCES_OS list(APPEND SOURCES_OS
res/app.rc res/app.rc
src/App_win.cpp src/App_win.cpp
@ -142,7 +143,7 @@ if (XMRIG_OS_WIN)
) )
set(EXTRA_LIBS ws2_32 psapi iphlpapi userenv) set(EXTRA_LIBS ws2_32 psapi iphlpapi userenv)
elseif (XMRIG_OS_APPLE) elseif (xmlcore_OS_APPLE)
list(APPEND SOURCES_OS list(APPEND SOURCES_OS
src/App_unix.cpp src/App_unix.cpp
src/crypto/common/VirtualMemory_unix.cpp src/crypto/common/VirtualMemory_unix.cpp
@ -155,21 +156,21 @@ else()
src/crypto/common/VirtualMemory_unix.cpp src/crypto/common/VirtualMemory_unix.cpp
) )
if (XMRIG_OS_ANDROID) if (xmlcore_OS_ANDROID)
set(EXTRA_LIBS pthread rt dl log) set(EXTRA_LIBS pthread rt dl log)
elseif (XMRIG_OS_LINUX) elseif (xmlcore_OS_LINUX)
list(APPEND SOURCES_OS list(APPEND SOURCES_OS
src/crypto/common/LinuxMemory.h src/crypto/common/LinuxMemory.h
src/crypto/common/LinuxMemory.cpp src/crypto/common/LinuxMemory.cpp
) )
set(EXTRA_LIBS pthread rt dl) set(EXTRA_LIBS pthread rt dl)
elseif (XMRIG_OS_FREEBSD) elseif (xmlcore_OS_FREEBSD)
set(EXTRA_LIBS kvm pthread) set(EXTRA_LIBS kvm pthread)
endif() endif()
endif() endif()
add_definitions(-DXMRIG_MINER_PROJECT -DXMRIG_JSON_SINGLE_LINE_ARRAY) add_definitions(-Dxmlcore_MINER_PROJECT -Dxmlcore_JSON_SINGLE_LINE_ARRAY)
add_definitions(-D__STDC_FORMAT_MACROS -DUNICODE -D_FILE_OFFSET_BITS=64) add_definitions(-D__STDC_FORMAT_MACROS -DUNICODE -D_FILE_OFFSET_BITS=64)
find_package(UV REQUIRED) find_package(UV REQUIRED)
@ -183,19 +184,19 @@ include(cmake/OpenSSL.cmake)
include(cmake/asm.cmake) include(cmake/asm.cmake)
if (WITH_CN_LITE) if (WITH_CN_LITE)
add_definitions(/DXMRIG_ALGO_CN_LITE) add_definitions(/Dxmlcore_ALGO_CN_LITE)
endif() endif()
if (WITH_CN_HEAVY) if (WITH_CN_HEAVY)
add_definitions(/DXMRIG_ALGO_CN_HEAVY) add_definitions(/Dxmlcore_ALGO_CN_HEAVY)
endif() endif()
if (WITH_CN_PICO) if (WITH_CN_PICO)
add_definitions(/DXMRIG_ALGO_CN_PICO) add_definitions(/Dxmlcore_ALGO_CN_PICO)
endif() endif()
if (WITH_EMBEDDED_CONFIG) if (WITH_EMBEDDED_CONFIG)
add_definitions(/DXMRIG_FEATURE_EMBEDDED_CONFIG) add_definitions(/Dxmlcore_FEATURE_EMBEDDED_CONFIG)
endif() endif()
include(src/hw/api/api.cmake) include(src/hw/api/api.cmake)
@ -209,8 +210,8 @@ if (WITH_DEBUG_LOG)
add_definitions(/DAPP_DEBUG) add_definitions(/DAPP_DEBUG)
endif() endif()
add_executable(${CMAKE_PROJECT_NAME} ${HEADERS} ${SOURCES} ${SOURCES_OS} ${HEADERS_CRYPTO} ${SOURCES_CRYPTO} ${SOURCES_SYSLOG} ${TLS_SOURCES} ${XMRIG_ASM_SOURCES}) add_executable(${CMAKE_PROJECT_NAME} ${HEADERS} ${SOURCES} ${SOURCES_OS} ${HEADERS_CRYPTO} ${SOURCES_CRYPTO} ${SOURCES_SYSLOG} ${TLS_SOURCES} ${xmlcore_ASM_SOURCES})
target_link_libraries(${CMAKE_PROJECT_NAME} ${XMRIG_ASM_LIBRARY} ${OPENSSL_LIBRARIES} ${UV_LIBRARIES} ${EXTRA_LIBS} ${CPUID_LIB} ${ARGON2_LIBRARY} ${ETHASH_LIBRARY}) target_link_libraries(${CMAKE_PROJECT_NAME} ${xmlcore_ASM_LIBRARY} ${OPENSSL_LIBRARIES} ${UV_LIBRARIES} ${EXTRA_LIBS} ${CPUID_LIB} ${ARGON2_LIBRARY} ${ETHASH_LIBRARY})
if (WIN32) 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" $<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}/bin/WinRing0/WinRing0x64.sys" $<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>)

View file

@ -1,38 +1,38 @@
# XMRig # xmlcore
[![Github All Releases](https://img.shields.io/github/downloads/xmrig/xmrig/total.svg)](https://github.com/xmrig/xmrig/releases) [![Github All Releases](https://img.shields.io/github/downloads/xmlcore/xmlcore/total.svg)](https://github.com/xmlcore/xmlcore/releases)
[![GitHub release](https://img.shields.io/github/release/xmrig/xmrig/all.svg)](https://github.com/xmrig/xmrig/releases) [![GitHub release](https://img.shields.io/github/release/xmlcore/xmlcore/all.svg)](https://github.com/xmlcore/xmlcore/releases)
[![GitHub Release Date](https://img.shields.io/github/release-date/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/releases) [![GitHub Release Date](https://img.shields.io/github/release-date/xmlcore/xmlcore.svg)](https://github.com/xmlcore/xmlcore/releases)
[![GitHub license](https://img.shields.io/github/license/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/blob/master/LICENSE) [![GitHub license](https://img.shields.io/github/license/xmlcore/xmlcore.svg)](https://github.com/xmlcore/xmlcore/blob/master/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/stargazers) [![GitHub stars](https://img.shields.io/github/stars/xmlcore/xmlcore.svg)](https://github.com/xmlcore/xmlcore/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/network) [![GitHub forks](https://img.shields.io/github/forks/xmlcore/xmlcore.svg)](https://github.com/xmlcore/xmlcore/network)
XMRig is a high performance, open source, cross platform RandomX, KawPow, CryptoNight and AstroBWT unified CPU/GPU miner and [RandomX benchmark](https://xmrig.com/benchmark). Official binaries are available for Windows, Linux, macOS and FreeBSD. xmlcore is a high performance, open source, cross platform RandomX, KawPow, CryptoNight and AstroBWT unified CPU/GPU miner and [RandomX benchmark](https://xmlcore.com/benchmark). Official binaries are available for Windows, Linux, macOS and FreeBSD.
## Mining backends ## Mining backends
- **CPU** (x64/ARMv8) - **CPU** (x64/ARMv8)
- **OpenCL** for AMD GPUs. - **OpenCL** for AMD GPUs.
- **CUDA** for NVIDIA GPUs via external [CUDA plugin](https://github.com/xmrig/xmrig-cuda). - **CUDA** for NVIDIA GPUs via external [CUDA plugin](https://github.com/xmlcore/xmlcore-cuda).
## Download ## Download
* **[Binary releases](https://github.com/xmrig/xmrig/releases)** * **[Binary releases](https://github.com/xmlcore/xmlcore/releases)**
* **[Build from source](https://xmrig.com/docs/miner/build)** * **[Build from source](https://xmlcore.com/docs/miner/build)**
## Usage ## 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](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 calls. 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](https://xmlcore.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 calls.
* **[Wizard](https://xmrig.com/wizard)** helps you create initial configuration for the miner. * **[Wizard](https://xmlcore.com/wizard)** helps you create initial configuration for the miner.
* **[Workers](http://workers.xmrig.info)** helps manage your miners via HTTP API. * **[Workers](http://workers.xmlcore.info)** helps manage your miners via HTTP API.
## Donations ## Donations
* Default donation 1% (1 minute in 100 minutes) can be increased 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` * XMR: `48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD`
## Developers ## Developers
* **[xmrig](https://github.com/xmrig)** * **[xmlcore](https://github.com/xmlcore)**
* **[sech1](https://github.com/SChernykh)** * **[sech1](https://github.com/SChernykh)**
## Contacts ## Contacts
* support@xmrig.com * support@xmlcore.com
* [reddit](https://www.reddit.com/user/XMRig/) * [reddit](https://www.reddit.com/user/xmlcore/)
* [twitter](https://twitter.com/xmrig_dev) * [twitter](https://twitter.com/xmlcore_dev)

View file

@ -1,7 +1,7 @@
find_path( find_path(
HWLOC_INCLUDE_DIR HWLOC_INCLUDE_DIR
NAMES hwloc.h NAMES hwloc.h
PATHS "${XMRIG_DEPS}" ENV "XMRIG_DEPS" PATHS "${xmlcore_DEPS}" ENV "xmlcore_DEPS"
PATH_SUFFIXES "include" PATH_SUFFIXES "include"
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )
@ -11,7 +11,7 @@ find_path(HWLOC_INCLUDE_DIR NAMES hwloc.h)
find_library( find_library(
HWLOC_LIBRARY HWLOC_LIBRARY
NAMES hwloc.a hwloc libhwloc NAMES hwloc.a hwloc libhwloc
PATHS "${XMRIG_DEPS}" ENV "XMRIG_DEPS" PATHS "${xmlcore_DEPS}" ENV "xmlcore_DEPS"
PATH_SUFFIXES "lib" PATH_SUFFIXES "lib"
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )

View file

@ -1,7 +1,7 @@
find_path( find_path(
UV_INCLUDE_DIR UV_INCLUDE_DIR
NAMES uv.h NAMES uv.h
PATHS "${XMRIG_DEPS}" ENV "XMRIG_DEPS" PATHS "${xmlcore_DEPS}" ENV "xmlcore_DEPS"
PATH_SUFFIXES "include" PATH_SUFFIXES "include"
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )
@ -11,7 +11,7 @@ find_path(UV_INCLUDE_DIR NAMES uv.h)
find_library( find_library(
UV_LIBRARY UV_LIBRARY
NAMES libuv.a uv libuv NAMES libuv.a uv libuv
PATHS "${XMRIG_DEPS}" ENV "XMRIG_DEPS" PATHS "${xmlcore_DEPS}" ENV "xmlcore_DEPS"
PATH_SUFFIXES "lib" PATH_SUFFIXES "lib"
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )

View file

@ -1,5 +1,5 @@
if (WITH_TLS) if (WITH_TLS)
set(OPENSSL_ROOT_DIR ${XMRIG_DEPS}) set(OPENSSL_ROOT_DIR ${xmlcore_DEPS})
if (WIN32) if (WIN32)
set(OPENSSL_USE_STATIC_LIBS TRUE) set(OPENSSL_USE_STATIC_LIBS TRUE)
@ -47,11 +47,11 @@ if (WITH_TLS)
message(FATAL_ERROR "OpenSSL NOT found: use `-DWITH_TLS=OFF` to build without TLS support") message(FATAL_ERROR "OpenSSL NOT found: use `-DWITH_TLS=OFF` to build without TLS support")
endif() endif()
add_definitions(/DXMRIG_FEATURE_TLS) add_definitions(/Dxmlcore_FEATURE_TLS)
else() else()
set(TLS_SOURCES "") set(TLS_SOURCES "")
set(OPENSSL_LIBRARIES "") set(OPENSSL_LIBRARIES "")
remove_definitions(/DXMRIG_FEATURE_TLS) remove_definitions(/Dxmlcore_FEATURE_TLS)
if (WITH_HTTP) if (WITH_HTTP)
set(TLS_SOURCES ${TLS_SOURCES} set(TLS_SOURCES ${TLS_SOURCES}

View file

@ -1,5 +1,5 @@
if (WITH_ARGON2) if (WITH_ARGON2)
add_definitions(/DXMRIG_ALGO_ARGON2) add_definitions(/Dxmlcore_ALGO_ARGON2)
list(APPEND HEADERS_CRYPTO list(APPEND HEADERS_CRYPTO
src/crypto/argon2/Hash.h src/crypto/argon2/Hash.h
@ -13,6 +13,6 @@ if (WITH_ARGON2)
add_subdirectory(src/3rdparty/argon2) add_subdirectory(src/3rdparty/argon2)
set(ARGON2_LIBRARY argon2) set(ARGON2_LIBRARY argon2)
else() else()
remove_definitions(/DXMRIG_ALGO_ARGON2) remove_definitions(/Dxmlcore_ALGO_ARGON2)
set(ARGON2_LIBRARY "") set(ARGON2_LIBRARY "")
endif() endif()

View file

@ -1,52 +1,52 @@
if (WITH_ASM AND NOT XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8) if (WITH_ASM AND NOT xmlcore_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8)
set(XMRIG_ASM_LIBRARY "xmrig-asm") set(xmlcore_ASM_LIBRARY "xmlcore-asm")
if (CMAKE_C_COMPILER_ID MATCHES MSVC) if (CMAKE_C_COMPILER_ID MATCHES MSVC)
enable_language(ASM_MASM) enable_language(ASM_MASM)
if (MSVC_TOOLSET_VERSION GREATER_EQUAL 141) if (MSVC_TOOLSET_VERSION GREATER_EQUAL 141)
set(XMRIG_ASM_FILES set(xmlcore_ASM_FILES
"src/crypto/cn/asm/cn_main_loop.asm" "src/crypto/cn/asm/cn_main_loop.asm"
"src/crypto/cn/asm/CryptonightR_template.asm" "src/crypto/cn/asm/CryptonightR_template.asm"
) )
else() else()
set(XMRIG_ASM_FILES set(xmlcore_ASM_FILES
"src/crypto/cn/asm/win64/cn_main_loop.asm" "src/crypto/cn/asm/win64/cn_main_loop.asm"
"src/crypto/cn/asm/win64/CryptonightR_template.asm" "src/crypto/cn/asm/win64/CryptonightR_template.asm"
) )
endif() endif()
set_property(SOURCE ${XMRIG_ASM_FILES} PROPERTY ASM_MASM) set_property(SOURCE ${xmlcore_ASM_FILES} PROPERTY ASM_MASM)
else() else()
enable_language(ASM) enable_language(ASM)
if (WIN32 AND CMAKE_C_COMPILER_ID MATCHES GNU) if (WIN32 AND CMAKE_C_COMPILER_ID MATCHES GNU)
set(XMRIG_ASM_FILES set(xmlcore_ASM_FILES
"src/crypto/cn/asm/win64/cn_main_loop.S" "src/crypto/cn/asm/win64/cn_main_loop.S"
"src/crypto/cn/asm/CryptonightR_template.S" "src/crypto/cn/asm/CryptonightR_template.S"
) )
else() else()
set(XMRIG_ASM_FILES set(xmlcore_ASM_FILES
"src/crypto/cn/asm/cn_main_loop.S" "src/crypto/cn/asm/cn_main_loop.S"
"src/crypto/cn/asm/CryptonightR_template.S" "src/crypto/cn/asm/CryptonightR_template.S"
) )
endif() endif()
set_property(SOURCE ${XMRIG_ASM_FILES} PROPERTY C) set_property(SOURCE ${xmlcore_ASM_FILES} PROPERTY C)
endif() endif()
add_library(${XMRIG_ASM_LIBRARY} STATIC ${XMRIG_ASM_FILES}) add_library(${xmlcore_ASM_LIBRARY} STATIC ${xmlcore_ASM_FILES})
set(XMRIG_ASM_SOURCES set(xmlcore_ASM_SOURCES
src/crypto/common/Assembly.h src/crypto/common/Assembly.h
src/crypto/common/Assembly.cpp src/crypto/common/Assembly.cpp
src/crypto/cn/r/CryptonightR_gen.cpp src/crypto/cn/r/CryptonightR_gen.cpp
) )
set_property(TARGET ${XMRIG_ASM_LIBRARY} PROPERTY LINKER_LANGUAGE C) set_property(TARGET ${xmlcore_ASM_LIBRARY} PROPERTY LINKER_LANGUAGE C)
add_definitions(/DXMRIG_FEATURE_ASM) add_definitions(/Dxmlcore_FEATURE_ASM)
else() else()
set(XMRIG_ASM_SOURCES "") set(xmlcore_ASM_SOURCES "")
set(XMRIG_ASM_LIBRARY "") set(xmlcore_ASM_LIBRARY "")
remove_definitions(/DXMRIG_FEATURE_ASM) remove_definitions(/Dxmlcore_FEATURE_ASM)
endif() endif()

View file

@ -1,5 +1,5 @@
if (WITH_ASTROBWT) if (WITH_ASTROBWT)
add_definitions(/DXMRIG_ALGO_ASTROBWT) add_definitions(/Dxmlcore_ALGO_ASTROBWT)
list(APPEND HEADERS_CRYPTO list(APPEND HEADERS_CRYPTO
src/crypto/astrobwt/AstroBWT.h src/crypto/astrobwt/AstroBWT.h
@ -9,7 +9,7 @@ if (WITH_ASTROBWT)
src/crypto/astrobwt/AstroBWT.cpp src/crypto/astrobwt/AstroBWT.cpp
) )
if (XMRIG_ARM) if (xmlcore_ARM)
list(APPEND HEADERS_CRYPTO list(APPEND HEADERS_CRYPTO
src/crypto/astrobwt/salsa20_ref/ecrypt-config.h src/crypto/astrobwt/salsa20_ref/ecrypt-config.h
src/crypto/astrobwt/salsa20_ref/ecrypt-machine.h src/crypto/astrobwt/salsa20_ref/ecrypt-machine.h
@ -41,5 +41,5 @@ if (WITH_ASTROBWT)
) )
endif() endif()
else() else()
remove_definitions(/DXMRIG_ALGO_ASTROBWT) remove_definitions(/Dxmlcore_ALGO_ASTROBWT)
endif() endif()

View file

@ -17,31 +17,31 @@ if (NOT ARM_TARGET)
endif() endif()
if (ARM_TARGET AND ARM_TARGET GREATER 6) if (ARM_TARGET AND ARM_TARGET GREATER 6)
set(XMRIG_ARM ON) set(xmlcore_ARM ON)
add_definitions(/DXMRIG_ARM) add_definitions(/Dxmlcore_ARM)
message(STATUS "Use ARM_TARGET=${ARM_TARGET} (${CMAKE_SYSTEM_PROCESSOR})") message(STATUS "Use ARM_TARGET=${ARM_TARGET} (${CMAKE_SYSTEM_PROCESSOR})")
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
if (ARM_TARGET EQUAL 8) if (ARM_TARGET EQUAL 8)
set(XMRIG_ARMv8 ON) set(xmlcore_ARMv8 ON)
add_definitions(/DXMRIG_ARMv8) add_definitions(/Dxmlcore_ARMv8)
CHECK_CXX_COMPILER_FLAG(-march=armv8-a+crypto XMRIG_ARM_CRYPTO) CHECK_CXX_COMPILER_FLAG(-march=armv8-a+crypto xmlcore_ARM_CRYPTO)
if (XMRIG_ARM_CRYPTO) if (xmlcore_ARM_CRYPTO)
add_definitions(/DXMRIG_ARM_CRYPTO) add_definitions(/Dxmlcore_ARM_CRYPTO)
set(ARM8_CXX_FLAGS "-march=armv8-a+crypto") set(ARM8_CXX_FLAGS "-march=armv8-a+crypto")
else() else()
set(ARM8_CXX_FLAGS "-march=armv8-a") set(ARM8_CXX_FLAGS "-march=armv8-a")
endif() endif()
elseif (ARM_TARGET EQUAL 7) elseif (ARM_TARGET EQUAL 7)
set(XMRIG_ARMv7 ON) set(xmlcore_ARMv7 ON)
add_definitions(/DXMRIG_ARMv7) add_definitions(/Dxmlcore_ARMv7)
endif() endif()
endif() endif()
if (WITH_SSE4_1) if (WITH_SSE4_1)
add_definitions(/DXMRIG_FEATURE_SSE4_1) add_definitions(/Dxmlcore_FEATURE_SSE4_1)
endif() endif()

View file

@ -22,10 +22,10 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexceptions -fno-rtti -Wno-strict-aliasing -Wno-class-memaccess") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexceptions -fno-rtti -Wno-strict-aliasing -Wno-class-memaccess")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast -s") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast -s")
if (XMRIG_ARMv8) if (xmlcore_ARMv8)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARM8_CXX_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARM8_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARM8_CXX_FLAGS} -flax-vector-conversions") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARM8_CXX_FLAGS} -flax-vector-conversions")
elseif (XMRIG_ARMv7) elseif (xmlcore_ARMv7)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -flax-vector-conversions") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -flax-vector-conversions")
else() else()
@ -80,10 +80,10 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexceptions -fno-rtti -Wno-missing-braces") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexceptions -fno-rtti -Wno-missing-braces")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast -funroll-loops -fmerge-all-constants") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast -funroll-loops -fmerge-all-constants")
if (XMRIG_ARMv8) if (xmlcore_ARMv8)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARM8_CXX_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARM8_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARM8_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARM8_CXX_FLAGS}")
elseif (XMRIG_ARMv7) elseif (xmlcore_ARMv7)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}")
else() else()

View file

@ -1,5 +1,5 @@
if (WITH_KAWPOW) if (WITH_KAWPOW)
add_definitions(/DXMRIG_ALGO_KAWPOW) add_definitions(/Dxmlcore_ALGO_KAWPOW)
list(APPEND HEADERS_CRYPTO list(APPEND HEADERS_CRYPTO
src/crypto/kawpow/KPCache.h src/crypto/kawpow/KPCache.h
@ -14,6 +14,6 @@ if (WITH_KAWPOW)
add_subdirectory(src/3rdparty/libethash) add_subdirectory(src/3rdparty/libethash)
set(ETHASH_LIBRARY ethash) set(ETHASH_LIBRARY ethash)
else() else()
remove_definitions(/DXMRIG_ALGO_KAWPOW) remove_definitions(/Dxmlcore_ALGO_KAWPOW)
set(ETHASH_LIBRARY "") set(ETHASH_LIBRARY "")
endif() endif()

View file

@ -1,53 +1,53 @@
if (WIN32) if (WIN32)
set(XMRIG_OS_WIN ON) set(xmlcore_OS_WIN ON)
elseif (APPLE) elseif (APPLE)
set(XMRIG_OS_APPLE ON) set(xmlcore_OS_APPLE ON)
if (IOS OR CMAKE_SYSTEM_NAME STREQUAL iOS) if (IOS OR CMAKE_SYSTEM_NAME STREQUAL iOS)
set(XMRIG_OS_IOS ON) set(xmlcore_OS_IOS ON)
else() else()
set(XMRIG_OS_MACOS ON) set(xmlcore_OS_MACOS ON)
endif() endif()
else() else()
set(XMRIG_OS_UNIX ON) set(xmlcore_OS_UNIX ON)
if (ANDROID OR CMAKE_SYSTEM_NAME MATCHES "Android") if (ANDROID OR CMAKE_SYSTEM_NAME MATCHES "Android")
set(XMRIG_OS_ANDROID ON) set(xmlcore_OS_ANDROID ON)
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
set(XMRIG_OS_LINUX ON) set(xmlcore_OS_LINUX ON)
elseif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) elseif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
set(XMRIG_OS_FREEBSD ON) set(xmlcore_OS_FREEBSD ON)
endif() endif()
endif() endif()
if (XMRIG_OS_WIN) if (xmlcore_OS_WIN)
add_definitions(/DWIN32) add_definitions(/DWIN32)
add_definitions(/DXMRIG_OS_WIN) add_definitions(/Dxmlcore_OS_WIN)
elseif(XMRIG_OS_APPLE) elseif(xmlcore_OS_APPLE)
add_definitions(/DXMRIG_OS_APPLE) add_definitions(/Dxmlcore_OS_APPLE)
if (XMRIG_OS_IOS) if (xmlcore_OS_IOS)
add_definitions(/DXMRIG_OS_IOS) add_definitions(/Dxmlcore_OS_IOS)
else() else()
add_definitions(/DXMRIG_OS_MACOS) add_definitions(/Dxmlcore_OS_MACOS)
endif() endif()
if (XMRIG_ARM) if (xmlcore_ARM)
set(WITH_SECURE_JIT ON) set(WITH_SECURE_JIT ON)
endif() endif()
elseif(XMRIG_OS_UNIX) elseif(xmlcore_OS_UNIX)
add_definitions(/DXMRIG_OS_UNIX) add_definitions(/Dxmlcore_OS_UNIX)
if (XMRIG_OS_ANDROID) if (xmlcore_OS_ANDROID)
add_definitions(/DXMRIG_OS_ANDROID) add_definitions(/Dxmlcore_OS_ANDROID)
elseif (XMRIG_OS_LINUX) elseif (xmlcore_OS_LINUX)
add_definitions(/DXMRIG_OS_LINUX) add_definitions(/Dxmlcore_OS_LINUX)
elseif (XMRIG_OS_FREEBSD) elseif (xmlcore_OS_FREEBSD)
add_definitions(/DXMRIG_OS_FREEBSD) add_definitions(/Dxmlcore_OS_FREEBSD)
endif() endif()
endif() endif()
if (WITH_SECURE_JIT) if (WITH_SECURE_JIT)
add_definitions(/DXMRIG_SECURE_JIT) add_definitions(/Dxmlcore_SECURE_JIT)
endif() endif()

View file

@ -1,5 +1,5 @@
if (WITH_RANDOMX) if (WITH_RANDOMX)
add_definitions(/DXMRIG_ALGO_RANDOMX) add_definitions(/Dxmlcore_ALGO_RANDOMX)
set(WITH_ARGON2 ON) set(WITH_ARGON2 ON)
list(APPEND HEADERS_CRYPTO list(APPEND HEADERS_CRYPTO
@ -48,14 +48,14 @@ if (WITH_RANDOMX)
src/crypto/randomx/jit_compiler_x86_static.asm src/crypto/randomx/jit_compiler_x86_static.asm
src/crypto/randomx/jit_compiler_x86.cpp src/crypto/randomx/jit_compiler_x86.cpp
) )
elseif (NOT XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8) elseif (NOT xmlcore_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8)
list(APPEND SOURCES_CRYPTO list(APPEND SOURCES_CRYPTO
src/crypto/randomx/jit_compiler_x86_static.S src/crypto/randomx/jit_compiler_x86_static.S
src/crypto/randomx/jit_compiler_x86.cpp src/crypto/randomx/jit_compiler_x86.cpp
) )
# cheat because cmake and ccache hate each other # cheat because cmake and ccache hate each other
set_property(SOURCE src/crypto/randomx/jit_compiler_x86_static.S PROPERTY LANGUAGE C) set_property(SOURCE src/crypto/randomx/jit_compiler_x86_static.S PROPERTY LANGUAGE C)
elseif (XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8) elseif (xmlcore_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8)
list(APPEND SOURCES_CRYPTO list(APPEND SOURCES_CRYPTO
src/crypto/randomx/jit_compiler_a64_static.S src/crypto/randomx/jit_compiler_a64_static.S
src/crypto/randomx/jit_compiler_a64.cpp src/crypto/randomx/jit_compiler_a64.cpp
@ -94,17 +94,17 @@ if (WITH_RANDOMX)
) )
endif() endif()
if (WITH_MSR AND NOT XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8 AND (XMRIG_OS_WIN OR XMRIG_OS_LINUX)) if (WITH_MSR AND NOT xmlcore_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8 AND (xmlcore_OS_WIN OR xmlcore_OS_LINUX))
add_definitions(/DXMRIG_FEATURE_MSR) add_definitions(/Dxmlcore_FEATURE_MSR)
add_definitions(/DXMRIG_FIX_RYZEN) add_definitions(/Dxmlcore_FIX_RYZEN)
message("-- WITH_MSR=ON") message("-- WITH_MSR=ON")
if (XMRIG_OS_WIN) if (xmlcore_OS_WIN)
list(APPEND SOURCES_CRYPTO list(APPEND SOURCES_CRYPTO
src/crypto/rx/RxFix_win.cpp src/crypto/rx/RxFix_win.cpp
src/hw/msr/Msr_win.cpp src/hw/msr/Msr_win.cpp
) )
elseif (XMRIG_OS_LINUX) elseif (xmlcore_OS_LINUX)
list(APPEND SOURCES_CRYPTO list(APPEND SOURCES_CRYPTO
src/crypto/rx/RxFix_linux.cpp src/crypto/rx/RxFix_linux.cpp
src/hw/msr/Msr_linux.cpp src/hw/msr/Msr_linux.cpp
@ -124,17 +124,17 @@ if (WITH_RANDOMX)
src/hw/msr/MsrItem.cpp src/hw/msr/MsrItem.cpp
) )
else() else()
remove_definitions(/DXMRIG_FEATURE_MSR) remove_definitions(/Dxmlcore_FEATURE_MSR)
remove_definitions(/DXMRIG_FIX_RYZEN) remove_definitions(/Dxmlcore_FIX_RYZEN)
message("-- WITH_MSR=OFF") message("-- WITH_MSR=OFF")
endif() endif()
if (WITH_PROFILING) if (WITH_PROFILING)
add_definitions(/DXMRIG_FEATURE_PROFILING) add_definitions(/Dxmlcore_FEATURE_PROFILING)
list(APPEND HEADERS_CRYPTO src/crypto/rx/Profiler.h) list(APPEND HEADERS_CRYPTO src/crypto/rx/Profiler.h)
list(APPEND SOURCES_CRYPTO src/crypto/rx/Profiler.cpp) list(APPEND SOURCES_CRYPTO src/crypto/rx/Profiler.cpp)
endif() endif()
else() else()
remove_definitions(/DXMRIG_ALGO_RANDOMX) remove_definitions(/Dxmlcore_ALGO_RANDOMX)
endif() endif()

View file

@ -6,7 +6,7 @@ Algorithm can be defined in 3 ways:
2. Per pool `coin` option, currently only usable values for this option is `monero` and `arqma`. 2. Per pool `coin` option, currently only usable values for this option is `monero` and `arqma`.
3. Per pool `algo` option. 3. Per pool `algo` option.
Option `coin` useful for pools without [algorithm negotiation](https://xmrig.com/docs/extensions/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. Option `coin` useful for pools without [algorithm negotiation](https://xmlcore.com/docs/extensions/algorithm-negotiation) support or daemon to allow automatically switch algorithm in next hard fork. If you use xmlcore-proxy don't need specify algorithm on miner side.
## Algorithm names ## Algorithm names
@ -42,7 +42,7 @@ Option `coin` useful for pools without [algorithm negotiation](https://xmrig.com
| `cn/0` | 2 MB | 0.5.0+ | CryptoNight (original). | | | `cn/0` | 2 MB | 0.5.0+ | CryptoNight (original). | |
## Migration to v3 ## Migration to v3
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. 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/xmlcore/xmlcore-proxy/issues/168) you may not specify this option at all.
#### Example #### Example
```json ```json

View file

@ -2,7 +2,7 @@
If you want use HTTP API you need enable it (`"enabled": true,`) then choice `port` and optionaly `host`. API not available if miner built without HTTP support (`-DWITH_HTTP=OFF`). If you want use HTTP API you need enable it (`"enabled": true,`) then choice `port` and optionaly `host`. API not available if miner built without HTTP support (`-DWITH_HTTP=OFF`).
Offical HTTP client for API: http://workers.xmrig.info/ Offical HTTP client for API: http://workers.xmlcore.info/
Example configuration: Example configuration:
@ -28,12 +28,12 @@ Example configuration:
* **enabled** Enable (`true`) or disable (`false`) HTTP API. * **enabled** Enable (`true`) or disable (`false`) HTTP API.
* **host** Host for incoming connections `http://<host>:<port>`, to allow connections from all interfaces use `0.0.0.0` (IPv4) or `::` (IPv4+IPv6). * **host** Host for incoming connections `http://<host>:<port>`, to allow connections from all interfaces use `0.0.0.0` (IPv4) or `::` (IPv4+IPv6).
* **port** Port for incoming connections `http://<host>:<port>`, zero port is valid option and means random port. * **port** Port for incoming connections `http://<host>:<port>`, zero port is valid option and means random port.
* **access-token** [Bearer](https://gist.github.com/xmrig/c75fdd1f8e0f3bac05500be2ab718f8e#file-api-html-L54) access token to secure access to API. Miner support this token only via `Authorization` header. * **access-token** [Bearer](https://gist.github.com/xmlcore/c75fdd1f8e0f3bac05500be2ab718f8e#file-api-html-L54) access token to secure access to API. Miner support this token only via `Authorization` header.
* **restricted** Use `false` to allow remote configuration. * **restricted** Use `false` to allow remote configuration.
If you prefer use command line options instead of config file, you can use options: `--api-id`, `--api-worker-id`, `--http-enabled`, `--http-host`, `--http-access-token`, `--http-port`, `--http-no-restricted`. If you prefer use command line options instead of config file, you can use options: `--api-id`, `--api-worker-id`, `--http-enabled`, `--http-host`, `--http-access-token`, `--http-port`, `--http-no-restricted`.
Versions before 2.15 was use another options for API https://github.com/xmrig/xmrig/issues/1007 Versions before 2.15 was use another options for API https://github.com/xmlcore/xmlcore/issues/1007
## Endpoints ## Endpoints

View file

@ -1,11 +1,11 @@
# Embedded benchmark # Embedded benchmark
You can run with XMRig with the following commands: You can run with xmlcore with the following commands:
``` ```
xmrig --bench=1M xmlcore --bench=1M
xmrig --bench=10M xmlcore --bench=10M
xmrig --bench=1M -a rx/wow xmlcore --bench=1M -a rx/wow
xmrig --bench=10M -a rx/wow xmlcore --bench=10M -a rx/wow
``` ```
This will run between 1 and 10 million RandomX hashes, depending on `bench` parameter, and print the time it took. First two commands use Monero variant (2 MB per thread, best for Zen2/Zen3 CPUs), second two commands use Wownero variant (1 MB per thread, useful for Intel and 1st gen Zen/Zen+ CPUs). This will run between 1 and 10 million RandomX hashes, depending on `bench` parameter, and print the time it took. First two commands use Monero variant (2 MB per thread, best for Zen2/Zen3 CPUs), second two commands use Wownero variant (1 MB per thread, useful for Intel and 1st gen Zen/Zen+ CPUs).
@ -23,7 +23,7 @@ You can run benchmark with any configuration you want. Just start without comman
You can also run continuous stress-test that is as close to the real RandomX mining as possible and doesn't require any configuration: You can also run continuous stress-test that is as close to the real RandomX mining as possible and doesn't require any configuration:
``` ```
xmrig --stress xmlcore --stress
xmrig --stress -a rx/wow xmlcore --stress -a rx/wow
``` ```
This will require Internet connection and will run indefinitely. This will require Internet connection and will run indefinitely.

View file

@ -1,106 +1,106 @@
# v4.6.2-beta # v4.6.2-beta
- [#1274](https://github.com/xmrig/xmrig/issues/1274) Added `--cuda-devices` command line option. - [#1274](https://github.com/xmlcore/xmlcore/issues/1274) Added `--cuda-devices` command line option.
- [#1277](https://github.com/xmrig/xmrig/pull/1277) Fixed function names for clang on Apple. - [#1277](https://github.com/xmlcore/xmlcore/pull/1277) Fixed function names for clang on Apple.
# v4.6.1-beta # v4.6.1-beta
- [#1272](https://github.com/xmrig/xmrig/pull/1272) Optimized hashrate calculation. - [#1272](https://github.com/xmlcore/xmlcore/pull/1272) Optimized hashrate calculation.
- [#1273](https://github.com/xmrig/xmrig/issues/1273) Fixed crash when use `GET /2/backends` API endpoint with disabled CUDA. - [#1273](https://github.com/xmlcore/xmlcore/issues/1273) Fixed crash when use `GET /2/backends` API endpoint with disabled CUDA.
# v4.6.0-beta # v4.6.0-beta
- [#1263](https://github.com/xmrig/xmrig/pull/1263) Added new option `dataset_host` for NVIDIA GPUs with less than 4 GB memory (RandomX only). - [#1263](https://github.com/xmlcore/xmlcore/pull/1263) Added new option `dataset_host` for NVIDIA GPUs with less than 4 GB memory (RandomX only).
# v4.5.0-beta # v4.5.0-beta
- Added NVIDIA CUDA support via external [CUDA plugun](https://github.com/xmrig/xmrig-cuda). XMRig now is unified 3 in 1 miner. - Added NVIDIA CUDA support via external [CUDA plugun](https://github.com/xmlcore/xmlcore-cuda). xmlcore now is unified 3 in 1 miner.
# v4.4.0-beta # v4.4.0-beta
- [#1068](https://github.com/xmrig/xmrig/pull/1068) Added support for `self-select` stratum protocol extension. - [#1068](https://github.com/xmlcore/xmlcore/pull/1068) Added support for `self-select` stratum protocol extension.
- [#1240](https://github.com/xmrig/xmrig/pull/1240) Sync with the latest RandomX code. - [#1240](https://github.com/xmlcore/xmlcore/pull/1240) Sync with the latest RandomX code.
- [#1241](https://github.com/xmrig/xmrig/issues/1241) Fixed regression with colors on old Windows systems. - [#1241](https://github.com/xmlcore/xmlcore/issues/1241) Fixed regression with colors on old Windows systems.
- [#1243](https://github.com/xmrig/xmrig/pull/1243) Fixed incorrect OpenCL memory size detection in some cases. - [#1243](https://github.com/xmlcore/xmlcore/pull/1243) Fixed incorrect OpenCL memory size detection in some cases.
- [#1247](https://github.com/xmrig/xmrig/pull/1247) Fixed ARM64 RandomX code alignment. - [#1247](https://github.com/xmlcore/xmlcore/pull/1247) Fixed ARM64 RandomX code alignment.
- [#1248](https://github.com/xmrig/xmrig/pull/1248) Fixed RandomX code cache cleanup on iOS/Darwin. - [#1248](https://github.com/xmlcore/xmlcore/pull/1248) Fixed RandomX code cache cleanup on iOS/Darwin.
# v4.3.1-beta # v4.3.1-beta
- Fixed regression in v4.3.0, miner didn't create `cn` mining profile with default config example. - Fixed regression in v4.3.0, miner didn't create `cn` mining profile with default config example.
# v4.3.0-beta # v4.3.0-beta
- [#1227](https://github.com/xmrig/xmrig/pull/1227) Added new algorithm `rx/arq`, RandomX variant for upcoming ArQmA fork. - [#1227](https://github.com/xmlcore/xmlcore/pull/1227) Added new algorithm `rx/arq`, RandomX variant for upcoming ArQmA fork.
- [#808](https://github.com/xmrig/xmrig/issues/808#issuecomment-539297156) Added experimental support for persistent memory for CPU mining threads. - [#808](https://github.com/xmlcore/xmlcore/issues/808#issuecomment-539297156) Added experimental support for persistent memory for CPU mining threads.
- [#1221](https://github.com/xmrig/xmrig/issues/1221) Improved RandomX dataset memory usage and initialization speed for NUMA machines. - [#1221](https://github.com/xmlcore/xmlcore/issues/1221) Improved RandomX dataset memory usage and initialization speed for NUMA machines.
# v4.2.1-beta # v4.2.1-beta
- [#1150](https://github.com/xmrig/xmrig/issues/1150) Fixed build on FreeBSD. - [#1150](https://github.com/xmlcore/xmlcore/issues/1150) Fixed build on FreeBSD.
- [#1175](https://github.com/xmrig/xmrig/issues/1175) Fixed support for systems where total count of NUMA nodes not equal usable nodes count. - [#1175](https://github.com/xmlcore/xmlcore/issues/1175) Fixed support for systems where total count of NUMA nodes not equal usable nodes count.
- [#1199](https://github.com/xmrig/xmrig/issues/1199) Fixed excessive memory allocation for OpenCL threads with low intensity. - [#1199](https://github.com/xmlcore/xmlcore/issues/1199) Fixed excessive memory allocation for OpenCL threads with low intensity.
- [#1212](https://github.com/xmrig/xmrig/issues/1212) Fixed low RandomX performance after fast algorithm switching. - [#1212](https://github.com/xmlcore/xmlcore/issues/1212) Fixed low RandomX performance after fast algorithm switching.
# v4.2.0-beta # v4.2.0-beta
- [#1202](https://github.com/xmrig/xmrig/issues/1202) Fixed algorithm verification in donate strategy. - [#1202](https://github.com/xmlcore/xmlcore/issues/1202) Fixed algorithm verification in donate strategy.
- Added per pool option `coin` with single possible value `monero` for pools without algorithm negotiation, for upcoming Monero fork. - Added per pool option `coin` with single possible value `monero` for pools without algorithm negotiation, for upcoming Monero fork.
- Added config option `cpu/max-threads-hint` and command line option `--cpu-max-threads-hint`. - Added config option `cpu/max-threads-hint` and command line option `--cpu-max-threads-hint`.
# v4.1.0-beta # v4.1.0-beta
- **OpenCL backend disabled by default.**. - **OpenCL backend disabled by default.**.
- [#1183](https://github.com/xmrig/xmrig/issues/1183) Fixed compatibility with systemd. - [#1183](https://github.com/xmlcore/xmlcore/issues/1183) Fixed compatibility with systemd.
- [#1185](https://github.com/xmrig/xmrig/pull/1185) Added JIT compiler for RandomX on ARMv8. - [#1185](https://github.com/xmlcore/xmlcore/pull/1185) Added JIT compiler for RandomX on ARMv8.
- Improved API endpoint `GET /2/backends` and added support for this endpoint to [workers.xmrig.info](http://workers.xmrig.info). - Improved API endpoint `GET /2/backends` and added support for this endpoint to [workers.xmlcore.info](http://workers.xmlcore.info).
- Added command line option `--no-cpu` to disable CPU backend. - Added command line option `--no-cpu` to disable CPU backend.
- Added OpenCL specific command line options: `--opencl`, `--opencl-devices`, `--opencl-platform`, `--opencl-loader` and `--opencl-no-cache`. - Added OpenCL specific command line options: `--opencl`, `--opencl-devices`, `--opencl-platform`, `--opencl-loader` and `--opencl-no-cache`.
- Removed command line option `--http-enabled`, HTTP API enabled automatically if any other `--http-*` option provided. - Removed command line option `--http-enabled`, HTTP API enabled automatically if any other `--http-*` option provided.
# v4.0.1-beta # v4.0.1-beta
- [#1177](https://github.com/xmrig/xmrig/issues/1177) Fixed compatibility with old AMD drivers. - [#1177](https://github.com/xmlcore/xmlcore/issues/1177) Fixed compatibility with old AMD drivers.
- [#1180](https://github.com/xmrig/xmrig/issues/1180) Fixed possible duplicated shares after algorithm switching. - [#1180](https://github.com/xmlcore/xmlcore/issues/1180) Fixed possible duplicated shares after algorithm switching.
- Added support for case if not all backend threads successfully started. - Added support for case if not all backend threads successfully started.
- Fixed wrong config file permissions after write (only gcc builds on recent Windows 10 affected). - Fixed wrong config file permissions after write (only gcc builds on recent Windows 10 affected).
# v4.0.0-beta # v4.0.0-beta
- [#1172](https://github.com/xmrig/xmrig/issues/1172) **Added OpenCL mining backend.** - [#1172](https://github.com/xmlcore/xmlcore/issues/1172) **Added OpenCL mining backend.**
- [#268](https://github.com/xmrig/xmrig-amd/pull/268) [#270](https://github.com/xmrig/xmrig-amd/pull/270) [#271](https://github.com/xmrig/xmrig-amd/pull/271) [#273](https://github.com/xmrig/xmrig-amd/pull/273) [#274](https://github.com/xmrig/xmrig-amd/pull/274) [#1171](https://github.com/xmrig/xmrig/pull/1171) Added RandomX support for OpenCL, thanks [@SChernykh](https://github.com/SChernykh). - [#268](https://github.com/xmlcore/xmlcore-amd/pull/268) [#270](https://github.com/xmlcore/xmlcore-amd/pull/270) [#271](https://github.com/xmlcore/xmlcore-amd/pull/271) [#273](https://github.com/xmlcore/xmlcore-amd/pull/273) [#274](https://github.com/xmlcore/xmlcore-amd/pull/274) [#1171](https://github.com/xmlcore/xmlcore/pull/1171) Added RandomX support for OpenCL, thanks [@SChernykh](https://github.com/SChernykh).
- Algorithm `cn/wow` removed, as no longer alive. - Algorithm `cn/wow` removed, as no longer alive.
# v3.2.0 # v3.2.0
- Added per pool option `coin` with single possible value `monero` for pools without algorithm negotiation, for upcoming Monero fork. - Added per pool option `coin` with single possible value `monero` for pools without algorithm negotiation, for upcoming Monero fork.
- [#1183](https://github.com/xmrig/xmrig/issues/1183) Fixed compatibility with systemd. - [#1183](https://github.com/xmlcore/xmlcore/issues/1183) Fixed compatibility with systemd.
# v3.1.3 # v3.1.3
- [#1180](https://github.com/xmrig/xmrig/issues/1180) Fixed possible duplicated shares after algorithm switching. - [#1180](https://github.com/xmlcore/xmlcore/issues/1180) Fixed possible duplicated shares after algorithm switching.
- Fixed wrong config file permissions after write (only gcc builds on recent Windows 10 affected). - Fixed wrong config file permissions after write (only gcc builds on recent Windows 10 affected).
# v3.1.2 # v3.1.2
- Many RandomX optimizations and fixes. - Many RandomX optimizations and fixes.
- [#1132](https://github.com/xmrig/xmrig/issues/1132) Fixed build on CentOS 7. - [#1132](https://github.com/xmlcore/xmlcore/issues/1132) Fixed build on CentOS 7.
- [#1163](https://github.com/xmrig/xmrig/pull/1163) Optimized soft AES code, up to +30% hashrate on CPU without AES support and other optimizations. - [#1163](https://github.com/xmlcore/xmlcore/pull/1163) Optimized soft AES code, up to +30% hashrate on CPU without AES support and other optimizations.
- [#1166](https://github.com/xmrig/xmrig/pull/1166) Fixed crash when initialize dataset with big threads count (eg 272). - [#1166](https://github.com/xmlcore/xmlcore/pull/1166) Fixed crash when initialize dataset with big threads count (eg 272).
- [#1168](https://github.com/xmrig/xmrig/pull/1168) Optimized loading from scratchpad. - [#1168](https://github.com/xmlcore/xmlcore/pull/1168) Optimized loading from scratchpad.
- [#1128](https://github.com/xmrig/xmrig/issues/1128) Fixed CMake 2.8 compatibility. - [#1128](https://github.com/xmlcore/xmlcore/issues/1128) Fixed CMake 2.8 compatibility.
# v3.1.1 # v3.1.1
- [#1133](https://github.com/xmrig/xmrig/issues/1133) Fixed syslog regression. - [#1133](https://github.com/xmlcore/xmlcore/issues/1133) Fixed syslog regression.
- [#1138](https://github.com/xmrig/xmrig/issues/1138) Fixed multiple network bugs. - [#1138](https://github.com/xmlcore/xmlcore/issues/1138) Fixed multiple network bugs.
- [#1141](https://github.com/xmrig/xmrig/issues/1141) Fixed log in background mode. - [#1141](https://github.com/xmlcore/xmlcore/issues/1141) Fixed log in background mode.
- [#1142](https://github.com/xmrig/xmrig/pull/1142) RandomX hashrate improved by 0.5-1.5% depending on variant and CPU. - [#1142](https://github.com/xmlcore/xmlcore/pull/1142) RandomX hashrate improved by 0.5-1.5% depending on variant and CPU.
- [#1146](https://github.com/xmrig/xmrig/pull/1146) Fixed race condition in RandomX thread init. - [#1146](https://github.com/xmlcore/xmlcore/pull/1146) Fixed race condition in RandomX thread init.
- [#1148](https://github.com/xmrig/xmrig/pull/1148) Fixed, on Linux linker marking entire executable as having an executable stack. - [#1148](https://github.com/xmlcore/xmlcore/pull/1148) Fixed, on Linux linker marking entire executable as having an executable stack.
- Fixed, for Argon2 algorithms command line options like `--threads` was ignored. - Fixed, for Argon2 algorithms command line options like `--threads` was ignored.
- Fixed command line options for single pool, free order allowed again. - Fixed command line options for single pool, free order allowed again.
# v3.1.0 # v3.1.0
- [#1107](https://github.com/xmrig/xmrig/issues/1107#issuecomment-522235892) Added Argon2 algorithm family: `argon2/chukwa` and `argon2/wrkz`. - [#1107](https://github.com/xmlcore/xmlcore/issues/1107#issuecomment-522235892) Added Argon2 algorithm family: `argon2/chukwa` and `argon2/wrkz`.
# v3.0.0 # v3.0.0
- **[#1111](https://github.com/xmrig/xmrig/pull/1111) Added RandomX (`rx/test`) algorithm for testing and benchmarking.** - **[#1111](https://github.com/xmlcore/xmlcore/pull/1111) Added RandomX (`rx/test`) algorithm for testing and benchmarking.**
- **[#1036](https://github.com/xmrig/xmrig/pull/1036) Added RandomWOW (`rx/wow`) algorithm for [Wownero](http://wownero.org/).** - **[#1036](https://github.com/xmlcore/xmlcore/pull/1036) Added RandomWOW (`rx/wow`) algorithm for [Wownero](http://wownero.org/).**
- **[#1050](https://github.com/xmrig/xmrig/pull/1050) Added RandomXL (`rx/loki`) algorithm for [Loki](https://loki.network/).** - **[#1050](https://github.com/xmlcore/xmlcore/pull/1050) Added RandomXL (`rx/loki`) algorithm for [Loki](https://loki.network/).**
- **[#1077](https://github.com/xmrig/xmrig/issues/1077) Added NUMA support via hwloc**. - **[#1077](https://github.com/xmlcore/xmlcore/issues/1077) Added NUMA support via hwloc**.
- **Added flexible [multi algorithm](doc/CPU.md) configuration.** - **Added flexible [multi algorithm](doc/CPU.md) configuration.**
- **Added unlimited switching between incompatible algorithms, all mining options can be changed in runtime.** - **Added unlimited switching between incompatible algorithms, all mining options can be changed in runtime.**
- [#257](https://github.com/xmrig/xmrig-nvidia/pull/257) New logging subsystem, file and syslog now always without colors. - [#257](https://github.com/xmlcore/xmlcore-nvidia/pull/257) New logging subsystem, file and syslog now always without colors.
- [#314](https://github.com/xmrig/xmrig-proxy/issues/314) Added donate over proxy feature. - [#314](https://github.com/xmlcore/xmlcore-proxy/issues/314) Added donate over proxy feature.
- [#1007](https://github.com/xmrig/xmrig/issues/1007) Old HTTP API backend based on libmicrohttpd, replaced to custom HTTP server (libuv + http_parser). - [#1007](https://github.com/xmlcore/xmlcore/issues/1007) Old HTTP API backend based on libmicrohttpd, replaced to custom HTTP server (libuv + http_parser).
- [#1010](https://github.com/xmrig/xmrig/pull/1010#issuecomment-482632107) Added daemon support (solo mining). - [#1010](https://github.com/xmlcore/xmlcore/pull/1010#issuecomment-482632107) Added daemon support (solo mining).
- [#1066](https://github.com/xmrig/xmrig/issues/1066#issuecomment-518080529) Added error message if pool not ready for RandomX. - [#1066](https://github.com/xmlcore/xmlcore/issues/1066#issuecomment-518080529) Added error message if pool not ready for RandomX.
- [#1105](https://github.com/xmrig/xmrig/issues/1105) Improved auto configuration for `cn-pico` algorithm. - [#1105](https://github.com/xmlcore/xmlcore/issues/1105) Improved auto configuration for `cn-pico` algorithm.
- Added commands `pause` and `resume` via JSON RPC 2.0 API (`POST /json_rpc`). - Added commands `pause` and `resume` via JSON RPC 2.0 API (`POST /json_rpc`).
- Added command line option `--export-topology` for export hwloc topology to a XML file. - Added command line option `--export-topology` for export hwloc topology to a XML file.
- Breaked backward compatibility with previous configs and command line, `variant` option replaced to `algo`, global option `algo` removed, all CPU related settings moved to `cpu` object. - Breaked backward compatibility with previous configs and command line, `variant` option replaced to `algo`, global option `algo` removed, all CPU related settings moved to `cpu` object.
@ -118,37 +118,37 @@
- Information about AVX2 CPU feature how hidden in miner summary. - Information about AVX2 CPU feature how hidden in miner summary.
# v2.99.5-beta # v2.99.5-beta
- [#1066](https://github.com/xmrig/xmrig/issues/1066#issuecomment-518080529) Fixed crash and added error message if pool not ready for RandomX. - [#1066](https://github.com/xmlcore/xmlcore/issues/1066#issuecomment-518080529) Fixed crash and added error message if pool not ready for RandomX.
- [#1092](https://github.com/xmrig/xmrig/issues/1092) Fixed crash if wrong CPU affinity used. - [#1092](https://github.com/xmlcore/xmlcore/issues/1092) Fixed crash if wrong CPU affinity used.
- [#1103](https://github.com/xmrig/xmrig/issues/1103) Improved auto configuration for RandomX for CPUs where L2 cache is limiting factor. - [#1103](https://github.com/xmlcore/xmlcore/issues/1103) Improved auto configuration for RandomX for CPUs where L2 cache is limiting factor.
- [#1105](https://github.com/xmrig/xmrig/issues/1105) Improved auto configuration for `cn-pico` algorithm. - [#1105](https://github.com/xmlcore/xmlcore/issues/1105) Improved auto configuration for `cn-pico` algorithm.
- [#1106](https://github.com/xmrig/xmrig/issues/1106) Fixed `hugepages` field in summary API. - [#1106](https://github.com/xmlcore/xmlcore/issues/1106) Fixed `hugepages` field in summary API.
- Added alternative short format for CPU threads. - Added alternative short format for CPU threads.
- Changed format for CPU threads with intensity above 1. - Changed format for CPU threads with intensity above 1.
- Name for reference RandomX configuration changed to `rx/test` to avoid potential conflicts in future. - Name for reference RandomX configuration changed to `rx/test` to avoid potential conflicts in future.
# v2.99.4-beta # v2.99.4-beta
- [#1062](https://github.com/xmrig/xmrig/issues/1062) Fixed 32 bit support. **32 bit is slow and deprecated**. - [#1062](https://github.com/xmlcore/xmlcore/issues/1062) Fixed 32 bit support. **32 bit is slow and deprecated**.
- [#1088](https://github.com/xmrig/xmrig/pull/1088) Fixed macOS compilation. - [#1088](https://github.com/xmlcore/xmlcore/pull/1088) Fixed macOS compilation.
- [#1095](https://github.com/xmrig/xmrig/pull/1095) Fixed compatibility with hwloc 1.10.x. - [#1095](https://github.com/xmlcore/xmlcore/pull/1095) Fixed compatibility with hwloc 1.10.x.
- Optimized RandomX initialization and switching, fixed rare crash when re-initialize dataset. - Optimized RandomX initialization and switching, fixed rare crash when re-initialize dataset.
- Fixed ARM build with hwloc. - Fixed ARM build with hwloc.
# v2.99.3-beta # v2.99.3-beta
- [#1082](https://github.com/xmrig/xmrig/issues/1082) Fixed hwloc auto configuration on AMD FX CPUs. - [#1082](https://github.com/xmlcore/xmlcore/issues/1082) Fixed hwloc auto configuration on AMD FX CPUs.
- Added command line option `--export-topology` for export hwloc topology to a XML file. - Added command line option `--export-topology` for export hwloc topology to a XML file.
# v2.99.2-beta # v2.99.2-beta
- [#1077](https://github.com/xmrig/xmrig/issues/1077) Added NUMA support via **hwloc**. - [#1077](https://github.com/xmlcore/xmlcore/issues/1077) Added NUMA support via **hwloc**.
- Fixed miner freeze when switch between RandomX variants. - Fixed miner freeze when switch between RandomX variants.
- Fixed dataset initialization speed on Linux if thread affinity was used. - Fixed dataset initialization speed on Linux if thread affinity was used.
# v2.99.1-beta # v2.99.1-beta
- [#1072](https://github.com/xmrig/xmrig/issues/1072) Fixed RandomX `seed_hash` re-initialization. - [#1072](https://github.com/xmlcore/xmlcore/issues/1072) Fixed RandomX `seed_hash` re-initialization.
# v2.99.0-beta # v2.99.0-beta
- [#1050](https://github.com/xmrig/xmrig/pull/1050) Added RandomXL algorithm for [Loki](https://loki.network/), algorithm name used by miner is `randomx/loki` or `rx/loki`. - [#1050](https://github.com/xmlcore/xmlcore/pull/1050) Added RandomXL algorithm for [Loki](https://loki.network/), algorithm name used by miner is `randomx/loki` or `rx/loki`.
- Added [flexible](https://github.com/xmrig/xmrig/blob/evo/doc/CPU.md) multi algorithm configuration. - Added [flexible](https://github.com/xmlcore/xmlcore/blob/evo/doc/CPU.md) multi algorithm configuration.
- Added unlimited switching between incompatible algorithms, all mining options can be changed in runtime. - Added unlimited switching between incompatible algorithms, all mining options can be changed in runtime.
- Breaked backward compatibility with previous configs and command line, `variant` option replaced to `algo`, global option `algo` removed, all CPU related settings moved to `cpu` object. - Breaked backward compatibility with previous configs and command line, `variant` option replaced to `algo`, global option `algo` removed, all CPU related settings moved to `cpu` object.
- Options `av`, `safe` and `max-cpu-usage` removed. - Options `av`, `safe` and `max-cpu-usage` removed.
@ -157,7 +157,7 @@
- API endpoint `GET /1/threads` replaced to `GET /2/backends`. - API endpoint `GET /1/threads` replaced to `GET /2/backends`.
# v2.16.0-beta # v2.16.0-beta
- [#1036](https://github.com/xmrig/xmrig/pull/1036) Added RandomWOW (RandomX with different preferences) algorithm support for [Wownero](http://wownero.org/). - [#1036](https://github.com/xmlcore/xmlcore/pull/1036) Added RandomWOW (RandomX with different preferences) algorithm support for [Wownero](http://wownero.org/).
- Algorithm name used by miner is `randomx/wow` or `rx/wow`. - Algorithm name used by miner is `randomx/wow` or `rx/wow`.
- Currently runtime algorithm switching NOT supported with other algorithms. - Currently runtime algorithm switching NOT supported with other algorithms.
@ -167,149 +167,149 @@
- This version also include all changes from stable version v2.14.4. - This version also include all changes from stable version v2.14.4.
# v2.15.3-beta # v2.15.3-beta
- [#1014](https://github.com/xmrig/xmrig/issues/1014) Fixed regression, default value for `algo` option was not applied. - [#1014](https://github.com/xmlcore/xmlcore/issues/1014) Fixed regression, default value for `algo` option was not applied.
# v2.15.2-beta # v2.15.2-beta
- [#1010](https://github.com/xmrig/xmrig/pull/1010#issuecomment-482632107) Added daemon support (solo mining). - [#1010](https://github.com/xmlcore/xmlcore/pull/1010#issuecomment-482632107) Added daemon support (solo mining).
- [#1012](https://github.com/xmrig/xmrig/pull/1012) Fixed compatibility with clang 9. - [#1012](https://github.com/xmlcore/xmlcore/pull/1012) Fixed compatibility with clang 9.
- Config subsystem was rewritten, internally JSON is primary format now. - Config subsystem was rewritten, internally JSON is primary format now.
- Fixed regression, big HTTP responses was truncated. - Fixed regression, big HTTP responses was truncated.
# v2.15.1-beta # v2.15.1-beta
- [#1007](https://github.com/xmrig/xmrig/issues/1007) Old HTTP API backend based on libmicrohttpd, replaced to custom HTTP server (libuv + http_parser). - [#1007](https://github.com/xmlcore/xmlcore/issues/1007) Old HTTP API backend based on libmicrohttpd, replaced to custom HTTP server (libuv + http_parser).
- [#257](https://github.com/xmrig/xmrig-nvidia/pull/257) New logging subsystem, file and syslog now always without colors. - [#257](https://github.com/xmlcore/xmlcore-nvidia/pull/257) New logging subsystem, file and syslog now always without colors.
# v2.15.0-beta # v2.15.0-beta
- [#314](https://github.com/xmrig/xmrig-proxy/issues/314) Added donate over proxy feature. - [#314](https://github.com/xmlcore/xmlcore-proxy/issues/314) Added donate over proxy feature.
- Added new option `donate-over-proxy`. - Added new option `donate-over-proxy`.
- Added real graceful exit. - Added real graceful exit.
# v2.14.4 # v2.14.4
- [#992](https://github.com/xmrig/xmrig/pull/992) Fixed compilation with Clang 3.5. - [#992](https://github.com/xmlcore/xmlcore/pull/992) Fixed compilation with Clang 3.5.
- [#1012](https://github.com/xmrig/xmrig/pull/1012) Fixed compilation with Clang 9.0. - [#1012](https://github.com/xmlcore/xmlcore/pull/1012) Fixed compilation with Clang 9.0.
- In HTTP API for unknown hashrate now used `null` instead of `0.0`. - In HTTP API for unknown hashrate now used `null` instead of `0.0`.
- Fixed MSVC 2019 version detection. - Fixed MSVC 2019 version detection.
- Removed obsolete automatic variants. - Removed obsolete automatic variants.
# v2.14.1 # v2.14.1
* [#975](https://github.com/xmrig/xmrig/issues/975) Fixed crash on Linux if double thread mode used. * [#975](https://github.com/xmlcore/xmlcore/issues/975) Fixed crash on Linux if double thread mode used.
# v2.14.0 # v2.14.0
- **[#969](https://github.com/xmrig/xmrig/pull/969) Added new algorithm `cryptonight/rwz`, short alias `cn/rwz` (also known as CryptoNight ReverseWaltz), for upcoming [Graft](https://www.graft.network/) fork.** - **[#969](https://github.com/xmlcore/xmlcore/pull/969) Added new algorithm `cryptonight/rwz`, short alias `cn/rwz` (also known as CryptoNight ReverseWaltz), for upcoming [Graft](https://www.graft.network/) fork.**
- **[#931](https://github.com/xmrig/xmrig/issues/931) Added new algorithm `cryptonight/zls`, short alias `cn/zls` for [Zelerius Network](https://zelerius.org) fork.** - **[#931](https://github.com/xmlcore/xmlcore/issues/931) Added new algorithm `cryptonight/zls`, short alias `cn/zls` for [Zelerius Network](https://zelerius.org) fork.**
- **[#940](https://github.com/xmrig/xmrig/issues/940) Added new algorithm `cryptonight/double`, short alias `cn/double` (also known as CryptoNight HeavyX), for [X-CASH](https://x-cash.org/).** - **[#940](https://github.com/xmlcore/xmlcore/issues/940) Added new algorithm `cryptonight/double`, short alias `cn/double` (also known as CryptoNight HeavyX), for [X-CASH](https://x-cash.org/).**
- [#951](https://github.com/xmrig/xmrig/issues/951#issuecomment-469581529) Fixed crash if AVX was disabled on OS level. - [#951](https://github.com/xmlcore/xmlcore/issues/951#issuecomment-469581529) Fixed crash if AVX was disabled on OS level.
- [#952](https://github.com/xmrig/xmrig/issues/952) Fixed compile error on some Linux. - [#952](https://github.com/xmlcore/xmlcore/issues/952) Fixed compile error on some Linux.
- [#957](https://github.com/xmrig/xmrig/issues/957#issuecomment-468890667) Added support for embedded config. - [#957](https://github.com/xmlcore/xmlcore/issues/957#issuecomment-468890667) Added support for embedded config.
- [#958](https://github.com/xmrig/xmrig/pull/958) Fixed incorrect user agent on ARM platforms. - [#958](https://github.com/xmlcore/xmlcore/pull/958) Fixed incorrect user agent on ARM platforms.
- [#968](https://github.com/xmrig/xmrig/pull/968) Optimized `cn/r` algorithm performance. - [#968](https://github.com/xmlcore/xmlcore/pull/968) Optimized `cn/r` algorithm performance.
# v2.13.1 # v2.13.1
- [#946](https://github.com/xmrig/xmrig/pull/946) Optimized software AES implementations for CPUs without hardware AES support. `cn/r`, `cn/wow` up to 2.6 times faster, 4-9% improvements for other algorithms. - [#946](https://github.com/xmlcore/xmlcore/pull/946) Optimized software AES implementations for CPUs without hardware AES support. `cn/r`, `cn/wow` up to 2.6 times faster, 4-9% improvements for other algorithms.
# v2.13.0 # v2.13.0
- **[#938](https://github.com/xmrig/xmrig/issues/938) Added support for new algorithm `cryptonight/r`, short alias `cn/r` (also known as CryptoNightR or CryptoNight variant 4), for upcoming [Monero](https://www.getmonero.org/) fork on March 9, thanks [@SChernykh](https://github.com/SChernykh).** - **[#938](https://github.com/xmlcore/xmlcore/issues/938) Added support for new algorithm `cryptonight/r`, short alias `cn/r` (also known as CryptoNightR or CryptoNight variant 4), for upcoming [Monero](https://www.getmonero.org/) fork on March 9, thanks [@SChernykh](https://github.com/SChernykh).**
- [#939](https://github.com/xmrig/xmrig/issues/939) Added support for dynamic (runtime) pools reload. - [#939](https://github.com/xmlcore/xmlcore/issues/939) Added support for dynamic (runtime) pools reload.
- [#932](https://github.com/xmrig/xmrig/issues/932) Fixed `cn-pico` hashrate drop, regression since v2.11.0. - [#932](https://github.com/xmlcore/xmlcore/issues/932) Fixed `cn-pico` hashrate drop, regression since v2.11.0.
# v2.12.0 # v2.12.0
- [#929](https://github.com/xmrig/xmrig/pull/929) Added support for new algorithm `cryptonight/wow`, short alias `cn/wow` (also known as CryptonightR), for upcoming [Wownero](http://wownero.org) fork on February 14. - [#929](https://github.com/xmlcore/xmlcore/pull/929) Added support for new algorithm `cryptonight/wow`, short alias `cn/wow` (also known as CryptonightR), for upcoming [Wownero](http://wownero.org) fork on February 14.
# v2.11.0 # v2.11.0
- [#928](https://github.com/xmrig/xmrig/issues/928) Added support for new algorithm `cryptonight/gpu`, short alias `cn/gpu` (original name `cryptonight-gpu`), for upcoming [Ryo currency](https://ryo-currency.com) fork on February 14. - [#928](https://github.com/xmlcore/xmlcore/issues/928) Added support for new algorithm `cryptonight/gpu`, short alias `cn/gpu` (original name `cryptonight-gpu`), for upcoming [Ryo currency](https://ryo-currency.com) fork on February 14.
- [#749](https://github.com/xmrig/xmrig/issues/749) Added support for detect hardware AES in runtime on ARMv8 platforms. - [#749](https://github.com/xmlcore/xmlcore/issues/749) Added support for detect hardware AES in runtime on ARMv8 platforms.
- [#292](https://github.com/xmrig/xmrig/issues/292) Fixed build on ARMv8 platforms if compiler not support hardware AES. - [#292](https://github.com/xmlcore/xmlcore/issues/292) Fixed build on ARMv8 platforms if compiler not support hardware AES.
# v2.10.0 # v2.10.0
- [#904](https://github.com/xmrig/xmrig/issues/904) Added new algorithm `cn-pico/trtl` (aliases `cryptonight-turtle`, `cn-trtl`) for upcoming TurtleCoin (TRTL) fork. - [#904](https://github.com/xmlcore/xmlcore/issues/904) Added new algorithm `cn-pico/trtl` (aliases `cryptonight-turtle`, `cn-trtl`) for upcoming TurtleCoin (TRTL) fork.
- Default value for option `max-cpu-usage` changed to `100` also this option now deprecated. - Default value for option `max-cpu-usage` changed to `100` also this option now deprecated.
# v2.9.4 # v2.9.4
- [#913](https://github.com/xmrig/xmrig/issues/913) Fixed Masari (MSR) support (this update required for upcoming fork). - [#913](https://github.com/xmlcore/xmlcore/issues/913) Fixed Masari (MSR) support (this update required for upcoming fork).
- [#915](https://github.com/xmrig/xmrig/pull/915) Improved security, JIT memory now read-only after patching. - [#915](https://github.com/xmlcore/xmlcore/pull/915) Improved security, JIT memory now read-only after patching.
# v2.9.3 # v2.9.3
- [#909](https://github.com/xmrig/xmrig/issues/909) Fixed compile errors on FreeBSD. - [#909](https://github.com/xmlcore/xmlcore/issues/909) Fixed compile errors on FreeBSD.
- [#912](https://github.com/xmrig/xmrig/pull/912) Fixed, C++ implementation of `cn/half` was produce up to 13% of invalid hashes. - [#912](https://github.com/xmlcore/xmlcore/pull/912) Fixed, C++ implementation of `cn/half` was produce up to 13% of invalid hashes.
# v2.9.2 # v2.9.2
- [#907](https://github.com/xmrig/xmrig/pull/907) Fixed crash on Linux. - [#907](https://github.com/xmlcore/xmlcore/pull/907) Fixed crash on Linux.
# v2.9.1 # v2.9.1
- Restored compatibility with https://stellite.hashvault.pro. - Restored compatibility with https://stellite.hashvault.pro.
# v2.9.0 # v2.9.0
- [#899](https://github.com/xmrig/xmrig/issues/899) Added support for new algorithm `cn/half` for Masari and Stellite forks. - [#899](https://github.com/xmlcore/xmlcore/issues/899) Added support for new algorithm `cn/half` for Masari and Stellite forks.
- [#834](https://github.com/xmrig/xmrig/pull/834) Added ASM optimized code for AMD Bulldozer. - [#834](https://github.com/xmlcore/xmlcore/pull/834) Added ASM optimized code for AMD Bulldozer.
- [#839](https://github.com/xmrig/xmrig/issues/839) Fixed FreeBSD compile. - [#839](https://github.com/xmlcore/xmlcore/issues/839) Fixed FreeBSD compile.
- [#857](https://github.com/xmrig/xmrig/pull/857) Fixed impossible to build for macOS without clang. - [#857](https://github.com/xmlcore/xmlcore/pull/857) Fixed impossible to build for macOS without clang.
# v2.8.3 # v2.8.3
- [#813](https://github.com/xmrig/xmrig/issues/813) Fixed critical bug with Minergate pool and variant 2. - [#813](https://github.com/xmlcore/xmlcore/issues/813) Fixed critical bug with Minergate pool and variant 2.
# v2.8.1 # v2.8.1
- [#768](https://github.com/xmrig/xmrig/issues/768) Fixed build with Visual Studio 2015. - [#768](https://github.com/xmlcore/xmlcore/issues/768) Fixed build with Visual Studio 2015.
- [#769](https://github.com/xmrig/xmrig/issues/769) Fixed regression, some ANSI escape sequences was in log with disabled colors. - [#769](https://github.com/xmlcore/xmlcore/issues/769) Fixed regression, some ANSI escape sequences was in log with disabled colors.
- [#777](https://github.com/xmrig/xmrig/issues/777) Better report about pool connection issues. - [#777](https://github.com/xmlcore/xmlcore/issues/777) Better report about pool connection issues.
- Simplified checks for ASM auto detection, only AES support necessary. - Simplified checks for ASM auto detection, only AES support necessary.
- Added missing options to `--help` output. - Added missing options to `--help` output.
# v2.8.0 # v2.8.0
- **[#753](https://github.com/xmrig/xmrig/issues/753) Added new algorithm [CryptoNight variant 2](https://github.com/xmrig/xmrig/issues/753) for Monero fork, thanks [@SChernykh](https://github.com/SChernykh).** - **[#753](https://github.com/xmlcore/xmlcore/issues/753) Added new algorithm [CryptoNight variant 2](https://github.com/xmlcore/xmlcore/issues/753) for Monero fork, thanks [@SChernykh](https://github.com/SChernykh).**
- Added global and per thread option `"asm"` and and command line equivalent. - Added global and per thread option `"asm"` and and command line equivalent.
- **[#758](https://github.com/xmrig/xmrig/issues/758) Added SSL/TLS support for secure connections to pools.** - **[#758](https://github.com/xmlcore/xmlcore/issues/758) Added SSL/TLS support for secure connections to pools.**
- Added per pool options `"tls"` and `"tls-fingerprint"` and command line equivalents. - Added per pool options `"tls"` and `"tls-fingerprint"` and command line equivalents.
- [#767](https://github.com/xmrig/xmrig/issues/767) Added config autosave feature, same with GPU miners. - [#767](https://github.com/xmlcore/xmlcore/issues/767) Added config autosave feature, same with GPU miners.
- [#245](https://github.com/xmrig/xmrig-proxy/issues/245) Fixed API ID collision when run multiple miners on same machine. - [#245](https://github.com/xmlcore/xmlcore-proxy/issues/245) Fixed API ID collision when run multiple miners on same machine.
- [#757](https://github.com/xmrig/xmrig/issues/757) Fixed send buffer overflow. - [#757](https://github.com/xmlcore/xmlcore/issues/757) Fixed send buffer overflow.
# v2.6.4 # v2.6.4
- [#700](https://github.com/xmrig/xmrig/issues/700) `cryptonight-lite/ipbc` replaced to `cryptonight-heavy/tube` for **Bittube (TUBE)**. - [#700](https://github.com/xmlcore/xmlcore/issues/700) `cryptonight-lite/ipbc` replaced to `cryptonight-heavy/tube` for **Bittube (TUBE)**.
- Added `cryptonight/rto` (cryptonight variant 1 with IPBC/TUBE mod) variant for **Arto (RTO)** coin. - Added `cryptonight/rto` (cryptonight variant 1 with IPBC/TUBE mod) variant for **Arto (RTO)** coin.
- Added `cryptonight/xao` (original cryptonight with bigger iteration count) variant for **Alloy (XAO)** coin. - Added `cryptonight/xao` (original cryptonight with bigger iteration count) variant for **Alloy (XAO)** coin.
- Better variant detection for **nicehash.com** and **minergate.com**. - Better variant detection for **nicehash.com** and **minergate.com**.
- [#692](https://github.com/xmrig/xmrig/issues/692) Added support for specify both algorithm and variant via single `algo` option. - [#692](https://github.com/xmlcore/xmlcore/issues/692) Added support for specify both algorithm and variant via single `algo` option.
# v2.6.3 # v2.6.3
- **Added support for new cryptonight-heavy variant xhv** (`cn-heavy/xhv`) for upcoming Haven Protocol fork. - **Added support for new cryptonight-heavy variant xhv** (`cn-heavy/xhv`) for upcoming Haven Protocol fork.
- **Added support for new cryptonight variant msr** (`cn/msr`) also known as `cryptonight-fast` for upcoming Masari fork. - **Added support for new cryptonight variant msr** (`cn/msr`) also known as `cryptonight-fast` for upcoming Masari fork.
- Added new detailed hashrate report. - Added new detailed hashrate report.
- [#446](https://github.com/xmrig/xmrig/issues/446) Likely fixed SIGBUS error on 32 bit ARM CPUs. - [#446](https://github.com/xmlcore/xmlcore/issues/446) Likely fixed SIGBUS error on 32 bit ARM CPUs.
- [#551](https://github.com/xmrig/xmrig/issues/551) Fixed `cn-heavy` algorithm on ARMv8. - [#551](https://github.com/xmlcore/xmlcore/issues/551) Fixed `cn-heavy` algorithm on ARMv8.
- [#614](https://github.com/xmrig/xmrig/issues/614) Fixed display issue with huge pages percentage when colors disabled. - [#614](https://github.com/xmlcore/xmlcore/issues/614) Fixed display issue with huge pages percentage when colors disabled.
- [#615](https://github.com/xmrig/xmrig/issues/615) Fixed build without libcpuid. - [#615](https://github.com/xmlcore/xmlcore/issues/615) Fixed build without libcpuid.
- [#629](https://github.com/xmrig/xmrig/pull/629) Fixed file logging with non-seekable files. - [#629](https://github.com/xmlcore/xmlcore/pull/629) Fixed file logging with non-seekable files.
- [#672](https://github.com/xmrig/xmrig/pull/672) Reverted back `cryptonight-light` and exit if no valid algorithm specified. - [#672](https://github.com/xmlcore/xmlcore/pull/672) Reverted back `cryptonight-light` and exit if no valid algorithm specified.
# v2.6.2 # v2.6.2
- [#607](https://github.com/xmrig/xmrig/issues/607) Fixed donation bug. - [#607](https://github.com/xmlcore/xmlcore/issues/607) Fixed donation bug.
- [#610](https://github.com/xmrig/xmrig/issues/610) Fixed ARM build. - [#610](https://github.com/xmlcore/xmlcore/issues/610) Fixed ARM build.
# v2.6.1 # v2.6.1
- [#168](https://github.com/xmrig/xmrig-proxy/issues/168) Added support for [mining algorithm negotiation](https://github.com/xmrig/xmrig-proxy/blob/dev/doc/STRATUM_EXT.md#1-mining-algorithm-negotiation). - [#168](https://github.com/xmlcore/xmlcore-proxy/issues/168) Added support for [mining algorithm negotiation](https://github.com/xmlcore/xmlcore-proxy/blob/dev/doc/STRATUM_EXT.md#1-mining-algorithm-negotiation).
- Added IPBC coin support, base algorithm `cn-lite` variant `ipbc`. - Added IPBC coin support, base algorithm `cn-lite` variant `ipbc`.
- [#581](https://github.com/xmrig/xmrig/issues/581) Added support for upcoming Stellite (XTL) fork, base algorithm `cn` variant `xtl`, variant can set now, no need do it after fork. - [#581](https://github.com/xmlcore/xmlcore/issues/581) Added support for upcoming Stellite (XTL) fork, base algorithm `cn` variant `xtl`, variant can set now, no need do it after fork.
- Added support for **rig-id** stratum protocol extensions, compatible with xmr-stak. - Added support for **rig-id** stratum protocol extensions, compatible with xmr-stak.
- Changed behavior for option `variant=-1` for `cryptonight`, now variant is `1` by default, if you mine old coins need change `variant` to `0`. - Changed behavior for option `variant=-1` for `cryptonight`, now variant is `1` by default, if you mine old coins need change `variant` to `0`.
- A lot of small fixes and better unification with proxy code. - A lot of small fixes and better unification with proxy code.
# v2.6.0-beta3 # v2.6.0-beta3
- [#563](https://github.com/xmrig/xmrig/issues/563) **Added [advanced threads mode](https://github.com/xmrig/xmrig/issues/563), now possible configure each thread individually.** - [#563](https://github.com/xmlcore/xmlcore/issues/563) **Added [advanced threads mode](https://github.com/xmlcore/xmlcore/issues/563), now possible configure each thread individually.**
- [#255](https://github.com/xmrig/xmrig/issues/563) Low power mode extended to **triple**, **quard** and **penta** modes. - [#255](https://github.com/xmlcore/xmlcore/issues/563) Low power mode extended to **triple**, **quard** and **penta** modes.
- [#519](https://github.com/xmrig/xmrig/issues/519) Fixed high donation levels, improved donation start time randomization. - [#519](https://github.com/xmlcore/xmlcore/issues/519) Fixed high donation levels, improved donation start time randomization.
- [#554](https://github.com/xmrig/xmrig/issues/554) Fixed regression with `print-time` option. - [#554](https://github.com/xmlcore/xmlcore/issues/554) Fixed regression with `print-time` option.
# v2.6.0-beta2 # v2.6.0-beta2
- Improved performance for `cryptonight v7` especially in double hash mode. - Improved performance for `cryptonight v7` especially in double hash mode.
- [#499](https://github.com/xmrig/xmrig/issues/499) IPv6 disabled for internal HTTP API by default, was causing issues on some systems. - [#499](https://github.com/xmlcore/xmlcore/issues/499) IPv6 disabled for internal HTTP API by default, was causing issues on some systems.
- Added short aliases for algorithm names: `cn`, `cn-lite` and `cn-heavy`. - Added short aliases for algorithm names: `cn`, `cn-lite` and `cn-heavy`.
- Fixed regressions (v2.6.0-beta1 affected) - Fixed regressions (v2.6.0-beta1 affected)
- [#494](https://github.com/xmrig/xmrig/issues/494) Command line option `--donate-level` was broken. - [#494](https://github.com/xmlcore/xmlcore/issues/494) Command line option `--donate-level` was broken.
- [#502](https://github.com/xmrig/xmrig/issues/502) Build without libmicrohttpd was broken. - [#502](https://github.com/xmlcore/xmlcore/issues/502) Build without libmicrohttpd was broken.
- Fixed nonce calculation for `--av 4` (software AES, double hash) was causing reduction of effective hashrate and rejected shares on nicehash. - Fixed nonce calculation for `--av 4` (software AES, double hash) was causing reduction of effective hashrate and rejected shares on nicehash.
# v2.6.0-beta1 # v2.6.0-beta1
- [#476](https://github.com/xmrig/xmrig/issues/476) **Added Cryptonight-Heavy support for Sumokoin ASIC resistance fork.** - [#476](https://github.com/xmlcore/xmlcore/issues/476) **Added Cryptonight-Heavy support for Sumokoin ASIC resistance fork.**
- HTTP server now runs in main loop, it make possible easy extend API without worry about thread synchronization. - HTTP server now runs in main loop, it make possible easy extend API without worry about thread synchronization.
- Added initial graceful reload support, miner will reload configuration if config file changed, disabled by default until it will be fully implemented and tested. - Added initial graceful reload support, miner will reload configuration if config file changed, disabled by default until it will be fully implemented and tested.
- Added API endpoint `PUT /1/config` to update current config. - Added API endpoint `PUT /1/config` to update current config.
@ -321,100 +321,100 @@
# v2.5.3 # v2.5.3
- Fixed critical bug, in some cases miner was can't recovery connection and switch to failover pool, version 2.5.2 affected. If you use v2.6.0-beta3 this issue doesn't concern you. - Fixed critical bug, in some cases miner was can't recovery connection and switch to failover pool, version 2.5.2 affected. If you use v2.6.0-beta3 this issue doesn't concern you.
- [#499](https://github.com/xmrig/xmrig/issues/499) IPv6 support disabled for internal HTTP API. - [#499](https://github.com/xmlcore/xmlcore/issues/499) IPv6 support disabled for internal HTTP API.
- Added workaround for nicehash.com if you use `cryptonightv7.<region>.nicehash.com` option `variant=1` will be set automatically. - Added workaround for nicehash.com if you use `cryptonightv7.<region>.nicehash.com` option `variant=1` will be set automatically.
# v2.5.2 # v2.5.2
- [#448](https://github.com/xmrig/xmrig/issues/478) Fixed broken reconnect. - [#448](https://github.com/xmlcore/xmlcore/issues/478) Fixed broken reconnect.
# v2.5.1 # v2.5.1
- [#454](https://github.com/xmrig/xmrig/issues/454) Fixed build with libmicrohttpd version below v0.9.35. - [#454](https://github.com/xmlcore/xmlcore/issues/454) Fixed build with libmicrohttpd version below v0.9.35.
- [#456](https://github.com/xmrig/xmrig/issues/459) Verbose errors related to donation pool was not fully silenced. - [#456](https://github.com/xmlcore/xmlcore/issues/459) Verbose errors related to donation pool was not fully silenced.
- [#459](https://github.com/xmrig/xmrig/issues/459) Fixed regression (version 2.5.0 affected) with connection to **xmr.f2pool.com**. - [#459](https://github.com/xmlcore/xmlcore/issues/459) Fixed regression (version 2.5.0 affected) with connection to **xmr.f2pool.com**.
# v2.5.0 # v2.5.0
- [#434](https://github.com/xmrig/xmrig/issues/434) **Added support for Monero v7 PoW, scheduled on April 6.** - [#434](https://github.com/xmlcore/xmlcore/issues/434) **Added support for Monero v7 PoW, scheduled on April 6.**
- Added full IPv6 support. - Added full IPv6 support.
- Added protocol extension, when use the miner with xmrig-proxy 2.5+ no more need manually specify `nicehash` option. - Added protocol extension, when use the miner with xmlcore-proxy 2.5+ no more need manually specify `nicehash` option.
- [#123](https://github.com/xmrig/xmrig-proxy/issues/123) Fixed regression (all versions since 2.4 affected) fragmented responses from pool/proxy was parsed incorrectly. - [#123](https://github.com/xmlcore/xmlcore-proxy/issues/123) Fixed regression (all versions since 2.4 affected) fragmented responses from pool/proxy was parsed incorrectly.
- [#428](https://github.com/xmrig/xmrig/issues/428) Fixed regression (version 2.4.5 affected) with CPU cache size detection. - [#428](https://github.com/xmlcore/xmlcore/issues/428) Fixed regression (version 2.4.5 affected) with CPU cache size detection.
# v2.4.5 # v2.4.5
- [#324](https://github.com/xmrig/xmrig/pull/324) Fixed build without libmicrohttpd (CMake cache issue). - [#324](https://github.com/xmlcore/xmlcore/pull/324) Fixed build without libmicrohttpd (CMake cache issue).
- [#341](https://github.com/xmrig/xmrig/issues/341) Fixed wrong exit code and added command line option `--dry-run`. - [#341](https://github.com/xmlcore/xmlcore/issues/341) Fixed wrong exit code and added command line option `--dry-run`.
- [#385](https://github.com/xmrig/xmrig/pull/385) Up to 20% performance increase for non-AES CPU and fixed Intel Core 2 cache detection. - [#385](https://github.com/xmlcore/xmlcore/pull/385) Up to 20% performance increase for non-AES CPU and fixed Intel Core 2 cache detection.
# v2.4.4 # v2.4.4
- Added libmicrohttpd version to --version output. - Added libmicrohttpd version to --version output.
- Fixed bug in singal handler, in some cases miner wasn't shutdown properly. - Fixed bug in singal handler, in some cases miner wasn't shutdown properly.
- Fixed recent MSVC 2017 version detection. - Fixed recent MSVC 2017 version detection.
- [#279](https://github.com/xmrig/xmrig/pull/279) Fixed build on some macOS versions. - [#279](https://github.com/xmlcore/xmlcore/pull/279) Fixed build on some macOS versions.
# v2.4.3 # v2.4.3
- [#94](https://github.com/xmrig/xmrig/issues/94#issuecomment-342019257) [#216](https://github.com/xmrig/xmrig/issues/216) Added **ARMv8** and **ARMv7** support. Hardware AES supported, thanks [Imran Yusuff](https://github.com/imranyusuff). - [#94](https://github.com/xmlcore/xmlcore/issues/94#issuecomment-342019257) [#216](https://github.com/xmlcore/xmlcore/issues/216) Added **ARMv8** and **ARMv7** support. Hardware AES supported, thanks [Imran Yusuff](https://github.com/imranyusuff).
- [#157](https://github.com/xmrig/xmrig/issues/157) [#196](https://github.com/xmrig/xmrig/issues/196) Fixed Linux compile issues. - [#157](https://github.com/xmlcore/xmlcore/issues/157) [#196](https://github.com/xmlcore/xmlcore/issues/196) Fixed Linux compile issues.
- [#184](https://github.com/xmrig/xmrig/issues/184) Fixed cache size detection for CPUs with disabled Hyper-Threading. - [#184](https://github.com/xmlcore/xmlcore/issues/184) Fixed cache size detection for CPUs with disabled Hyper-Threading.
- [#200](https://github.com/xmrig/xmrig/issues/200) In some cases miner was doesn't write log to stdout. - [#200](https://github.com/xmlcore/xmlcore/issues/200) In some cases miner was doesn't write log to stdout.
# v2.4.2 # v2.4.2
- [#60](https://github.com/xmrig/xmrig/issues/60) Added FreeBSD support, thanks [vcambur](https://github.com/vcambur). - [#60](https://github.com/xmlcore/xmlcore/issues/60) Added FreeBSD support, thanks [vcambur](https://github.com/vcambur).
- [#153](https://github.com/xmrig/xmrig/issues/153) Fixed issues with dwarfpool.com. - [#153](https://github.com/xmlcore/xmlcore/issues/153) Fixed issues with dwarfpool.com.
# v2.4.1 # v2.4.1
- [#147](https://github.com/xmrig/xmrig/issues/147) Fixed comparability with monero-stratum. - [#147](https://github.com/xmlcore/xmlcore/issues/147) Fixed comparability with monero-stratum.
# v2.4.0 # v2.4.0
- Added [HTTP API](https://github.com/xmrig/xmrig/wiki/API). - Added [HTTP API](https://github.com/xmlcore/xmlcore/wiki/API).
- Added comments support in config file. - Added comments support in config file.
- libjansson replaced to rapidjson. - libjansson replaced to rapidjson.
- [#98](https://github.com/xmrig/xmrig/issues/98) Ignore `keepalive` option with minergate.com and nicehash.com. - [#98](https://github.com/xmlcore/xmlcore/issues/98) Ignore `keepalive` option with minergate.com and nicehash.com.
- [#101](https://github.com/xmrig/xmrig/issues/101) Fixed MSVC 2017 (15.3) compile time version detection. - [#101](https://github.com/xmlcore/xmlcore/issues/101) Fixed MSVC 2017 (15.3) compile time version detection.
- [#108](https://github.com/xmrig/xmrig/issues/108) Silently ignore invalid values for `donate-level` option. - [#108](https://github.com/xmlcore/xmlcore/issues/108) Silently ignore invalid values for `donate-level` option.
- [#111](https://github.com/xmrig/xmrig/issues/111) Fixed build without AEON support. - [#111](https://github.com/xmlcore/xmlcore/issues/111) Fixed build without AEON support.
# v2.3.1 # v2.3.1
- [#68](https://github.com/xmrig/xmrig/issues/68) Fixed compatibility with Docker containers, was nothing print on console. - [#68](https://github.com/xmlcore/xmlcore/issues/68) Fixed compatibility with Docker containers, was nothing print on console.
# v2.3.0 # v2.3.0
- Added `--cpu-priority` option (0 idle, 2 normal to 5 highest). - Added `--cpu-priority` option (0 idle, 2 normal to 5 highest).
- Added `--user-agent` option, to set custom user-agent string for pool. For example `cpuminer-multi/0.1`. - Added `--user-agent` option, to set custom user-agent string for pool. For example `cpuminer-multi/0.1`.
- Added `--no-huge-pages` option, to disable huge pages support. - Added `--no-huge-pages` option, to disable huge pages support.
- [#62](https://github.com/xmrig/xmrig/issues/62) Don't send the login to the dev pool. - [#62](https://github.com/xmlcore/xmlcore/issues/62) Don't send the login to the dev pool.
- Force reconnect if pool block miner IP address. helps switch to backup pool. - Force reconnect if pool block miner IP address. helps switch to backup pool.
- Fixed: failed open default config file if path contains non English characters. - Fixed: failed open default config file if path contains non English characters.
- Fixed: error occurred if try use unavailable stdin or stdout, regression since version 2.2.0. - Fixed: error occurred if try use unavailable stdin or stdout, regression since version 2.2.0.
- Fixed: message about huge pages support successfully enabled on Windows was not shown in release builds. - Fixed: message about huge pages support successfully enabled on Windows was not shown in release builds.
# v2.2.1 # v2.2.1
- Fixed [terminal issues](https://github.com/xmrig/xmrig-proxy/issues/2#issuecomment-319914085) after exit on Linux and OS X. - Fixed [terminal issues](https://github.com/xmlcore/xmlcore-proxy/issues/2#issuecomment-319914085) after exit on Linux and OS X.
# v2.2.0 # v2.2.0
- [#46](https://github.com/xmrig/xmrig/issues/46) Restored config file support. Now possible use multiple config files and combine with command line options also added support for default config. - [#46](https://github.com/xmlcore/xmlcore/issues/46) Restored config file support. Now possible use multiple config files and combine with command line options also added support for default config.
- Improved colors support on Windows, now used uv_tty, legacy code removed. - Improved colors support on Windows, now used uv_tty, legacy code removed.
- QuickEdit Mode now disabled on Windows. - QuickEdit Mode now disabled on Windows.
- Added interactive commands in console window:: **h**ashrate, **p**ause, **r**esume. - Added interactive commands in console window:: **h**ashrate, **p**ause, **r**esume.
- Fixed autoconf mode for AMD FX CPUs. - Fixed autoconf mode for AMD FX CPUs.
# v2.1.0 # v2.1.0
- [#40](https://github.com/xmrig/xmrig/issues/40) - [#40](https://github.com/xmlcore/xmlcore/issues/40)
Improved miner shutdown, fixed crash on exit for Linux and OS X. Improved miner shutdown, fixed crash on exit for Linux and OS X.
- Fixed, login request was contain malformed JSON if username or password has some special characters for example `\`. - Fixed, login request was contain malformed JSON if username or password has some special characters for example `\`.
- [#220](https://github.com/fireice-uk/xmr-stak-cpu/pull/220) Better support for Round Robin DNS, IP address now always chosen randomly instead of stuck on first one. - [#220](https://github.com/fireice-uk/xmr-stak-cpu/pull/220) Better support for Round Robin DNS, IP address now always chosen randomly instead of stuck on first one.
- Changed donation address, new [xmrig-proxy](https://github.com/xmrig/xmrig-proxy) is coming soon. - Changed donation address, new [xmlcore-proxy](https://github.com/xmlcore/xmlcore-proxy) is coming soon.
# v2.0.2 # v2.0.2
- Better deal with possible duplicate jobs from pool, show warning and ignore duplicates. - Better deal with possible duplicate jobs from pool, show warning and ignore duplicates.
- For Windows builds libuv updated to version 1.13.1 and gcc to 7.1.0. - For Windows builds libuv updated to version 1.13.1 and gcc to 7.1.0.
# v2.0.1 # v2.0.1
- [#27](https://github.com/xmrig/xmrig/issues/27) Fixed possibility crash on 32bit systems. - [#27](https://github.com/xmlcore/xmlcore/issues/27) Fixed possibility crash on 32bit systems.
# v2.0.0 # v2.0.0
- Option `--backup-url` removed, instead now possibility specify multiple pools for example: `-o example1.com:3333 -u user1 -p password1 -k -o example2.com:5555 -u user2 -o example3.com:4444 -u user3` - Option `--backup-url` removed, instead now possibility specify multiple pools for example: `-o example1.com:3333 -u user1 -p password1 -k -o example2.com:5555 -u user2 -o example3.com:4444 -u user3`
- [#15](https://github.com/xmrig/xmrig/issues/15) Added option `-l, --log-file=FILE` to write log to file. - [#15](https://github.com/xmlcore/xmlcore/issues/15) Added option `-l, --log-file=FILE` to write log to file.
- [#15](https://github.com/xmrig/xmrig/issues/15) Added option `-S, --syslog` to use syslog for logging, Linux only. - [#15](https://github.com/xmlcore/xmlcore/issues/15) Added option `-S, --syslog` to use syslog for logging, Linux only.
- [#18](https://github.com/xmrig/xmrig/issues/18) Added nice messages for accepted/rejected shares with diff and network latency. - [#18](https://github.com/xmlcore/xmlcore/issues/18) Added nice messages for accepted/rejected shares with diff and network latency.
- [#20](https://github.com/xmrig/xmrig/issues/20) Fixed `--cpu-affinity` for more than 32 threads. - [#20](https://github.com/xmlcore/xmlcore/issues/20) Fixed `--cpu-affinity` for more than 32 threads.
- Fixed Windows XP support. - Fixed Windows XP support.
- Fixed regression, option `--no-color` was not fully disable colored output. - Fixed regression, option `--no-color` was not fully disable colored output.
- Show resolved pool IP address in miner output. - Show resolved pool IP address in miner output.
@ -425,12 +425,12 @@ Improved miner shutdown, fixed crash on exit for Linux and OS X.
# v1.0.0 # v1.0.0
- Miner complete rewritten in C++ with libuv. - Miner complete rewritten in C++ with libuv.
- This version should be fully compatible (except config file) with previos versions, many new nice features will come in next versions. - This version should be fully compatible (except config file) with previos versions, many new nice features will come in next versions.
- This is still beta. If you found regression, stability or perfomance issues or have an idea for new feature please fell free to open new [issue](https://github.com/xmrig/xmrig/issues/new). - This is still beta. If you found regression, stability or perfomance issues or have an idea for new feature please fell free to open new [issue](https://github.com/xmlcore/xmlcore/issues/new).
- Added new option `--print-time=N`, print hashrate report every N seconds. - Added new option `--print-time=N`, print hashrate report every N seconds.
- New hashrate reports, by default every 60 secons. - New hashrate reports, by default every 60 secons.
- Added Microsoft Visual C++ 2015 and 2017 support. - Added Microsoft Visual C++ 2015 and 2017 support.
- Removed dependency on libcurl. - Removed dependency on libcurl.
- To compile this version from source please switch to [dev](https://github.com/xmrig/xmrig/tree/dev) branch. - To compile this version from source please switch to [dev](https://github.com/xmlcore/xmlcore/tree/dev) branch.
# v0.8.2 # v0.8.2
- Fixed L2 cache size detection for AMD CPUs (Bulldozer/Piledriver/Steamroller/Excavator architecture). - Fixed L2 cache size detection for AMD CPUs (Bulldozer/Piledriver/Steamroller/Excavator architecture).
@ -448,7 +448,7 @@ Improved miner shutdown, fixed crash on exit for Linux and OS X.
- Added CryptoNight-Lite support for AEON `-a cryptonight-lite`. - Added CryptoNight-Lite support for AEON `-a cryptonight-lite`.
- Added `--max-cpu-usage` option for auto CPU configuration mode. - Added `--max-cpu-usage` option for auto CPU configuration mode.
- Added `--safe` option for adjust threads and algorithm variations to current CPU. - Added `--safe` option for adjust threads and algorithm variations to current CPU.
- No more manual steps to enable huge pages on Windows. XMRig will do it automatically. - No more manual steps to enable huge pages on Windows. xmlcore will do it automatically.
- Removed BMI2 algorithm variation. - Removed BMI2 algorithm variation.
- Removed default pool URL. - Removed default pool URL.
@ -456,7 +456,7 @@ Improved miner shutdown, fixed crash on exit for Linux and OS X.
- Added automatic cryptonight self test. - Added automatic cryptonight self test.
- New software AES algorithm variation. Will be automatically selected if cpu not support AES-NI. - New software AES algorithm variation. Will be automatically selected if cpu not support AES-NI.
- Added 32 bit builds. - Added 32 bit builds.
- Documented [algorithm variations](https://github.com/xmrig/xmrig#algorithm-variations). - Documented [algorithm variations](https://github.com/xmlcore/xmlcore#algorithm-variations).
# v0.5.0 # v0.5.0
- Initial public release. - Initial public release.

View file

@ -93,10 +93,10 @@ Use 1GB hugepages for RandomX dataset (Linux only). Enabled (`true`) or disabled
Restore MSR register values to their original values on exit. Used together with `wrmsr`. Enabled (`true`) or disabled (`false`). Restore MSR register values to their original values on exit. Used together with `wrmsr`. Enabled (`true`) or disabled (`false`).
#### `wrmsr` #### `wrmsr`
[MSR mod](https://xmrig.com/docs/miner/randomx-optimization-guide/msr). Enabled (`true`) or disabled (`false`). It gives up to 15% speedup depending on your system. [MSR mod](https://xmlcore.com/docs/miner/randomx-optimization-guide/msr). Enabled (`true`) or disabled (`false`). It gives up to 15% speedup depending on your system.
#### `cache_qos` #### `cache_qos`
[Cache QoS](https://xmrig.com/docs/miner/randomx-optimization-guide/qos). Enabled (`true`) or disabled (`false`). It's useful when you can't or don't want to mine on all CPU cores to make mining hashrate more stable. [Cache QoS](https://xmlcore.com/docs/miner/randomx-optimization-guide/qos). Enabled (`true`) or disabled (`false`). It's useful when you can't or don't want to mine on all CPU cores to make mining hashrate more stable.
#### `numa` #### `numa`
NUMA support (better hashrate on multi-CPU servers and Ryzen Threadripper 1xxx/2xxx). Enabled (`true`) or disabled (`false`). NUMA support (better hashrate on multi-CPU servers and Ryzen Threadripper 1xxx/2xxx). Enabled (`true`) or disabled (`false`).

View file

@ -3,7 +3,7 @@
"worker_id": "Ubuntu-1604-xenial-64-minimal", "worker_id": "Ubuntu-1604-xenial-64-minimal",
"version": "2.6.0-beta3", "version": "2.6.0-beta3",
"kind": "cpu", "kind": "cpu",
"ua": "XMRig/2.6.0-beta3 (Linux x86_64) libuv/1.8.0 gcc/5.4.0", "ua": "xmlcore/2.6.0-beta3 (Linux x86_64) libuv/1.8.0 gcc/5.4.0",
"cpu": { "cpu": {
"brand": "Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz", "brand": "Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz",
"aes": true, "aes": true,

View file

@ -1,5 +1,5 @@
# CMake options # CMake options
**Recent version of this document: https://xmrig.com/docs/miner/cmake-options** **Recent version of this document: https://xmlcore.com/docs/miner/cmake-options**
## Algorithms ## Algorithms
@ -12,14 +12,14 @@
## Features ## Features
* **`-DWITH_HWLOC=OFF`** * **`-DWITH_HWLOC=OFF`**
disable [hwloc](https://github.com/xmrig/xmrig/issues/1077) support. disable [hwloc](https://github.com/xmlcore/xmlcore/issues/1077) support.
Disabling this feature is not recommended in most cases. Disabling this feature is not recommended in most cases.
This feature add external dependency to libhwloc (1.10.0+) (except MSVC builds). This feature add external dependency to libhwloc (1.10.0+) (except MSVC builds).
* **`-DWITH_LIBCPUID=OFF`** disable built in libcpuid support, this feature always disabled if hwloc enabled, if both hwloc and libcpuid disabled auto configuration for CPU will very limited. * **`-DWITH_LIBCPUID=OFF`** disable built in libcpuid support, this feature always disabled if hwloc enabled, if both hwloc and libcpuid disabled auto configuration for CPU will very limited.
* **`-DWITH_HTTP=OFF`** disable built in HTTP support, this feature used for HTTP API and daemon (solo mining) support. * **`-DWITH_HTTP=OFF`** disable built in HTTP support, this feature used for HTTP API and daemon (solo mining) support.
* **`-DWITH_TLS=OFF`** disable SSL/TLS support (secure connections to pool). This feature add external dependency to OpenSSL. * **`-DWITH_TLS=OFF`** disable SSL/TLS support (secure connections to pool). This feature add external dependency to OpenSSL.
* **`-DWITH_ASM=OFF`** disable assembly optimizations for modern CryptoNight algorithms. * **`-DWITH_ASM=OFF`** disable assembly optimizations for modern CryptoNight algorithms.
* **`-DWITH_EMBEDDED_CONFIG=ON`** Enable [embedded](https://github.com/xmrig/xmrig/issues/957) config support. * **`-DWITH_EMBEDDED_CONFIG=ON`** Enable [embedded](https://github.com/xmlcore/xmlcore/issues/957) config support.
* **`-DWITH_OPENCL=OFF`** Disable OpenCL backend. * **`-DWITH_OPENCL=OFF`** Disable OpenCL backend.
* **`-DWITH_CUDA=OFF`** Disable CUDA backend. * **`-DWITH_CUDA=OFF`** Disable CUDA backend.
* **`-DWITH_SSE4_1=OFF`** Disable SSE 4.1 for Blake2 (useful for arm builds). * **`-DWITH_SSE4_1=OFF`** Disable SSE 4.1 for Blake2 (useful for arm builds).
@ -32,7 +32,7 @@ This feature add external dependency to libhwloc (1.10.0+) (except MSVC builds).
## Special build options ## Special build options
* **`-DXMRIG_DEPS=<path>`** path to precompiled dependencies https://github.com/xmrig/xmrig-deps * **`-Dxmlcore_DEPS=<path>`** path to precompiled dependencies https://github.com/xmlcore/xmlcore-deps
* **`-DARM_TARGET=<number>`** override ARM target, possible values `7` (ARMv7) and `8` (ARMv8). * **`-DARM_TARGET=<number>`** override ARM target, possible values `7` (ARMv7) and `8` (ARMv8).
* **`-DUV_INCLUDE_DIR=<path>`** custom path to libuv headers. * **`-DUV_INCLUDE_DIR=<path>`** custom path to libuv headers.
* **`-DUV_LIBRARY=<path>`** custom path to libuv library. * **`-DUV_LIBRARY=<path>`** custom path to libuv library.

View file

@ -28,7 +28,7 @@
<info name="HostName" value="host"/> <info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/> <info name="Architecture" value="x86_64"/>
<info name="hwlocVersion" value="2.0.4"/> <info name="hwlocVersion" value="2.0.4"/>
<info name="ProcessName" value="xmrig"/> <info name="ProcessName" value="xmlcore"/>
<object type="Package" os_index="0" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" nodeset="0x00000003" complete_nodeset="0x00000003" gp_index="2"> <object type="Package" os_index="0" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" nodeset="0x00000003" complete_nodeset="0x00000003" gp_index="2">
<info name="CPUVendor" value="AuthenticAMD"/> <info name="CPUVendor" value="AuthenticAMD"/>
<info name="CPUFamilyNumber" value="21"/> <info name="CPUFamilyNumber" value="21"/>

View file

@ -27,7 +27,7 @@
<info name="HostName" value="host"/> <info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/> <info name="Architecture" value="x86_64"/>
<info name="hwlocVersion" value="1.11.2"/> <info name="hwlocVersion" value="1.11.2"/>
<info name="ProcessName" value="xmrig"/> <info name="ProcessName" value="xmlcore"/>
<distances nbobjs="8" relative_depth="2" latency_base="10.000000"> <distances nbobjs="8" relative_depth="2" latency_base="10.000000">
<latency value="1.000000"/> <latency value="1.000000"/>
<latency value="1.600000"/> <latency value="1.600000"/>

View file

@ -28,7 +28,7 @@
<info name="HostName" value="host"/> <info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/> <info name="Architecture" value="x86_64"/>
<info name="hwlocVersion" value="2.0.4"/> <info name="hwlocVersion" value="2.0.4"/>
<info name="ProcessName" value="xmrig"/> <info name="ProcessName" value="xmlcore"/>
<object type="Package" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" nodeset="0x00000002" complete_nodeset="0x00000003" gp_index="2"> <object type="Package" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" nodeset="0x00000002" complete_nodeset="0x00000003" gp_index="2">
<info name="CPUVendor" value="AuthenticAMD"/> <info name="CPUVendor" value="AuthenticAMD"/>
<info name="CPUFamilyNumber" value="16"/> <info name="CPUFamilyNumber" value="16"/>

View file

@ -4,7 +4,7 @@
<object type="Machine" os_index="0" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" allowed_cpuset="0x0000ffff" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" gp_index="1"> <object type="Machine" os_index="0" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" allowed_cpuset="0x0000ffff" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" gp_index="1">
<info name="Backend" value="Windows"/> <info name="Backend" value="Windows"/>
<info name="hwlocVersion" value="2.0.4"/> <info name="hwlocVersion" value="2.0.4"/>
<info name="ProcessName" value="xmrig.exe"/> <info name="ProcessName" value="xmlcore.exe"/>
<object type="Package" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" nodeset="0x00000001" complete_nodeset="0x00000001" gp_index="2"> <object type="Package" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" nodeset="0x00000001" complete_nodeset="0x00000001" gp_index="2">
<info name="CPUVendor" value="AuthenticAMD"/> <info name="CPUVendor" value="AuthenticAMD"/>
<info name="CPUFamilyNumber" value="23"/> <info name="CPUFamilyNumber" value="23"/>

View file

@ -24,7 +24,7 @@
<info name="HostName" value="host"/> <info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/> <info name="Architecture" value="x86_64"/>
<info name="hwlocVersion" value="2.0.4"/> <info name="hwlocVersion" value="2.0.4"/>
<info name="ProcessName" value="xmrig"/> <info name="ProcessName" value="xmlcore"/>
<object type="Package" os_index="0" cpuset="0xffffffff" complete_cpuset="0xffffffff" nodeset="0x00000003" complete_nodeset="0x00000003" gp_index="2"> <object type="Package" os_index="0" cpuset="0xffffffff" complete_cpuset="0xffffffff" nodeset="0x00000003" complete_nodeset="0x00000003" gp_index="2">
<info name="CPUVendor" value="AuthenticAMD"/> <info name="CPUVendor" value="AuthenticAMD"/>
<info name="CPUFamilyNumber" value="23"/> <info name="CPUFamilyNumber" value="23"/>

View file

@ -28,7 +28,7 @@
<info name="HostName" value="host"/> <info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/> <info name="Architecture" value="x86_64"/>
<info name="hwlocVersion" value="2.0.4"/> <info name="hwlocVersion" value="2.0.4"/>
<info name="ProcessName" value="xmrig"/> <info name="ProcessName" value="xmlcore"/>
<object type="Package" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" nodeset="0x00000001" complete_nodeset="0x00000001" gp_index="2"> <object type="Package" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" nodeset="0x00000001" complete_nodeset="0x00000001" gp_index="2">
<info name="CPUVendor" value="GenuineIntel"/> <info name="CPUVendor" value="GenuineIntel"/>
<info name="CPUFamilyNumber" value="6"/> <info name="CPUFamilyNumber" value="6"/>

View file

@ -28,7 +28,7 @@
<info name="HostName" value="host"/> <info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/> <info name="Architecture" value="x86_64"/>
<info name="hwlocVersion" value="2.0.4"/> <info name="hwlocVersion" value="2.0.4"/>
<info name="ProcessName" value="xmrig"/> <info name="ProcessName" value="xmlcore"/>
<object type="Package" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" nodeset="0x00000001" complete_nodeset="0x00000001" gp_index="2"> <object type="Package" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" nodeset="0x00000001" complete_nodeset="0x00000001" gp_index="2">
<info name="CPUVendor" value="GenuineIntel"/> <info name="CPUVendor" value="GenuineIntel"/>
<info name="CPUFamilyNumber" value="6"/> <info name="CPUFamilyNumber" value="6"/>

View file

@ -24,7 +24,7 @@
<info name="HostName" value="sd-146751"/> <info name="HostName" value="sd-146751"/>
<info name="Architecture" value="x86_64"/> <info name="Architecture" value="x86_64"/>
<info name="hwlocVersion" value="2.0.4"/> <info name="hwlocVersion" value="2.0.4"/>
<info name="ProcessName" value="xmrig"/> <info name="ProcessName" value="xmlcore"/>
<object type="Package" os_index="0" cpuset="0x00000055,0x55555555" complete_cpuset="0x00000055,0x55555555" nodeset="0x00000001" complete_nodeset="0x00000001" gp_index="2"> <object type="Package" os_index="0" cpuset="0x00000055,0x55555555" complete_cpuset="0x00000055,0x55555555" nodeset="0x00000001" complete_nodeset="0x00000001" gp_index="2">
<info name="CPUVendor" value="GenuineIntel"/> <info name="CPUVendor" value="GenuineIntel"/>
<info name="CPUFamilyNumber" value="6"/> <info name="CPUFamilyNumber" value="6"/>

5
main.cpp Normal file
View file

@ -0,0 +1,5 @@
#include <iostream>
int main(int, char**) {
std::cout << "Hello, world!\n";
}

View file

@ -1,5 +1,5 @@
{ {
"name": "xmrig", "name": "xmlcore",
"version": "3.0.0", "version": "3.0.0",
"description": "RandomX, CryptoNight and Argon2 miner", "description": "RandomX, CryptoNight and Argon2 miner",
"main": "index.js", "main": "index.js",
@ -11,13 +11,13 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/xmrig/xmrig.git" "url": "git+https://github.com/xmlcore/xmlcore.git"
}, },
"keywords": [], "keywords": [],
"author": "", "author": "",
"license": "GPLv3", "license": "GPLv3",
"bugs": { "bugs": {
"url": "https://github.com/xmrig/xmrig/issues" "url": "https://github.com/xmlcore/xmlcore/issues"
}, },
"homepage": "https://github.com/xmrig/xmrig#readme" "homepage": "https://github.com/xmlcore/xmlcore#readme"
} }

View file

@ -24,7 +24,7 @@ VS_VERSION_INFO VERSIONINFO
VALUE "FileDescription", APP_DESC VALUE "FileDescription", APP_DESC
VALUE "FileVersion", APP_VERSION VALUE "FileVersion", APP_VERSION
VALUE "LegalCopyright", APP_COPYRIGHT VALUE "LegalCopyright", APP_COPYRIGHT
VALUE "OriginalFilename", "xmrig.exe" VALUE "OriginalFilename", "xmlcore.exe"
VALUE "ProductName", APP_NAME VALUE "ProductName", APP_NAME
VALUE "ProductVersion", APP_VERSION VALUE "ProductVersion", APP_VERSION
END END

View file

@ -1,4 +1,4 @@
@echo off @echo off
cd %~dp0 cd %~dp0
xmrig.exe --bench=10M --submit xmlcore.exe --bench=10M --submit
pause pause

View file

@ -1,4 +1,4 @@
@echo off @echo off
cd %~dp0 cd %~dp0
xmrig.exe --bench=1M --submit xmlcore.exe --bench=1M --submit
pause pause

View file

@ -1,6 +1,6 @@
#!/bin/bash -e #!/bin/bash -e
# https://xmrig.com/docs/miner/hugepages#onegb-huge-pages # https://xmlcore.com/docs/miner/hugepages#onegb-huge-pages
sysctl -w vm.nr_hugepages=$(nproc) sysctl -w vm.nr_hugepages=$(nproc)

View file

@ -24,7 +24,7 @@ function cn()
])); ]));
// fs.writeFileSync('cryptonight_gen.cl', cn); // fs.writeFileSync('cryptonight_gen.cl', cn);
fs.writeFileSync('cryptonight_cl.h', text2h(cn, 'xmrig', 'cryptonight_cl')); fs.writeFileSync('cryptonight_cl.h', text2h(cn, 'xmlcore', 'cryptonight_cl'));
} }
@ -39,7 +39,7 @@ function cn_r()
// fs.writeFileSync(key + '_gen.cl', items[key]); // fs.writeFileSync(key + '_gen.cl', items[key]);
// } // }
fs.writeFileSync('cryptonight_r_cl.h', text2h_bundle('xmrig', items)); fs.writeFileSync('cryptonight_r_cl.h', text2h_bundle('xmlcore', items));
} }
@ -62,7 +62,7 @@ function rx()
rx = opencl_minify(rx); rx = opencl_minify(rx);
//fs.writeFileSync('randomx_gen.cl', rx); //fs.writeFileSync('randomx_gen.cl', rx);
fs.writeFileSync('randomx_cl.h', text2h(rx, 'xmrig', 'randomx_cl')); fs.writeFileSync('randomx_cl.h', text2h(rx, 'xmlcore', 'randomx_cl'));
} }
@ -71,7 +71,7 @@ function astrobwt()
const astrobwt = opencl_minify(addIncludes('astrobwt.cl', [ 'BWT.cl', 'salsa20.cl', 'sha3.cl' ])); const astrobwt = opencl_minify(addIncludes('astrobwt.cl', [ 'BWT.cl', 'salsa20.cl', 'sha3.cl' ]));
// fs.writeFileSync('astrobwt_gen.cl', astrobwt); // fs.writeFileSync('astrobwt_gen.cl', astrobwt);
fs.writeFileSync('astrobwt_cl.h', text2h(astrobwt, 'xmrig', 'astrobwt_cl')); fs.writeFileSync('astrobwt_cl.h', text2h(astrobwt, 'xmlcore', 'astrobwt_cl'));
} }
@ -81,8 +81,8 @@ function kawpow()
const kawpow_dag = opencl_minify(addIncludes('kawpow_dag.cl', [ 'defs.h' ])); const kawpow_dag = opencl_minify(addIncludes('kawpow_dag.cl', [ 'defs.h' ]));
// fs.writeFileSync('kawpow_gen.cl', kawpow); // fs.writeFileSync('kawpow_gen.cl', kawpow);
fs.writeFileSync('kawpow_cl.h', text2h(kawpow, 'xmrig', 'kawpow_cl')); fs.writeFileSync('kawpow_cl.h', text2h(kawpow, 'xmlcore', 'kawpow_cl'));
fs.writeFileSync('kawpow_dag_cl.h', text2h(kawpow_dag, 'xmrig', 'kawpow_dag_cl')); fs.writeFileSync('kawpow_dag_cl.h', text2h(kawpow_dag, 'xmlcore', 'kawpow_dag_cl'));
} }

View file

@ -1,7 +1,7 @@
:: Example batch file for mining Monero at a pool :: Example batch file for mining Monero at a pool
:: ::
:: Format: :: Format:
:: xmrig.exe -o <pool address>:<pool port> -u <pool username/wallet> -p <pool password> :: xmlcore.exe -o <pool address>:<pool port> -u <pool username/wallet> -p <pool password>
:: ::
:: Fields: :: Fields:
:: pool address The host name of the pool stratum or its IP address, for example pool.hashvault.pro :: pool address The host name of the pool stratum or its IP address, for example pool.hashvault.pro
@ -16,5 +16,5 @@
:: Smaller pools also often have smaller fees/payout limits. :: Smaller pools also often have smaller fees/payout limits.
cd %~dp0 cd %~dp0
xmrig.exe -o pool.hashvault.pro:3333 -u 48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD -p x xmlcore.exe -o pool.hashvault.pro:3333 -u 48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD -p x
pause pause

View file

@ -1,7 +1,7 @@
:: Example batch file for mining Monero solo :: Example batch file for mining Monero solo
:: ::
:: Format: :: Format:
:: xmrig.exe -o <node address>:<node port> -a rx/0 -u <wallet address> --daemon :: xmlcore.exe -o <node address>:<node port> -a rx/0 -u <wallet address> --daemon
:: ::
:: Fields: :: Fields:
:: node address The host name of your monerod node or its IP address. It can also be a public node with RPC enabled, for example node.xmr.to :: node address The host name of your monerod node or its IP address. It can also be a public node with RPC enabled, for example node.xmr.to
@ -12,5 +12,5 @@
:: But you will only get a payout when you find a block which can take more than a year for a single low-end PC. :: But you will only get a payout when you find a block which can take more than a year for a single low-end PC.
cd %~dp0 cd %~dp0
xmrig.exe -o node.xmr.to:18081 -a rx/0 -u 48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD --daemon xmlcore.exe -o node.xmr.to:18081 -a rx/0 -u 48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD --daemon
pause pause

10
src/3rdparty/argon2.h vendored
View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh> * Copyright 2018-2019 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2019 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -23,11 +23,11 @@
*/ */
#ifndef XMRIG_3RDPARTY_ARGON2_H #ifndef xmlcore_3RDPARTY_ARGON2_H
#define XMRIG_3RDPARTY_ARGON2_H #define xmlcore_3RDPARTY_ARGON2_H
#include "3rdparty/argon2/include/argon2.h" #include "3rdparty/argon2/include/argon2.h"
#endif /* XMRIG_3RDPARTY_ARGON2_H */ #endif /* xmlcore_3RDPARTY_ARGON2_H */

View file

@ -35,7 +35,7 @@ if (CMAKE_C_COMPILER_ID MATCHES MSVC)
add_feature_impl(xop "" HAVE_XOP) add_feature_impl(xop "" HAVE_XOP)
add_feature_impl(avx2 "/arch:AVX2" HAVE_AVX2) add_feature_impl(avx2 "/arch:AVX2" HAVE_AVX2)
add_feature_impl(avx512f "/arch:AVX512F" HAVE_AVX512F) add_feature_impl(avx512f "/arch:AVX512F" HAVE_AVX512F)
elseif (NOT XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8) elseif (NOT xmlcore_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8)
function(add_feature_impl FEATURE GCC_FLAG DEF) function(add_feature_impl FEATURE GCC_FLAG DEF)
add_library(argon2-${FEATURE} STATIC arch/x86_64/lib/argon2-${FEATURE}.c) add_library(argon2-${FEATURE} STATIC arch/x86_64/lib/argon2-${FEATURE}.c)
target_include_directories(argon2-${FEATURE} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../) target_include_directories(argon2-${FEATURE} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../)

View file

@ -26,11 +26,11 @@ void argon2_get_impl_list(argon2_impl_list *list)
{ {
static const argon2_impl IMPLS[] = { static const argon2_impl IMPLS[] = {
{ "x86_64", NULL, fill_segment_default }, { "x86_64", NULL, fill_segment_default },
{ "SSE2", xmrig_ar2_check_sse2, xmrig_ar2_fill_segment_sse2 }, { "SSE2", xmlcore_ar2_check_sse2, xmlcore_ar2_fill_segment_sse2 },
{ "SSSE3", xmrig_ar2_check_ssse3, xmrig_ar2_fill_segment_ssse3 }, { "SSSE3", xmlcore_ar2_check_ssse3, xmlcore_ar2_fill_segment_ssse3 },
{ "XOP", xmrig_ar2_check_xop, xmrig_ar2_fill_segment_xop }, { "XOP", xmlcore_ar2_check_xop, xmlcore_ar2_fill_segment_xop },
{ "AVX2", xmrig_ar2_check_avx2, xmrig_ar2_fill_segment_avx2 }, { "AVX2", xmlcore_ar2_check_avx2, xmlcore_ar2_fill_segment_avx2 },
{ "AVX-512F", xmrig_ar2_check_avx512f, xmrig_ar2_fill_segment_avx512f }, { "AVX-512F", xmlcore_ar2_check_avx512f, xmlcore_ar2_fill_segment_avx512f },
}; };
list->count = sizeof(IMPLS) / sizeof(IMPLS[0]); list->count = sizeof(IMPLS) / sizeof(IMPLS[0]);

View file

@ -223,7 +223,7 @@ static void next_addresses(block *address_block, block *input_block)
fill_block(zero2_block, address_block, address_block, 0); fill_block(zero2_block, address_block, address_block, 0);
} }
void xmrig_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position) void xmlcore_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position)
{ {
block *ref_block = NULL, *curr_block = NULL; block *ref_block = NULL, *curr_block = NULL;
block address_block, input_block; block address_block, input_block;
@ -307,7 +307,7 @@ void xmrig_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_posit
* lane. * lane.
*/ */
position.index = i; position.index = i;
ref_index = xmrig_ar2_index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, ref_lane == position.lane); ref_index = xmlcore_ar2_index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, ref_lane == position.lane);
/* 2 Creating a new block */ /* 2 Creating a new block */
ref_block = ref_block =
@ -325,11 +325,11 @@ void xmrig_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_posit
extern int cpu_flags_has_avx2(void); extern int cpu_flags_has_avx2(void);
int xmrig_ar2_check_avx2(void) { return cpu_flags_has_avx2(); } int xmlcore_ar2_check_avx2(void) { return cpu_flags_has_avx2(); }
#else #else
void xmrig_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position) {} void xmlcore_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_avx2(void) { return 0; } int xmlcore_ar2_check_avx2(void) { return 0; }
#endif #endif

View file

@ -3,7 +3,7 @@
#include "core.h" #include "core.h"
void xmrig_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position); void xmlcore_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position);
int xmrig_ar2_check_avx2(void); int xmlcore_ar2_check_avx2(void);
#endif // ARGON2_AVX2_H #endif // ARGON2_AVX2_H

View file

@ -208,7 +208,7 @@ static void next_addresses(block *address_block, block *input_block)
fill_block(zero2_block, address_block, address_block, 0); fill_block(zero2_block, address_block, address_block, 0);
} }
void xmrig_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_position_t position) void xmlcore_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_position_t position)
{ {
block *ref_block = NULL, *curr_block = NULL; block *ref_block = NULL, *curr_block = NULL;
block address_block, input_block; block address_block, input_block;
@ -292,7 +292,7 @@ void xmrig_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_po
* lane. * lane.
*/ */
position.index = i; position.index = i;
ref_index = xmrig_ar2_index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, ref_lane == position.lane); ref_index = xmlcore_ar2_index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, ref_lane == position.lane);
/* 2 Creating a new block */ /* 2 Creating a new block */
ref_block = ref_block =
@ -309,11 +309,11 @@ void xmrig_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_po
} }
extern int cpu_flags_has_avx512f(void); extern int cpu_flags_has_avx512f(void);
int xmrig_ar2_check_avx512f(void) { return cpu_flags_has_avx512f(); } int xmlcore_ar2_check_avx512f(void) { return cpu_flags_has_avx512f(); }
#else #else
void xmrig_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_position_t position) {} void xmlcore_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_avx512f(void) { return 0; } int xmlcore_ar2_check_avx512f(void) { return 0; }
#endif #endif

View file

@ -3,7 +3,7 @@
#include "core.h" #include "core.h"
void xmrig_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_position_t position); void xmlcore_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_position_t position);
int xmrig_ar2_check_avx512f(void); int xmlcore_ar2_check_avx512f(void);
#endif // ARGON2_AVX512F_H #endif // ARGON2_AVX512F_H

View file

@ -100,17 +100,17 @@ static __m128i f(__m128i x, __m128i y)
#include "argon2-template-128.h" #include "argon2-template-128.h"
void xmrig_ar2_fill_segment_sse2(const argon2_instance_t *instance, argon2_position_t position) void xmlcore_ar2_fill_segment_sse2(const argon2_instance_t *instance, argon2_position_t position)
{ {
fill_segment_128(instance, position); fill_segment_128(instance, position);
} }
extern int cpu_flags_has_sse2(void); extern int cpu_flags_has_sse2(void);
int xmrig_ar2_check_sse2(void) { return cpu_flags_has_sse2(); } int xmlcore_ar2_check_sse2(void) { return cpu_flags_has_sse2(); }
#else #else
void xmrig_ar2_fill_segment_sse2(const argon2_instance_t *instance, argon2_position_t position) {} void xmlcore_ar2_fill_segment_sse2(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_sse2(void) { return 0; } int xmlcore_ar2_check_sse2(void) { return 0; }
#endif #endif

View file

@ -3,7 +3,7 @@
#include "core.h" #include "core.h"
void xmrig_ar2_fill_segment_sse2(const argon2_instance_t *instance, argon2_position_t position); void xmlcore_ar2_fill_segment_sse2(const argon2_instance_t *instance, argon2_position_t position);
int xmrig_ar2_check_sse2(void); int xmlcore_ar2_check_sse2(void);
#endif // ARGON2_SSE2_H #endif // ARGON2_SSE2_H

View file

@ -112,17 +112,17 @@ static __m128i f(__m128i x, __m128i y)
#include "argon2-template-128.h" #include "argon2-template-128.h"
void xmrig_ar2_fill_segment_ssse3(const argon2_instance_t *instance, argon2_position_t position) void xmlcore_ar2_fill_segment_ssse3(const argon2_instance_t *instance, argon2_position_t position)
{ {
fill_segment_128(instance, position); fill_segment_128(instance, position);
} }
extern int cpu_flags_has_ssse3(void); extern int cpu_flags_has_ssse3(void);
int xmrig_ar2_check_ssse3(void) { return cpu_flags_has_ssse3(); } int xmlcore_ar2_check_ssse3(void) { return cpu_flags_has_ssse3(); }
#else #else
void xmrig_ar2_fill_segment_ssse3(const argon2_instance_t *instance, argon2_position_t position) {} void xmlcore_ar2_fill_segment_ssse3(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_ssse3(void) { return 0; } int xmlcore_ar2_check_ssse3(void) { return 0; }
#endif #endif

View file

@ -3,7 +3,7 @@
#include "core.h" #include "core.h"
void xmrig_ar2_fill_segment_ssse3(const argon2_instance_t *instance, argon2_position_t position); void xmlcore_ar2_fill_segment_ssse3(const argon2_instance_t *instance, argon2_position_t position);
int xmrig_ar2_check_ssse3(void); int xmlcore_ar2_check_ssse3(void);
#endif // ARGON2_SSSE3_H #endif // ARGON2_SSSE3_H

View file

@ -150,7 +150,7 @@ static void fill_segment_128(const argon2_instance_t *instance,
* lane. * lane.
*/ */
position.index = i; position.index = i;
ref_index = xmrig_ar2_index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, ref_lane == position.lane); ref_index = xmlcore_ar2_index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, ref_lane == position.lane);
/* 2 Creating a new block */ /* 2 Creating a new block */
ref_block = ref_block =

View file

@ -100,17 +100,17 @@ static __m128i f(__m128i x, __m128i y)
#include "argon2-template-128.h" #include "argon2-template-128.h"
void xmrig_ar2_fill_segment_xop(const argon2_instance_t *instance, argon2_position_t position) void xmlcore_ar2_fill_segment_xop(const argon2_instance_t *instance, argon2_position_t position)
{ {
fill_segment_128(instance, position); fill_segment_128(instance, position);
} }
extern int cpu_flags_has_xop(void); extern int cpu_flags_has_xop(void);
int xmrig_ar2_check_xop(void) { return cpu_flags_has_xop(); } int xmlcore_ar2_check_xop(void) { return cpu_flags_has_xop(); }
#else #else
void xmrig_ar2_fill_segment_xop(const argon2_instance_t *instance, argon2_position_t position) {} void xmlcore_ar2_fill_segment_xop(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_xop(void) { return 0; } int xmlcore_ar2_check_xop(void) { return 0; }
#endif #endif

View file

@ -3,7 +3,7 @@
#include "core.h" #include "core.h"
void xmrig_ar2_fill_segment_xop(const argon2_instance_t *instance, argon2_position_t position); void xmlcore_ar2_fill_segment_xop(const argon2_instance_t *instance, argon2_position_t position);
int xmrig_ar2_check_xop(void); int xmlcore_ar2_check_xop(void);
#endif // ARGON2_XOP_H #endif // ARGON2_XOP_H

View file

@ -174,7 +174,7 @@ static void fill_segment_64(const argon2_instance_t *instance,
* lane. * lane.
*/ */
position.index = i; position.index = i;
ref_index = xmrig_ar2_index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, ref_lane == position.lane); ref_index = xmlcore_ar2_index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, ref_lane == position.lane);
/* 2 Creating a new block */ /* 2 Creating a new block */
ref_block = ref_block =

View file

@ -57,7 +57,7 @@ size_t argon2_memory_size(uint32_t m_cost, uint32_t parallelism) {
int argon2_ctx_mem(argon2_context *context, argon2_type type, void *memory, int argon2_ctx_mem(argon2_context *context, argon2_type type, void *memory,
size_t memory_size) { size_t memory_size) {
/* 1. Validate all inputs */ /* 1. Validate all inputs */
int result = xmrig_ar2_validate_inputs(context); int result = xmlcore_ar2_validate_inputs(context);
uint32_t memory_blocks, segment_length; uint32_t memory_blocks, segment_length;
argon2_instance_t instance; argon2_instance_t instance;
@ -98,20 +98,20 @@ int argon2_ctx_mem(argon2_context *context, argon2_type type, void *memory,
/* 3. Initialization: Hashing inputs, allocating memory, filling first /* 3. Initialization: Hashing inputs, allocating memory, filling first
* blocks * blocks
*/ */
result = xmrig_ar2_initialize(&instance, context); result = xmlcore_ar2_initialize(&instance, context);
if (ARGON2_OK != result) { if (ARGON2_OK != result) {
return result; return result;
} }
/* 4. Filling memory */ /* 4. Filling memory */
result = xmrig_ar2_fill_memory_blocks(&instance); result = xmlcore_ar2_fill_memory_blocks(&instance);
if (ARGON2_OK != result) { if (ARGON2_OK != result) {
return result; return result;
} }
/* 5. Finalization */ /* 5. Finalization */
xmrig_ar2_finalize(context, &instance); xmlcore_ar2_finalize(context, &instance);
return ARGON2_OK; return ARGON2_OK;
} }
@ -174,7 +174,7 @@ int argon2_hash(const uint32_t t_cost, const uint32_t m_cost,
result = argon2_ctx(&context, type); result = argon2_ctx(&context, type);
if (result != ARGON2_OK) { if (result != ARGON2_OK) {
xmrig_ar2_clear_internal_memory(out, hashlen); xmlcore_ar2_clear_internal_memory(out, hashlen);
free(out); free(out);
return result; return result;
} }
@ -187,13 +187,13 @@ int argon2_hash(const uint32_t t_cost, const uint32_t m_cost,
/* if encoding requested, write it */ /* if encoding requested, write it */
if (encoded && encodedlen) { if (encoded && encodedlen) {
if (encode_string(encoded, encodedlen, &context, type) != ARGON2_OK) { if (encode_string(encoded, encodedlen, &context, type) != ARGON2_OK) {
xmrig_ar2_clear_internal_memory(out, hashlen); /* wipe buffers if error */ xmlcore_ar2_clear_internal_memory(out, hashlen); /* wipe buffers if error */
xmrig_ar2_clear_internal_memory(encoded, encodedlen); xmlcore_ar2_clear_internal_memory(encoded, encodedlen);
free(out); free(out);
return ARGON2_ENCODING_FAIL; return ARGON2_ENCODING_FAIL;
} }
} }
xmrig_ar2_clear_internal_memory(out, hashlen); xmlcore_ar2_clear_internal_memory(out, hashlen);
free(out); free(out);
return ARGON2_OK; return ARGON2_OK;

View file

@ -128,14 +128,14 @@ static void blake2b_init_state(blake2b_state *S)
S->buflen = 0; S->buflen = 0;
} }
void xmrig_ar2_blake2b_init(blake2b_state *S, size_t outlen) void xmlcore_ar2_blake2b_init(blake2b_state *S, size_t outlen)
{ {
blake2b_init_state(S); blake2b_init_state(S);
/* XOR initial state with param block: */ /* XOR initial state with param block: */
S->h[0] ^= (uint64_t)outlen | (UINT64_C(1) << 16) | (UINT64_C(1) << 24); S->h[0] ^= (uint64_t)outlen | (UINT64_C(1) << 16) | (UINT64_C(1) << 24);
} }
void xmrig_ar2_blake2b_update(blake2b_state *S, const void *in, size_t inlen) void xmlcore_ar2_blake2b_update(blake2b_state *S, const void *in, size_t inlen)
{ {
const uint8_t *pin = (const uint8_t *)in; const uint8_t *pin = (const uint8_t *)in;
@ -160,7 +160,7 @@ void xmrig_ar2_blake2b_update(blake2b_state *S, const void *in, size_t inlen)
S->buflen += inlen; S->buflen += inlen;
} }
void xmrig_ar2_blake2b_final(blake2b_state *S, void *out, size_t outlen) void xmlcore_ar2_blake2b_final(blake2b_state *S, void *out, size_t outlen)
{ {
uint8_t buffer[BLAKE2B_OUTBYTES] = {0}; uint8_t buffer[BLAKE2B_OUTBYTES] = {0};
unsigned int i; unsigned int i;
@ -174,12 +174,12 @@ void xmrig_ar2_blake2b_final(blake2b_state *S, void *out, size_t outlen)
} }
memcpy(out, buffer, outlen); memcpy(out, buffer, outlen);
xmrig_ar2_clear_internal_memory(buffer, sizeof(buffer)); xmlcore_ar2_clear_internal_memory(buffer, sizeof(buffer));
xmrig_ar2_clear_internal_memory(S->buf, sizeof(S->buf)); xmlcore_ar2_clear_internal_memory(S->buf, sizeof(S->buf));
xmrig_ar2_clear_internal_memory(S->h, sizeof(S->h)); xmlcore_ar2_clear_internal_memory(S->h, sizeof(S->h));
} }
void xmrig_ar2_blake2b_long(void *out, size_t outlen, const void *in, size_t inlen) void xmlcore_ar2_blake2b_long(void *out, size_t outlen, const void *in, size_t inlen)
{ {
uint8_t *pout = (uint8_t *)out; uint8_t *pout = (uint8_t *)out;
blake2b_state blake_state; blake2b_state blake_state;
@ -187,39 +187,39 @@ void xmrig_ar2_blake2b_long(void *out, size_t outlen, const void *in, size_t inl
store32(outlen_bytes, (uint32_t)outlen); store32(outlen_bytes, (uint32_t)outlen);
if (outlen <= BLAKE2B_OUTBYTES) { if (outlen <= BLAKE2B_OUTBYTES) {
xmrig_ar2_blake2b_init(&blake_state, outlen); xmlcore_ar2_blake2b_init(&blake_state, outlen);
xmrig_ar2_blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes)); xmlcore_ar2_blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes));
xmrig_ar2_blake2b_update(&blake_state, in, inlen); xmlcore_ar2_blake2b_update(&blake_state, in, inlen);
xmrig_ar2_blake2b_final(&blake_state, pout, outlen); xmlcore_ar2_blake2b_final(&blake_state, pout, outlen);
} else { } else {
uint32_t toproduce; uint32_t toproduce;
uint8_t out_buffer[BLAKE2B_OUTBYTES]; uint8_t out_buffer[BLAKE2B_OUTBYTES];
xmrig_ar2_blake2b_init(&blake_state, BLAKE2B_OUTBYTES); xmlcore_ar2_blake2b_init(&blake_state, BLAKE2B_OUTBYTES);
xmrig_ar2_blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes)); xmlcore_ar2_blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes));
xmrig_ar2_blake2b_update(&blake_state, in, inlen); xmlcore_ar2_blake2b_update(&blake_state, in, inlen);
xmrig_ar2_blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES); xmlcore_ar2_blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
memcpy(pout, out_buffer, BLAKE2B_OUTBYTES / 2); memcpy(pout, out_buffer, BLAKE2B_OUTBYTES / 2);
pout += BLAKE2B_OUTBYTES / 2; pout += BLAKE2B_OUTBYTES / 2;
toproduce = (uint32_t)outlen - BLAKE2B_OUTBYTES / 2; toproduce = (uint32_t)outlen - BLAKE2B_OUTBYTES / 2;
while (toproduce > BLAKE2B_OUTBYTES) { while (toproduce > BLAKE2B_OUTBYTES) {
xmrig_ar2_blake2b_init(&blake_state, BLAKE2B_OUTBYTES); xmlcore_ar2_blake2b_init(&blake_state, BLAKE2B_OUTBYTES);
xmrig_ar2_blake2b_update(&blake_state, out_buffer, BLAKE2B_OUTBYTES); xmlcore_ar2_blake2b_update(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
xmrig_ar2_blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES); xmlcore_ar2_blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
memcpy(pout, out_buffer, BLAKE2B_OUTBYTES / 2); memcpy(pout, out_buffer, BLAKE2B_OUTBYTES / 2);
pout += BLAKE2B_OUTBYTES / 2; pout += BLAKE2B_OUTBYTES / 2;
toproduce -= BLAKE2B_OUTBYTES / 2; toproduce -= BLAKE2B_OUTBYTES / 2;
} }
xmrig_ar2_blake2b_init(&blake_state, toproduce); xmlcore_ar2_blake2b_init(&blake_state, toproduce);
xmrig_ar2_blake2b_update(&blake_state, out_buffer, BLAKE2B_OUTBYTES); xmlcore_ar2_blake2b_update(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
xmrig_ar2_blake2b_final(&blake_state, out_buffer, toproduce); xmlcore_ar2_blake2b_final(&blake_state, out_buffer, toproduce);
memcpy(pout, out_buffer, toproduce); memcpy(pout, out_buffer, toproduce);
xmrig_ar2_clear_internal_memory(out_buffer, sizeof(out_buffer)); xmlcore_ar2_clear_internal_memory(out_buffer, sizeof(out_buffer));
} }
} }

View file

@ -20,11 +20,11 @@ typedef struct __blake2b_state {
} blake2b_state; } blake2b_state;
/* Streaming API */ /* Streaming API */
void xmrig_ar2_blake2b_init(blake2b_state *S, size_t outlen); void xmlcore_ar2_blake2b_init(blake2b_state *S, size_t outlen);
void xmrig_ar2_blake2b_update(blake2b_state *S, const void *in, size_t inlen); void xmlcore_ar2_blake2b_update(blake2b_state *S, const void *in, size_t inlen);
void xmrig_ar2_blake2b_final(blake2b_state *S, void *out, size_t outlen); void xmlcore_ar2_blake2b_final(blake2b_state *S, void *out, size_t outlen);
void xmrig_ar2_blake2b_long(void *out, size_t outlen, const void *in, size_t inlen); void xmlcore_ar2_blake2b_long(void *out, size_t outlen, const void *in, size_t inlen);
#endif // ARGON2_BLAKE2_H #endif // ARGON2_BLAKE2_H

View file

@ -77,7 +77,7 @@ static void store_block(void *output, const block *src) {
/***************Memory functions*****************/ /***************Memory functions*****************/
int xmrig_ar2_allocate_memory(const argon2_context *context, argon2_instance_t *instance) { int xmlcore_ar2_allocate_memory(const argon2_context *context, argon2_instance_t *instance) {
size_t blocks = instance->memory_blocks; size_t blocks = instance->memory_blocks;
size_t memory_size = blocks * ARGON2_BLOCK_SIZE; size_t memory_size = blocks * ARGON2_BLOCK_SIZE;
@ -106,10 +106,10 @@ int xmrig_ar2_allocate_memory(const argon2_context *context, argon2_instance_t *
return ARGON2_OK; return ARGON2_OK;
} }
void xmrig_ar2_free_memory(const argon2_context *context, const argon2_instance_t *instance) { void xmlcore_ar2_free_memory(const argon2_context *context, const argon2_instance_t *instance) {
size_t memory_size = instance->memory_blocks * ARGON2_BLOCK_SIZE; size_t memory_size = instance->memory_blocks * ARGON2_BLOCK_SIZE;
xmrig_ar2_clear_internal_memory(instance->memory, memory_size); xmlcore_ar2_clear_internal_memory(instance->memory, memory_size);
if (instance->keep_memory) { if (instance->keep_memory) {
/* user-supplied memory -- do not free */ /* user-supplied memory -- do not free */
@ -123,7 +123,7 @@ void xmrig_ar2_free_memory(const argon2_context *context, const argon2_instance_
} }
} }
void NOT_OPTIMIZED xmrig_ar2_secure_wipe_memory(void *v, size_t n) { void NOT_OPTIMIZED xmlcore_ar2_secure_wipe_memory(void *v, size_t n) {
#if defined(_MSC_VER) && VC_GE_2005(_MSC_VER) #if defined(_MSC_VER) && VC_GE_2005(_MSC_VER)
SecureZeroMemory(v, n); SecureZeroMemory(v, n);
#elif defined memset_s #elif defined memset_s
@ -138,13 +138,13 @@ void NOT_OPTIMIZED xmrig_ar2_secure_wipe_memory(void *v, size_t n) {
/* Memory clear flag defaults to true. */ /* Memory clear flag defaults to true. */
int FLAG_clear_internal_memory = 0; int FLAG_clear_internal_memory = 0;
void xmrig_ar2_clear_internal_memory(void *v, size_t n) { void xmlcore_ar2_clear_internal_memory(void *v, size_t n) {
if (FLAG_clear_internal_memory && v) { if (FLAG_clear_internal_memory && v) {
xmrig_ar2_secure_wipe_memory(v, n); xmlcore_ar2_secure_wipe_memory(v, n);
} }
} }
void xmrig_ar2_finalize(const argon2_context *context, argon2_instance_t *instance) { void xmlcore_ar2_finalize(const argon2_context *context, argon2_instance_t *instance) {
if (context != NULL && instance != NULL && context->out != NULL) { if (context != NULL && instance != NULL && context->out != NULL) {
block blockhash; block blockhash;
uint32_t l; uint32_t l;
@ -162,21 +162,21 @@ void xmrig_ar2_finalize(const argon2_context *context, argon2_instance_t *instan
{ {
uint8_t blockhash_bytes[ARGON2_BLOCK_SIZE]; uint8_t blockhash_bytes[ARGON2_BLOCK_SIZE];
store_block(blockhash_bytes, &blockhash); store_block(blockhash_bytes, &blockhash);
xmrig_ar2_blake2b_long(context->out, context->outlen, blockhash_bytes, ARGON2_BLOCK_SIZE); xmlcore_ar2_blake2b_long(context->out, context->outlen, blockhash_bytes, ARGON2_BLOCK_SIZE);
/* clear blockhash and blockhash_bytes */ /* clear blockhash and blockhash_bytes */
xmrig_ar2_clear_internal_memory(blockhash.v, ARGON2_BLOCK_SIZE); xmlcore_ar2_clear_internal_memory(blockhash.v, ARGON2_BLOCK_SIZE);
xmrig_ar2_clear_internal_memory(blockhash_bytes, ARGON2_BLOCK_SIZE); xmlcore_ar2_clear_internal_memory(blockhash_bytes, ARGON2_BLOCK_SIZE);
} }
if (instance->print_internals) { if (instance->print_internals) {
print_tag(context->out, context->outlen); print_tag(context->out, context->outlen);
} }
xmrig_ar2_free_memory(context, instance); xmlcore_ar2_free_memory(context, instance);
} }
} }
uint32_t xmrig_ar2_index_alpha(const argon2_instance_t *instance, const argon2_position_t *position, uint32_t pseudo_rand, int same_lane) { uint32_t xmlcore_ar2_index_alpha(const argon2_instance_t *instance, const argon2_position_t *position, uint32_t pseudo_rand, int same_lane) {
/* /*
* Pass 0: * Pass 0:
* This lane : all already finished segments plus already constructed * This lane : all already finished segments plus already constructed
@ -252,7 +252,7 @@ static int fill_memory_blocks_st(argon2_instance_t *instance) {
for (s = 0; s < ARGON2_SYNC_POINTS; ++s) { for (s = 0; s < ARGON2_SYNC_POINTS; ++s) {
for (l = 0; l < instance->lanes; ++l) { for (l = 0; l < instance->lanes; ++l) {
argon2_position_t position = { r, l, (uint8_t)s, 0 }; argon2_position_t position = { r, l, (uint8_t)s, 0 };
xmrig_ar2_fill_segment(instance, position); xmlcore_ar2_fill_segment(instance, position);
} }
} }
@ -263,7 +263,7 @@ static int fill_memory_blocks_st(argon2_instance_t *instance) {
return ARGON2_OK; return ARGON2_OK;
} }
int xmrig_ar2_fill_memory_blocks(argon2_instance_t *instance) { int xmlcore_ar2_fill_memory_blocks(argon2_instance_t *instance) {
if (instance == NULL || instance->lanes == 0) { if (instance == NULL || instance->lanes == 0) {
return ARGON2_INCORRECT_PARAMETER; return ARGON2_INCORRECT_PARAMETER;
} }
@ -271,7 +271,7 @@ int xmrig_ar2_fill_memory_blocks(argon2_instance_t *instance) {
return fill_memory_blocks_st(instance); return fill_memory_blocks_st(instance);
} }
int xmrig_ar2_validate_inputs(const argon2_context *context) { int xmlcore_ar2_validate_inputs(const argon2_context *context) {
if (NULL == context) { if (NULL == context) {
return ARGON2_INCORRECT_PARAMETER; return ARGON2_INCORRECT_PARAMETER;
} }
@ -398,7 +398,7 @@ int xmrig_ar2_validate_inputs(const argon2_context *context) {
return ARGON2_OK; return ARGON2_OK;
} }
void xmrig_ar2_fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance) { void xmlcore_ar2_fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance) {
uint32_t l; uint32_t l;
/* Make the first and second block in each lane as G(H0||0||i) or /* Make the first and second block in each lane as G(H0||0||i) or
G(H0||1||i) */ G(H0||1||i) */
@ -407,17 +407,17 @@ void xmrig_ar2_fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *in
store32(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 0); store32(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 0);
store32(blockhash + ARGON2_PREHASH_DIGEST_LENGTH + 4, l); store32(blockhash + ARGON2_PREHASH_DIGEST_LENGTH + 4, l);
xmrig_ar2_blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash, ARGON2_PREHASH_SEED_LENGTH); xmlcore_ar2_blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash, ARGON2_PREHASH_SEED_LENGTH);
load_block(&instance->memory[l * instance->lane_length + 0], blockhash_bytes); load_block(&instance->memory[l * instance->lane_length + 0], blockhash_bytes);
store32(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 1); store32(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 1);
xmrig_ar2_blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash, ARGON2_PREHASH_SEED_LENGTH); xmlcore_ar2_blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash, ARGON2_PREHASH_SEED_LENGTH);
load_block(&instance->memory[l * instance->lane_length + 1], blockhash_bytes); load_block(&instance->memory[l * instance->lane_length + 1], blockhash_bytes);
} }
xmrig_ar2_clear_internal_memory(blockhash_bytes, ARGON2_BLOCK_SIZE); xmlcore_ar2_clear_internal_memory(blockhash_bytes, ARGON2_BLOCK_SIZE);
} }
void xmrig_ar2_initial_hash(uint8_t *blockhash, argon2_context *context, void xmlcore_ar2_initial_hash(uint8_t *blockhash, argon2_context *context,
argon2_type type) { argon2_type type) {
blake2b_state BlakeHash; blake2b_state BlakeHash;
uint8_t value[sizeof(uint32_t)]; uint8_t value[sizeof(uint32_t)];
@ -426,70 +426,70 @@ void xmrig_ar2_initial_hash(uint8_t *blockhash, argon2_context *context,
return; return;
} }
xmrig_ar2_blake2b_init(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH); xmlcore_ar2_blake2b_init(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH);
store32(&value, context->lanes); store32(&value, context->lanes);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
store32(&value, context->outlen); store32(&value, context->outlen);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
store32(&value, context->m_cost); store32(&value, context->m_cost);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
store32(&value, context->t_cost); store32(&value, context->t_cost);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
store32(&value, context->version); store32(&value, context->version);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
store32(&value, (uint32_t)type); store32(&value, (uint32_t)type);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
store32(&value, context->pwdlen); store32(&value, context->pwdlen);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
if (context->pwd != NULL) { if (context->pwd != NULL) {
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->pwd, xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->pwd,
context->pwdlen); context->pwdlen);
if (context->flags & ARGON2_FLAG_CLEAR_PASSWORD) { if (context->flags & ARGON2_FLAG_CLEAR_PASSWORD) {
xmrig_ar2_secure_wipe_memory(context->pwd, context->pwdlen); xmlcore_ar2_secure_wipe_memory(context->pwd, context->pwdlen);
context->pwdlen = 0; context->pwdlen = 0;
} }
} }
store32(&value, context->saltlen); store32(&value, context->saltlen);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
if (context->salt != NULL) { if (context->salt != NULL) {
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->salt, xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->salt,
context->saltlen); context->saltlen);
} }
store32(&value, context->secretlen); store32(&value, context->secretlen);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
if (context->secret != NULL) { if (context->secret != NULL) {
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->secret, context->secretlen); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->secret, context->secretlen);
if (context->flags & ARGON2_FLAG_CLEAR_SECRET) { if (context->flags & ARGON2_FLAG_CLEAR_SECRET) {
xmrig_ar2_secure_wipe_memory(context->secret, context->secretlen); xmlcore_ar2_secure_wipe_memory(context->secret, context->secretlen);
context->secretlen = 0; context->secretlen = 0;
} }
} }
store32(&value, context->adlen); store32(&value, context->adlen);
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
if (context->ad != NULL) { if (context->ad != NULL) {
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->ad, context->adlen); xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->ad, context->adlen);
} }
xmrig_ar2_blake2b_final(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH); xmlcore_ar2_blake2b_final(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH);
} }
int xmrig_ar2_initialize(argon2_instance_t *instance, argon2_context *context) { int xmlcore_ar2_initialize(argon2_instance_t *instance, argon2_context *context) {
uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH];
int result = ARGON2_OK; int result = ARGON2_OK;
@ -499,7 +499,7 @@ int xmrig_ar2_initialize(argon2_instance_t *instance, argon2_context *context) {
/* 1. Memory allocation */ /* 1. Memory allocation */
result = xmrig_ar2_allocate_memory(context, instance); result = xmlcore_ar2_allocate_memory(context, instance);
if (result != ARGON2_OK) { if (result != ARGON2_OK) {
return result; return result;
} }
@ -508,9 +508,9 @@ int xmrig_ar2_initialize(argon2_instance_t *instance, argon2_context *context) {
/* H_0 + 8 extra bytes to produce the first blocks */ /* H_0 + 8 extra bytes to produce the first blocks */
/* uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; */ /* uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; */
/* Hashing all inputs */ /* Hashing all inputs */
xmrig_ar2_initial_hash(blockhash, context, instance->type); xmlcore_ar2_initial_hash(blockhash, context, instance->type);
/* Zeroing 8 extra bytes */ /* Zeroing 8 extra bytes */
xmrig_ar2_clear_internal_memory(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, ARGON2_PREHASH_SEED_LENGTH - ARGON2_PREHASH_DIGEST_LENGTH); xmlcore_ar2_clear_internal_memory(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, ARGON2_PREHASH_SEED_LENGTH - ARGON2_PREHASH_DIGEST_LENGTH);
if (instance->print_internals) { if (instance->print_internals) {
initial_kat(blockhash, context, instance->type); initial_kat(blockhash, context, instance->type);
@ -518,9 +518,9 @@ int xmrig_ar2_initialize(argon2_instance_t *instance, argon2_context *context) {
/* 3. Creating first blocks, we always have at least two blocks in a slice /* 3. Creating first blocks, we always have at least two blocks in a slice
*/ */
xmrig_ar2_fill_first_blocks(blockhash, instance); xmlcore_ar2_fill_first_blocks(blockhash, instance);
/* Clearing the hash */ /* Clearing the hash */
xmrig_ar2_clear_internal_memory(blockhash, ARGON2_PREHASH_SEED_LENGTH); xmlcore_ar2_clear_internal_memory(blockhash, ARGON2_PREHASH_SEED_LENGTH);
return ARGON2_OK; return ARGON2_OK;
} }

View file

@ -110,7 +110,7 @@ typedef struct Argon2_thread_data {
* @param instance the Argon2 instance * @param instance the Argon2 instance
* @return ARGON2_OK if memory is allocated successfully * @return ARGON2_OK if memory is allocated successfully
*/ */
int xmrig_ar2_allocate_memory(const argon2_context *context, argon2_instance_t *instance); int xmlcore_ar2_allocate_memory(const argon2_context *context, argon2_instance_t *instance);
/* /*
* Frees memory at the given pointer, uses the appropriate deallocator as * Frees memory at the given pointer, uses the appropriate deallocator as
@ -118,21 +118,21 @@ int xmrig_ar2_allocate_memory(const argon2_context *context, argon2_instance_t *
* @param context argon2_context which specifies the deallocator * @param context argon2_context which specifies the deallocator
* @param instance the Argon2 instance * @param instance the Argon2 instance
*/ */
void xmrig_ar2_free_memory(const argon2_context *context, const argon2_instance_t *instance); void xmlcore_ar2_free_memory(const argon2_context *context, const argon2_instance_t *instance);
/* Function that securely cleans the memory. This ignores any flags set /* Function that securely cleans the memory. This ignores any flags set
* regarding clearing memory. Usually one just calls clear_internal_memory. * regarding clearing memory. Usually one just calls clear_internal_memory.
* @param mem Pointer to the memory * @param mem Pointer to the memory
* @param s Memory size in bytes * @param s Memory size in bytes
*/ */
void xmrig_ar2_secure_wipe_memory(void *v, size_t n); void xmlcore_ar2_secure_wipe_memory(void *v, size_t n);
/* Function that securely clears the memory if FLAG_clear_internal_memory is /* Function that securely clears the memory if FLAG_clear_internal_memory is
* set. If the flag isn't set, this function does nothing. * set. If the flag isn't set, this function does nothing.
* @param mem Pointer to the memory * @param mem Pointer to the memory
* @param s Memory size in bytes * @param s Memory size in bytes
*/ */
ARGON2_PUBLIC void xmrig_ar2_clear_internal_memory(void *v, size_t n); ARGON2_PUBLIC void xmlcore_ar2_clear_internal_memory(void *v, size_t n);
/* /*
* Computes absolute position of reference block in the lane following a skewed * Computes absolute position of reference block in the lane following a skewed
@ -144,7 +144,7 @@ ARGON2_PUBLIC void xmrig_ar2_clear_internal_memory(void *v, size_t n);
* If so we can reference the current segment * If so we can reference the current segment
* @pre All pointers must be valid * @pre All pointers must be valid
*/ */
uint32_t xmrig_ar2_index_alpha(const argon2_instance_t *instance, const argon2_position_t *position, uint32_t pseudo_rand, int same_lane); uint32_t xmlcore_ar2_index_alpha(const argon2_instance_t *instance, const argon2_position_t *position, uint32_t pseudo_rand, int same_lane);
/* /*
* Function that validates all inputs against predefined restrictions and return * Function that validates all inputs against predefined restrictions and return
@ -153,7 +153,7 @@ uint32_t xmrig_ar2_index_alpha(const argon2_instance_t *instance, const argon2_p
* @return ARGON2_OK if everything is all right, otherwise one of error codes * @return ARGON2_OK if everything is all right, otherwise one of error codes
* (all defined in <argon2.h> * (all defined in <argon2.h>
*/ */
int xmrig_ar2_validate_inputs(const argon2_context *context); int xmlcore_ar2_validate_inputs(const argon2_context *context);
/* /*
* Hashes all the inputs into @a blockhash[PREHASH_DIGEST_LENGTH], clears * Hashes all the inputs into @a blockhash[PREHASH_DIGEST_LENGTH], clears
@ -165,7 +165,7 @@ int xmrig_ar2_validate_inputs(const argon2_context *context);
* @pre @a blockhash must have at least @a PREHASH_DIGEST_LENGTH bytes * @pre @a blockhash must have at least @a PREHASH_DIGEST_LENGTH bytes
* allocated * allocated
*/ */
void xmrig_ar2_initial_hash(uint8_t *blockhash, argon2_context *context, argon2_type type); void xmlcore_ar2_initial_hash(uint8_t *blockhash, argon2_context *context, argon2_type type);
/* /*
* Function creates first 2 blocks per lane * Function creates first 2 blocks per lane
@ -173,7 +173,7 @@ void xmrig_ar2_initial_hash(uint8_t *blockhash, argon2_context *context, argon2_
* @param blockhash Pointer to the pre-hashing digest * @param blockhash Pointer to the pre-hashing digest
* @pre blockhash must point to @a PREHASH_SEED_LENGTH allocated values * @pre blockhash must point to @a PREHASH_SEED_LENGTH allocated values
*/ */
void xmrig_ar2_fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance); void xmlcore_ar2_fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance);
/* /*
* Function allocates memory, hashes the inputs with Blake, and creates first * Function allocates memory, hashes the inputs with Blake, and creates first
@ -185,7 +185,7 @@ void xmrig_ar2_fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *in
* @return Zero if successful, -1 if memory failed to allocate. @context->state * @return Zero if successful, -1 if memory failed to allocate. @context->state
* will be modified if successful. * will be modified if successful.
*/ */
int xmrig_ar2_initialize(argon2_instance_t *instance, argon2_context *context); int xmlcore_ar2_initialize(argon2_instance_t *instance, argon2_context *context);
/* /*
* XORing the last block of each lane, hashing it, making the tag. Deallocates * XORing the last block of each lane, hashing it, making the tag. Deallocates
@ -198,7 +198,7 @@ int xmrig_ar2_initialize(argon2_instance_t *instance, argon2_context *context);
* @pre if context->free_cbk is not NULL, it should point to a function that * @pre if context->free_cbk is not NULL, it should point to a function that
* deallocates memory * deallocates memory
*/ */
void xmrig_ar2_finalize(const argon2_context *context, argon2_instance_t *instance); void xmlcore_ar2_finalize(const argon2_context *context, argon2_instance_t *instance);
/* /*
* Function that fills the segment using previous segments also from other * Function that fills the segment using previous segments also from other
@ -207,7 +207,7 @@ void xmrig_ar2_finalize(const argon2_context *context, argon2_instance_t *instan
* @param position Current position * @param position Current position
* @pre all block pointers must be valid * @pre all block pointers must be valid
*/ */
void xmrig_ar2_fill_segment(const argon2_instance_t *instance, argon2_position_t position); void xmlcore_ar2_fill_segment(const argon2_instance_t *instance, argon2_position_t position);
/* /*
* Function that fills the entire memory t_cost times based on the first two * Function that fills the entire memory t_cost times based on the first two
@ -215,6 +215,6 @@ void xmrig_ar2_fill_segment(const argon2_instance_t *instance, argon2_position_t
* @param instance Pointer to the current instance * @param instance Pointer to the current instance
* @return ARGON2_OK if successful, @context->state * @return ARGON2_OK if successful, @context->state
*/ */
int xmrig_ar2_fill_memory_blocks(argon2_instance_t *instance); int xmlcore_ar2_fill_memory_blocks(argon2_instance_t *instance);
#endif #endif

View file

@ -323,7 +323,7 @@ int decode_string(argon2_context *ctx, const char *str, argon2_type type) {
ctx->flags = ARGON2_DEFAULT_FLAGS; ctx->flags = ARGON2_DEFAULT_FLAGS;
/* On return, must have valid context */ /* On return, must have valid context */
validation_result = xmrig_ar2_validate_inputs(ctx); validation_result = xmlcore_ar2_validate_inputs(ctx);
if (validation_result != ARGON2_OK) { if (validation_result != ARGON2_OK) {
return validation_result; return validation_result;
} }
@ -371,7 +371,7 @@ int encode_string(char *dst, size_t dst_len, argon2_context *ctx,
} while ((void)0, 0) } while ((void)0, 0)
const char* type_string = argon2_type2string(type, 0); const char* type_string = argon2_type2string(type, 0);
int validation_result = xmrig_ar2_validate_inputs(ctx); int validation_result = xmlcore_ar2_validate_inputs(ctx);
if (!type_string) { if (!type_string) {
return ARGON2_ENCODING_FAIL; return ARGON2_ENCODING_FAIL;

View file

@ -86,7 +86,7 @@ void argon2_select_impl()
} }
void xmrig_ar2_fill_segment(const argon2_instance_t *instance, argon2_position_t position) void xmlcore_ar2_fill_segment(const argon2_instance_t *instance, argon2_position_t position)
{ {
selected_argon_impl.fill_segment(instance, position); selected_argon_impl.fill_segment(instance, position);
} }

View file

@ -25,8 +25,8 @@
// All functions return the number of output bytes or -1 on error. If the // All functions return the number of output bytes or -1 on error. If the
// output buffer is too small, the result will silently be truncated. // output buffer is too small, the result will silently be truncated.
#ifndef XMRIG_BASE32_H #ifndef xmlcore_BASE32_H
#define XMRIG_BASE32_H #define xmlcore_BASE32_H
#include <stdint.h> #include <stdint.h>
@ -65,4 +65,4 @@ int base32_encode(const uint8_t *data, int length, uint8_t *result, int bufSize)
} }
#endif /* XMRIG_BASE32_H */ #endif /* xmlcore_BASE32_H */

10
src/3rdparty/cl.h vendored
View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh> * Copyright 2018-2019 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2019 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -22,8 +22,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_CL_H #ifndef xmlcore_CL_H
#define XMRIG_CL_H #define xmlcore_CL_H
#if defined(__APPLE__) #if defined(__APPLE__)
@ -33,4 +33,4 @@
#endif #endif
#endif /* XMRIG_CL_H */ #endif /* xmlcore_CL_H */

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -7,7 +7,7 @@
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018 Lee Clagett <https://github.com/vtnerd> * Copyright 2018 Lee Clagett <https://github.com/vtnerd>
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -41,22 +41,22 @@
#include "version.h" #include "version.h"
xmrig::App::App(Process *process) xmlcore::App::App(Process *process)
{ {
m_controller = std::make_shared<Controller>(process); m_controller = std::make_shared<Controller>(process);
} }
xmrig::App::~App() xmlcore::App::~App()
{ {
Cpu::release(); Cpu::release();
} }
int xmrig::App::exec() int xmlcore::App::exec()
{ {
if (!m_controller->isReady()) { if (!m_controller->isReady()) {
LOG_EMERG("no valid configuration found, try https://xmrig.com/wizard"); LOG_EMERG("no valid configuration found, try https://xmlcore.com/wizard");
return 2; return 2;
} }
@ -94,7 +94,7 @@ int xmrig::App::exec()
} }
void xmrig::App::onConsoleCommand(char command) void xmlcore::App::onConsoleCommand(char command)
{ {
if (command == 3) { if (command == 3) {
LOG_WARN("%s " YELLOW("Ctrl+C received, exiting"), Tags::signal()); LOG_WARN("%s " YELLOW("Ctrl+C received, exiting"), Tags::signal());
@ -106,7 +106,7 @@ void xmrig::App::onConsoleCommand(char command)
} }
void xmrig::App::onSignal(int signum) void xmlcore::App::onSignal(int signum)
{ {
switch (signum) switch (signum)
{ {
@ -121,7 +121,7 @@ void xmrig::App::onSignal(int signum)
} }
void xmrig::App::close() void xmlcore::App::close()
{ {
m_signals.reset(); m_signals.reset();
m_console.reset(); m_console.reset();

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -7,7 +7,7 @@
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018 Lee Clagett <https://github.com/vtnerd> * Copyright 2018 Lee Clagett <https://github.com/vtnerd>
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -23,8 +23,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_APP_H #ifndef xmlcore_APP_H
#define XMRIG_APP_H #define xmlcore_APP_H
#include "base/kernel/interfaces/IConsoleListener.h" #include "base/kernel/interfaces/IConsoleListener.h"
@ -35,7 +35,7 @@
#include <memory> #include <memory>
namespace xmrig { namespace xmlcore {
class Console; class Console;
@ -48,7 +48,7 @@ class Signals;
class App : public IConsoleListener, public ISignalListener class App : public IConsoleListener, public ISignalListener
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE_DEFAULT(App) xmlcore_DISABLE_COPY_MOVE_DEFAULT(App)
App(Process *process); App(Process *process);
~App() override; ~App() override;
@ -69,7 +69,7 @@ private:
}; };
} /* namespace xmrig */ } /* namespace xmlcore */
#endif /* XMRIG_APP_H */ #endif /* xmlcore_APP_H */

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -34,7 +34,7 @@
#include "core/Controller.h" #include "core/Controller.h"
bool xmrig::App::background(int &rc) bool xmlcore::App::background(int &rc)
{ {
if (!m_controller->isBackground()) { if (!m_controller->isBackground()) {
return false; return false;

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh> * Copyright 2018-2019 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2019 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -31,7 +31,7 @@
#include "core/Controller.h" #include "core/Controller.h"
bool xmrig::App::background(int &) bool xmlcore::App::background(int &)
{ {
if (!m_controller->isBackground()) { if (!m_controller->isBackground()) {
return false; return false;

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2019 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2019 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2021 SChernykh <https://github.com/SChernykh> * Copyright 2018-2021 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2021 XMRig <support@xmrig.com> * Copyright 2016-2021 xmlcore <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -39,27 +39,27 @@
#include "version.h" #include "version.h"
#ifdef XMRIG_FEATURE_DMI #ifdef xmlcore_FEATURE_DMI
# include "hw/dmi/DmiReader.h" # include "hw/dmi/DmiReader.h"
#endif #endif
#ifdef XMRIG_ALGO_RANDOMX #ifdef xmlcore_ALGO_RANDOMX
# include "crypto/rx/RxConfig.h" # include "crypto/rx/RxConfig.h"
#endif #endif
namespace xmrig { namespace xmlcore {
#ifdef XMRIG_OS_WIN #ifdef xmlcore_OS_WIN
static constexpr const char *kHugepagesSupported = GREEN_BOLD("permission granted"); static constexpr const char *kHugepagesSupported = GREEN_BOLD("permission granted");
#else #else
static constexpr const char *kHugepagesSupported = GREEN_BOLD("supported"); static constexpr const char *kHugepagesSupported = GREEN_BOLD("supported");
#endif #endif
#ifdef XMRIG_FEATURE_ASM #ifdef xmlcore_FEATURE_ASM
static const char *coloredAsmNames[] = { static const char *coloredAsmNames[] = {
RED_BOLD("none"), RED_BOLD("none"),
"auto", "auto",
@ -81,8 +81,8 @@ static void print_pages(const Config *config)
Log::print(GREEN_BOLD(" * ") WHITE_BOLD("%-13s") "%s", Log::print(GREEN_BOLD(" * ") WHITE_BOLD("%-13s") "%s",
"HUGE PAGES", config->cpu().isHugePages() ? (VirtualMemory::isHugepagesAvailable() ? kHugepagesSupported : RED_BOLD("unavailable")) : RED_BOLD("disabled")); "HUGE PAGES", config->cpu().isHugePages() ? (VirtualMemory::isHugepagesAvailable() ? kHugepagesSupported : RED_BOLD("unavailable")) : RED_BOLD("disabled"));
# ifdef XMRIG_ALGO_RANDOMX # ifdef xmlcore_ALGO_RANDOMX
# ifdef XMRIG_OS_LINUX # ifdef xmlcore_OS_LINUX
Log::print(GREEN_BOLD(" * ") WHITE_BOLD("%-13s") "%s", Log::print(GREEN_BOLD(" * ") WHITE_BOLD("%-13s") "%s",
"1GB PAGES", (VirtualMemory::isOneGbPagesAvailable() ? (config->rx().isOneGbPages() ? kHugepagesSupported : YELLOW_BOLD("disabled")) : YELLOW_BOLD("unavailable"))); "1GB PAGES", (VirtualMemory::isOneGbPagesAvailable() ? (config->rx().isOneGbPages() ? kHugepagesSupported : YELLOW_BOLD("disabled")) : YELLOW_BOLD("unavailable")));
# else # else
@ -104,7 +104,7 @@ static void print_cpu(const Config *)
info->hasAES() ? GREEN_BOLD_S : RED_BOLD_S "-", info->hasAES() ? GREEN_BOLD_S : RED_BOLD_S "-",
info->isVM() ? RED_BOLD_S " VM" : "" info->isVM() ? RED_BOLD_S " VM" : ""
); );
# if defined(XMRIG_FEATURE_HWLOC) # if defined(xmlcore_FEATURE_HWLOC)
Log::print(WHITE_BOLD(" %-13s") BLACK_BOLD("L2:") WHITE_BOLD("%.1f MB") BLACK_BOLD(" L3:") WHITE_BOLD("%.1f MB") Log::print(WHITE_BOLD(" %-13s") BLACK_BOLD("L2:") WHITE_BOLD("%.1f MB") BLACK_BOLD(" L3:") WHITE_BOLD("%.1f MB")
CYAN_BOLD(" %zu") "C" BLACK_BOLD("/") CYAN_BOLD("%zu") "T" CYAN_BOLD(" %zu") "C" BLACK_BOLD("/") CYAN_BOLD("%zu") "T"
BLACK_BOLD(" NUMA:") CYAN_BOLD("%zu"), BLACK_BOLD(" NUMA:") CYAN_BOLD("%zu"),
@ -136,7 +136,7 @@ static void print_memory(const Config *config)
percent percent
); );
# ifdef XMRIG_FEATURE_DMI # ifdef xmlcore_FEATURE_DMI
if (!config->isDMI()) { if (!config->isDMI()) {
return; return;
} }
@ -179,7 +179,7 @@ static void print_threads(const Config *config)
config->pools().donateLevel() config->pools().donateLevel()
); );
# ifdef XMRIG_FEATURE_ASM # ifdef xmlcore_FEATURE_ASM
if (config->cpu().assembly() == Assembly::AUTO) { if (config->cpu().assembly() == Assembly::AUTO) {
const Assembly assembly = Cpu::info()->assembly(); const Assembly assembly = Cpu::info()->assembly();
@ -208,10 +208,10 @@ static void print_commands(Config *)
} }
} // namespace xmrig } // namespace xmlcore
void xmrig::Summary::print(Controller *controller) void xmlcore::Summary::print(Controller *controller)
{ {
const auto config = controller->config(); const auto config = controller->config();

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2021 SChernykh <https://github.com/SChernykh> * Copyright 2018-2021 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2021 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -22,11 +22,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_SUMMARY_H #ifndef xmlcore_SUMMARY_H
#define XMRIG_SUMMARY_H #define xmlcore_SUMMARY_H
namespace xmrig { namespace xmlcore {
class Controller; class Controller;
@ -39,7 +39,7 @@ public:
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_SUMMARY_H */ #endif /* xmlcore_SUMMARY_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -21,13 +21,13 @@
#include "base/tools/Chrono.h" #include "base/tools/Chrono.h"
xmrig::GpuWorker::GpuWorker(size_t id, int64_t affinity, int priority, uint32_t deviceIndex) : Worker(id, affinity, priority), xmlcore::GpuWorker::GpuWorker(size_t id, int64_t affinity, int priority, uint32_t deviceIndex) : Worker(id, affinity, priority),
m_deviceIndex(deviceIndex) m_deviceIndex(deviceIndex)
{ {
} }
void xmrig::GpuWorker::storeStats() void xmlcore::GpuWorker::storeStats()
{ {
// Get index which is unused now // Get index which is unused now
const uint32_t index = m_index.load(std::memory_order_relaxed) ^ 1; const uint32_t index = m_index.load(std::memory_order_relaxed) ^ 1;
@ -42,7 +42,7 @@ void xmrig::GpuWorker::storeStats()
} }
void xmrig::GpuWorker::hashrateData(uint64_t &hashCount, uint64_t &timeStamp, uint64_t &rawHashes) const void xmlcore::GpuWorker::hashrateData(uint64_t &hashCount, uint64_t &timeStamp, uint64_t &rawHashes) const
{ {
const uint32_t index = m_index.load(std::memory_order_relaxed); const uint32_t index = m_index.load(std::memory_order_relaxed);

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_GPUWORKER_H #ifndef xmlcore_GPUWORKER_H
#define XMRIG_GPUWORKER_H #define xmlcore_GPUWORKER_H
#include <atomic> #include <atomic>
@ -27,7 +27,7 @@
#include "backend/common/Worker.h" #include "backend/common/Worker.h"
namespace xmrig { namespace xmlcore {
class GpuWorker : public Worker class GpuWorker : public Worker
@ -52,7 +52,7 @@ protected:
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_GPUWORKER_H */ #endif /* xmlcore_GPUWORKER_H */

View file

@ -1,7 +1,7 @@
/* XMRig /* xmlcore
* Copyright (c) 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright (c) 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -41,7 +41,7 @@ inline static const char *format(double h, char *buf, size_t size)
} }
xmrig::Hashrate::Hashrate(size_t threads) : xmlcore::Hashrate::Hashrate(size_t threads) :
m_threads(threads + 1) m_threads(threads + 1)
{ {
m_counts = new uint64_t*[m_threads]; m_counts = new uint64_t*[m_threads];
@ -56,7 +56,7 @@ xmrig::Hashrate::Hashrate(size_t threads) :
} }
xmrig::Hashrate::~Hashrate() xmlcore::Hashrate::~Hashrate()
{ {
for (size_t i = 0; i < m_threads; i++) { for (size_t i = 0; i < m_threads; i++) {
delete [] m_counts[i]; delete [] m_counts[i];
@ -69,20 +69,20 @@ xmrig::Hashrate::~Hashrate()
} }
const char *xmrig::Hashrate::format(double h, char *buf, size_t size) const char *xmlcore::Hashrate::format(double h, char *buf, size_t size)
{ {
return ::format(h, buf, size); return ::format(h, buf, size);
} }
rapidjson::Value xmrig::Hashrate::normalize(double d) rapidjson::Value xmlcore::Hashrate::normalize(double d)
{ {
return Json::normalize(d, false); return Json::normalize(d, false);
} }
#ifdef XMRIG_FEATURE_API #ifdef xmlcore_FEATURE_API
rapidjson::Value xmrig::Hashrate::toJSON(rapidjson::Document &doc) const rapidjson::Value xmlcore::Hashrate::toJSON(rapidjson::Document &doc) const
{ {
using namespace rapidjson; using namespace rapidjson;
auto &allocator = doc.GetAllocator(); auto &allocator = doc.GetAllocator();
@ -96,7 +96,7 @@ rapidjson::Value xmrig::Hashrate::toJSON(rapidjson::Document &doc) const
} }
rapidjson::Value xmrig::Hashrate::toJSON(size_t threadId, rapidjson::Document &doc) const rapidjson::Value xmlcore::Hashrate::toJSON(size_t threadId, rapidjson::Document &doc) const
{ {
using namespace rapidjson; using namespace rapidjson;
auto &allocator = doc.GetAllocator(); auto &allocator = doc.GetAllocator();
@ -111,7 +111,7 @@ rapidjson::Value xmrig::Hashrate::toJSON(size_t threadId, rapidjson::Document &d
#endif #endif
double xmrig::Hashrate::hashrate(size_t index, size_t ms) const double xmlcore::Hashrate::hashrate(size_t index, size_t ms) const
{ {
assert(index < m_threads); assert(index < m_threads);
if (index >= m_threads) { if (index >= m_threads) {
@ -122,7 +122,7 @@ double xmrig::Hashrate::hashrate(size_t index, size_t ms) const
uint64_t earliestStamp = 0; uint64_t earliestStamp = 0;
bool haveFullSet = false; bool haveFullSet = false;
const uint64_t timeStampLimit = xmrig::Chrono::steadyMSecs() - ms; const uint64_t timeStampLimit = xmlcore::Chrono::steadyMSecs() - ms;
uint64_t* timestamps = m_timestamps[index]; uint64_t* timestamps = m_timestamps[index];
uint64_t* counts = m_counts[index]; uint64_t* counts = m_counts[index];
@ -160,7 +160,7 @@ double xmrig::Hashrate::hashrate(size_t index, size_t ms) const
} }
void xmrig::Hashrate::addData(size_t index, uint64_t count, uint64_t timestamp) void xmlcore::Hashrate::addData(size_t index, uint64_t count, uint64_t timestamp)
{ {
const size_t top = m_top[index]; const size_t top = m_top[index];
m_counts[index][top] = count; m_counts[index][top] = count;

View file

@ -1,7 +1,7 @@
/* XMRig /* xmlcore
* Copyright (c) 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright (c) 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -17,8 +17,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_HASHRATE_H #ifndef xmlcore_HASHRATE_H
#define XMRIG_HASHRATE_H #define xmlcore_HASHRATE_H
#include <cmath> #include <cmath>
@ -30,13 +30,13 @@
#include "base/tools/Object.h" #include "base/tools/Object.h"
namespace xmrig { namespace xmlcore {
class Hashrate class Hashrate
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE_DEFAULT(Hashrate) xmlcore_DISABLE_COPY_MOVE_DEFAULT(Hashrate)
enum Intervals : size_t { enum Intervals : size_t {
ShortInterval = 10000, ShortInterval = 10000,
@ -56,7 +56,7 @@ public:
static const char *format(double h, char *buf, size_t size); static const char *format(double h, char *buf, size_t size);
static rapidjson::Value normalize(double d); static rapidjson::Value normalize(double d);
# ifdef XMRIG_FEATURE_API # ifdef xmlcore_FEATURE_API
rapidjson::Value toJSON(rapidjson::Document &doc) const; rapidjson::Value toJSON(rapidjson::Document &doc) const;
rapidjson::Value toJSON(size_t threadId, rapidjson::Document &doc) const; rapidjson::Value toJSON(size_t threadId, rapidjson::Document &doc) const;
# endif # endif
@ -75,7 +75,7 @@ private:
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_HASHRATE_H */ #endif /* xmlcore_HASHRATE_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -20,7 +20,7 @@
#include "backend/common/HashrateInterpolator.h" #include "backend/common/HashrateInterpolator.h"
uint64_t xmrig::HashrateInterpolator::interpolate(uint64_t timeStamp) const uint64_t xmlcore::HashrateInterpolator::interpolate(uint64_t timeStamp) const
{ {
timeStamp -= LagMS; timeStamp -= LagMS;
@ -44,7 +44,7 @@ uint64_t xmrig::HashrateInterpolator::interpolate(uint64_t timeStamp) const
return 0; return 0;
} }
void xmrig::HashrateInterpolator::addDataPoint(uint64_t count, uint64_t timeStamp) void xmlcore::HashrateInterpolator::addDataPoint(uint64_t count, uint64_t timeStamp)
{ {
std::lock_guard<std::mutex> l(m_lock); std::lock_guard<std::mutex> l(m_lock);

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_HASHRATE_INTERPOLATOR_H #ifndef xmlcore_HASHRATE_INTERPOLATOR_H
#define XMRIG_HASHRATE_INTERPOLATOR_H #define xmlcore_HASHRATE_INTERPOLATOR_H
#include <mutex> #include <mutex>
@ -25,7 +25,7 @@
#include <utility> #include <utility>
namespace xmrig { namespace xmlcore {
class HashrateInterpolator class HashrateInterpolator
@ -45,7 +45,7 @@ private:
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_HASHRATE_INTERPOLATOR_H */ #endif /* xmlcore_HASHRATE_INTERPOLATOR_H */

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -7,7 +7,7 @@
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018 Lee Clagett <https://github.com/vtnerd> * Copyright 2018 Lee Clagett <https://github.com/vtnerd>
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -23,31 +23,31 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_BACKEND_TAGS_H #ifndef xmlcore_BACKEND_TAGS_H
#define XMRIG_BACKEND_TAGS_H #define xmlcore_BACKEND_TAGS_H
#include <cstdint> #include <cstdint>
namespace xmrig { namespace xmlcore {
const char *backend_tag(uint32_t backend); const char *backend_tag(uint32_t backend);
const char *cpu_tag(); const char *cpu_tag();
#ifdef XMRIG_FEATURE_OPENCL #ifdef xmlcore_FEATURE_OPENCL
const char *ocl_tag(); const char *ocl_tag();
#endif #endif
#ifdef XMRIG_FEATURE_CUDA #ifdef xmlcore_FEATURE_CUDA
const char *cuda_tag(); const char *cuda_tag();
#endif #endif
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_BACKEND_TAGS_H */ #endif /* xmlcore_BACKEND_TAGS_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_THREAD_H #ifndef xmlcore_THREAD_H
#define XMRIG_THREAD_H #define xmlcore_THREAD_H
#include "backend/common/interfaces/IWorker.h" #include "backend/common/interfaces/IWorker.h"
@ -26,13 +26,13 @@
#include <thread> #include <thread>
#ifdef XMRIG_OS_APPLE #ifdef xmlcore_OS_APPLE
# include <pthread.h> # include <pthread.h>
# include <mach/thread_act.h> # include <mach/thread_act.h>
#endif #endif
namespace xmrig { namespace xmlcore {
class IBackend; class IBackend;
@ -42,11 +42,11 @@ template<class T>
class Thread class Thread
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE_DEFAULT(Thread) xmlcore_DISABLE_COPY_MOVE_DEFAULT(Thread)
inline Thread(IBackend *backend, size_t id, const T &config) : m_id(id), m_config(config), m_backend(backend) {} inline Thread(IBackend *backend, size_t id, const T &config) : m_id(id), m_config(config), m_backend(backend) {}
# ifdef XMRIG_OS_APPLE # ifdef xmlcore_OS_APPLE
inline ~Thread() { pthread_join(m_thread, nullptr); delete m_worker; } inline ~Thread() { pthread_join(m_thread, nullptr); delete m_worker; }
inline void start(void *(*callback)(void *)) inline void start(void *(*callback)(void *))
@ -82,7 +82,7 @@ private:
IBackend *m_backend; IBackend *m_backend;
IWorker *m_worker = nullptr; IWorker *m_worker = nullptr;
#ifdef XMRIG_OS_APPLE #ifdef xmlcore_OS_APPLE
pthread_t m_thread{}; pthread_t m_thread{};
# else # else
std::thread m_thread; std::thread m_thread;
@ -90,7 +90,7 @@ private:
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_THREAD_H */ #endif /* xmlcore_THREAD_H */

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -29,28 +29,28 @@
#include "crypto/cn/CnAlgo.h" #include "crypto/cn/CnAlgo.h"
#ifdef XMRIG_FEATURE_OPENCL #ifdef xmlcore_FEATURE_OPENCL
# include "backend/opencl/OclThreads.h" # include "backend/opencl/OclThreads.h"
#endif #endif
#ifdef XMRIG_FEATURE_CUDA #ifdef xmlcore_FEATURE_CUDA
# include "backend/cuda/CudaThreads.h" # include "backend/cuda/CudaThreads.h"
#endif #endif
namespace xmrig { namespace xmlcore {
static const char *kAsterisk = "*"; static const char *kAsterisk = "*";
static const char *kCn2 = "cn/2"; static const char *kCn2 = "cn/2";
} // namespace xmrig } // namespace xmlcore
template <class T> template <class T>
const T &xmrig::Threads<T>::get(const String &profileName) const const T &xmlcore::Threads<T>::get(const String &profileName) const
{ {
static T empty; static T empty;
if (profileName.isNull() || !has(profileName)) { if (profileName.isNull() || !has(profileName)) {
@ -62,7 +62,7 @@ const T &xmrig::Threads<T>::get(const String &profileName) const
template <class T> template <class T>
size_t xmrig::Threads<T>::read(const rapidjson::Value &value) size_t xmlcore::Threads<T>::read(const rapidjson::Value &value)
{ {
using namespace rapidjson; using namespace rapidjson;
@ -106,7 +106,7 @@ size_t xmrig::Threads<T>::read(const rapidjson::Value &value)
template <class T> template <class T>
xmrig::String xmrig::Threads<T>::profileName(const Algorithm &algorithm, bool strict) const xmlcore::String xmlcore::Threads<T>::profileName(const Algorithm &algorithm, bool strict) const
{ {
if (isDisabled(algorithm)) { if (isDisabled(algorithm)) {
return String(); return String();
@ -145,7 +145,7 @@ xmrig::String xmrig::Threads<T>::profileName(const Algorithm &algorithm, bool st
template <class T> template <class T>
void xmrig::Threads<T>::toJSON(rapidjson::Value &out, rapidjson::Document &doc) const void xmlcore::Threads<T>::toJSON(rapidjson::Value &out, rapidjson::Document &doc) const
{ {
using namespace rapidjson; using namespace rapidjson;
auto &allocator = doc.GetAllocator(); auto &allocator = doc.GetAllocator();
@ -164,16 +164,16 @@ void xmrig::Threads<T>::toJSON(rapidjson::Value &out, rapidjson::Document &doc)
} }
namespace xmrig { namespace xmlcore {
template class Threads<CpuThreads>; template class Threads<CpuThreads>;
#ifdef XMRIG_FEATURE_OPENCL #ifdef xmlcore_FEATURE_OPENCL
template class Threads<OclThreads>; template class Threads<OclThreads>;
#endif #endif
#ifdef XMRIG_FEATURE_CUDA #ifdef xmlcore_FEATURE_CUDA
template class Threads<CudaThreads>; template class Threads<CudaThreads>;
#endif #endif
} // namespace xmrig } // namespace xmlcore

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -22,8 +22,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_THREADS_H #ifndef xmlcore_THREADS_H
#define XMRIG_THREADS_H #define xmlcore_THREADS_H
#include <map> #include <map>
@ -35,7 +35,7 @@
#include "base/tools/String.h" #include "base/tools/String.h"
namespace xmrig { namespace xmlcore {
template <class T> template <class T>
@ -77,7 +77,7 @@ private:
}; };
} /* namespace xmrig */ } /* namespace xmlcore */
#endif /* XMRIG_THREADS_H */ #endif /* xmlcore_THREADS_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -22,7 +22,7 @@
#include "crypto/common/VirtualMemory.h" #include "crypto/common/VirtualMemory.h"
xmrig::Worker::Worker(size_t id, int64_t affinity, int priority) : xmlcore::Worker::Worker(size_t id, int64_t affinity, int priority) :
m_affinity(affinity), m_affinity(affinity),
m_id(id) m_id(id)
{ {

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,14 +16,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_WORKER_H #ifndef xmlcore_WORKER_H
#define XMRIG_WORKER_H #define xmlcore_WORKER_H
#include "backend/common/interfaces/IWorker.h" #include "backend/common/interfaces/IWorker.h"
namespace xmrig { namespace xmlcore {
class Worker : public IWorker class Worker : public IWorker
@ -45,7 +45,7 @@ private:
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_WORKER_H */ #endif /* xmlcore_WORKER_H */

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -22,8 +22,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_WORKERJOB_H #ifndef xmlcore_WORKERJOB_H
#define XMRIG_WORKERJOB_H #define xmlcore_WORKERJOB_H
#include <cstring> #include <cstring>
@ -33,7 +33,7 @@
#include "crypto/common/Nonce.h" #include "crypto/common/Nonce.h"
namespace xmrig { namespace xmlcore {
template<size_t N> template<size_t N>
@ -117,14 +117,14 @@ private:
template<> template<>
inline uint32_t *xmrig::WorkerJob<1>::nonce(size_t) inline uint32_t *xmlcore::WorkerJob<1>::nonce(size_t)
{ {
return reinterpret_cast<uint32_t*>(blob() + nonceOffset()); return reinterpret_cast<uint32_t*>(blob() + nonceOffset());
} }
template<> template<>
inline bool xmrig::WorkerJob<1>::nextRound(uint32_t rounds, uint32_t roundSize) inline bool xmlcore::WorkerJob<1>::nextRound(uint32_t rounds, uint32_t roundSize)
{ {
m_rounds[index()]++; m_rounds[index()]++;
@ -147,7 +147,7 @@ inline bool xmrig::WorkerJob<1>::nextRound(uint32_t rounds, uint32_t roundSize)
template<> template<>
inline void xmrig::WorkerJob<1>::save(const Job &job, uint32_t reserveCount, Nonce::Backend backend) inline void xmlcore::WorkerJob<1>::save(const Job &job, uint32_t reserveCount, Nonce::Backend backend)
{ {
m_index = job.index(); m_index = job.index();
m_jobs[index()] = job; m_jobs[index()] = job;
@ -161,7 +161,7 @@ inline void xmrig::WorkerJob<1>::save(const Job &job, uint32_t reserveCount, Non
} }
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_WORKERJOB_H */ #endif /* xmlcore_WORKERJOB_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -26,28 +26,28 @@
#include "base/tools/Chrono.h" #include "base/tools/Chrono.h"
#ifdef XMRIG_FEATURE_OPENCL #ifdef xmlcore_FEATURE_OPENCL
# include "backend/opencl/OclWorker.h" # include "backend/opencl/OclWorker.h"
#endif #endif
#ifdef XMRIG_FEATURE_CUDA #ifdef xmlcore_FEATURE_CUDA
# include "backend/cuda/CudaWorker.h" # include "backend/cuda/CudaWorker.h"
#endif #endif
#ifdef XMRIG_FEATURE_BENCHMARK #ifdef xmlcore_FEATURE_BENCHMARK
# include "backend/common/benchmark/Benchmark.h" # include "backend/common/benchmark/Benchmark.h"
#endif #endif
namespace xmrig { namespace xmlcore {
class WorkersPrivate class WorkersPrivate
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE(WorkersPrivate) xmlcore_DISABLE_COPY_MOVE(WorkersPrivate)
WorkersPrivate() = default; WorkersPrivate() = default;
~WorkersPrivate() = default; ~WorkersPrivate() = default;
@ -58,11 +58,11 @@ public:
}; };
} // namespace xmrig } // namespace xmlcore
template<class T> template<class T>
xmrig::Workers<T>::Workers() : xmlcore::Workers<T>::Workers() :
d_ptr(new WorkersPrivate()) d_ptr(new WorkersPrivate())
{ {
@ -70,14 +70,14 @@ xmrig::Workers<T>::Workers() :
template<class T> template<class T>
xmrig::Workers<T>::~Workers() xmlcore::Workers<T>::~Workers()
{ {
delete d_ptr; delete d_ptr;
} }
template<class T> template<class T>
bool xmrig::Workers<T>::tick(uint64_t) bool xmlcore::Workers<T>::tick(uint64_t)
{ {
if (!d_ptr->hashrate) { if (!d_ptr->hashrate) {
return true; return true;
@ -107,7 +107,7 @@ bool xmrig::Workers<T>::tick(uint64_t)
d_ptr->hashrate->add(totalHashCount, Chrono::steadyMSecs()); d_ptr->hashrate->add(totalHashCount, Chrono::steadyMSecs());
} }
# ifdef XMRIG_FEATURE_BENCHMARK # ifdef xmlcore_FEATURE_BENCHMARK
return !d_ptr->benchmark || !d_ptr->benchmark->finish(totalHashCount); return !d_ptr->benchmark || !d_ptr->benchmark->finish(totalHashCount);
# else # else
return true; return true;
@ -116,23 +116,23 @@ bool xmrig::Workers<T>::tick(uint64_t)
template<class T> template<class T>
const xmrig::Hashrate *xmrig::Workers<T>::hashrate() const const xmlcore::Hashrate *xmlcore::Workers<T>::hashrate() const
{ {
return d_ptr->hashrate.get(); return d_ptr->hashrate.get();
} }
template<class T> template<class T>
void xmrig::Workers<T>::setBackend(IBackend *backend) void xmlcore::Workers<T>::setBackend(IBackend *backend)
{ {
d_ptr->backend = backend; d_ptr->backend = backend;
} }
template<class T> template<class T>
void xmrig::Workers<T>::stop() void xmlcore::Workers<T>::stop()
{ {
# ifdef XMRIG_MINER_PROJECT # ifdef xmlcore_MINER_PROJECT
Nonce::stop(T::backend()); Nonce::stop(T::backend());
# endif # endif
@ -142,7 +142,7 @@ void xmrig::Workers<T>::stop()
m_workers.clear(); m_workers.clear();
# ifdef XMRIG_MINER_PROJECT # ifdef xmlcore_MINER_PROJECT
Nonce::touch(T::backend()); Nonce::touch(T::backend());
# endif # endif
@ -150,9 +150,9 @@ void xmrig::Workers<T>::stop()
} }
#ifdef XMRIG_FEATURE_BENCHMARK #ifdef xmlcore_FEATURE_BENCHMARK
template<class T> template<class T>
void xmrig::Workers<T>::start(const std::vector<T> &data, const std::shared_ptr<Benchmark> &benchmark) void xmlcore::Workers<T>::start(const std::vector<T> &data, const std::shared_ptr<Benchmark> &benchmark)
{ {
if (!benchmark) { if (!benchmark) {
return start(data, true); return start(data, true);
@ -167,14 +167,14 @@ void xmrig::Workers<T>::start(const std::vector<T> &data, const std::shared_ptr<
template<class T> template<class T>
xmrig::IWorker *xmrig::Workers<T>::create(Thread<T> *) xmlcore::IWorker *xmlcore::Workers<T>::create(Thread<T> *)
{ {
return nullptr; return nullptr;
} }
template<class T> template<class T>
void *xmrig::Workers<T>::onReady(void *arg) void *xmlcore::Workers<T>::onReady(void *arg)
{ {
auto handle = static_cast<Thread<T>* >(arg); auto handle = static_cast<Thread<T>* >(arg);
@ -200,7 +200,7 @@ void *xmrig::Workers<T>::onReady(void *arg)
template<class T> template<class T>
void xmrig::Workers<T>::start(const std::vector<T> &data, bool sleep) void xmlcore::Workers<T>::start(const std::vector<T> &data, bool sleep)
{ {
for (const auto &item : data) { for (const auto &item : data) {
m_workers.push_back(new Thread<T>(d_ptr->backend, m_workers.size(), item)); m_workers.push_back(new Thread<T>(d_ptr->backend, m_workers.size(), item));
@ -208,7 +208,7 @@ void xmrig::Workers<T>::start(const std::vector<T> &data, bool sleep)
d_ptr->hashrate = std::make_shared<Hashrate>(m_workers.size()); d_ptr->hashrate = std::make_shared<Hashrate>(m_workers.size());
# ifdef XMRIG_MINER_PROJECT # ifdef xmlcore_MINER_PROJECT
Nonce::touch(T::backend()); Nonce::touch(T::backend());
# endif # endif
@ -218,13 +218,13 @@ void xmrig::Workers<T>::start(const std::vector<T> &data, bool sleep)
} }
namespace xmrig { namespace xmlcore {
template<> template<>
xmrig::IWorker *xmrig::Workers<CpuLaunchData>::create(Thread<CpuLaunchData> *handle) xmlcore::IWorker *xmlcore::Workers<CpuLaunchData>::create(Thread<CpuLaunchData> *handle)
{ {
# ifdef XMRIG_MINER_PROJECT # ifdef xmlcore_MINER_PROJECT
switch (handle->config().intensity) { switch (handle->config().intensity) {
case 1: case 1:
return new CpuWorker<1>(handle->id(), handle->config()); return new CpuWorker<1>(handle->id(), handle->config());
@ -254,9 +254,9 @@ xmrig::IWorker *xmrig::Workers<CpuLaunchData>::create(Thread<CpuLaunchData> *han
template class Workers<CpuLaunchData>; template class Workers<CpuLaunchData>;
#ifdef XMRIG_FEATURE_OPENCL #ifdef xmlcore_FEATURE_OPENCL
template<> template<>
xmrig::IWorker *xmrig::Workers<OclLaunchData>::create(Thread<OclLaunchData> *handle) xmlcore::IWorker *xmlcore::Workers<OclLaunchData>::create(Thread<OclLaunchData> *handle)
{ {
return new OclWorker(handle->id(), handle->config()); return new OclWorker(handle->id(), handle->config());
} }
@ -266,9 +266,9 @@ template class Workers<OclLaunchData>;
#endif #endif
#ifdef XMRIG_FEATURE_CUDA #ifdef xmlcore_FEATURE_CUDA
template<> template<>
xmrig::IWorker *xmrig::Workers<CudaLaunchData>::create(Thread<CudaLaunchData> *handle) xmlcore::IWorker *xmlcore::Workers<CudaLaunchData>::create(Thread<CudaLaunchData> *handle)
{ {
return new CudaWorker(handle->id(), handle->config()); return new CudaWorker(handle->id(), handle->config());
} }
@ -278,4 +278,4 @@ template class Workers<CudaLaunchData>;
#endif #endif
} // namespace xmrig } // namespace xmlcore

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,25 +16,25 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_WORKERS_H #ifndef xmlcore_WORKERS_H
#define XMRIG_WORKERS_H #define xmlcore_WORKERS_H
#include "backend/common/Thread.h" #include "backend/common/Thread.h"
#include "backend/cpu/CpuLaunchData.h" #include "backend/cpu/CpuLaunchData.h"
#ifdef XMRIG_FEATURE_OPENCL #ifdef xmlcore_FEATURE_OPENCL
# include "backend/opencl/OclLaunchData.h" # include "backend/opencl/OclLaunchData.h"
#endif #endif
#ifdef XMRIG_FEATURE_CUDA #ifdef xmlcore_FEATURE_CUDA
# include "backend/cuda/CudaLaunchData.h" # include "backend/cuda/CudaLaunchData.h"
#endif #endif
namespace xmrig { namespace xmlcore {
class Benchmark; class Benchmark;
@ -46,7 +46,7 @@ template<class T>
class Workers class Workers
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE(Workers) xmlcore_DISABLE_COPY_MOVE(Workers)
Workers(); Workers();
~Workers(); ~Workers();
@ -59,7 +59,7 @@ public:
void setBackend(IBackend *backend); void setBackend(IBackend *backend);
void stop(); void stop();
# ifdef XMRIG_FEATURE_BENCHMARK # ifdef xmlcore_FEATURE_BENCHMARK
void start(const std::vector<T> &data, const std::shared_ptr<Benchmark> &benchmark); void start(const std::vector<T> &data, const std::shared_ptr<Benchmark> &benchmark);
# endif # endif
@ -75,7 +75,7 @@ private:
template<class T> template<class T>
void xmrig::Workers<T>::jobEarlyNotification(const Job &job) void xmlcore::Workers<T>::jobEarlyNotification(const Job &job)
{ {
for (Thread<T>* t : m_workers) { for (Thread<T>* t : m_workers) {
if (t->worker()) { if (t->worker()) {
@ -90,21 +90,21 @@ IWorker *Workers<CpuLaunchData>::create(Thread<CpuLaunchData> *handle);
extern template class Workers<CpuLaunchData>; extern template class Workers<CpuLaunchData>;
#ifdef XMRIG_FEATURE_OPENCL #ifdef xmlcore_FEATURE_OPENCL
template<> template<>
IWorker *Workers<OclLaunchData>::create(Thread<OclLaunchData> *handle); IWorker *Workers<OclLaunchData>::create(Thread<OclLaunchData> *handle);
extern template class Workers<OclLaunchData>; extern template class Workers<OclLaunchData>;
#endif #endif
#ifdef XMRIG_FEATURE_CUDA #ifdef xmlcore_FEATURE_CUDA
template<> template<>
IWorker *Workers<CudaLaunchData>::create(Thread<CudaLaunchData> *handle); IWorker *Workers<CudaLaunchData>::create(Thread<CudaLaunchData> *handle);
extern template class Workers<CudaLaunchData>; extern template class Workers<CudaLaunchData>;
#endif #endif
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_WORKERS_H */ #endif /* xmlcore_WORKERS_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -30,7 +30,7 @@
#include <mutex> #include <mutex>
namespace xmrig { namespace xmlcore {
class BenchStatePrivate class BenchStatePrivate
@ -55,23 +55,23 @@ static BenchStatePrivate *d_ptr = nullptr;
std::atomic<uint64_t> BenchState::m_data{}; std::atomic<uint64_t> BenchState::m_data{};
} // namespace xmrig } // namespace xmlcore
bool xmrig::BenchState::isDone() bool xmlcore::BenchState::isDone()
{ {
return d_ptr == nullptr; return d_ptr == nullptr;
} }
uint32_t xmrig::BenchState::size() uint32_t xmlcore::BenchState::size()
{ {
return d_ptr ? d_ptr->size : 0U; return d_ptr ? d_ptr->size : 0U;
} }
uint64_t xmrig::BenchState::referenceHash(const Algorithm &algo, uint32_t size, uint32_t threads) uint64_t xmlcore::BenchState::referenceHash(const Algorithm &algo, uint32_t size, uint32_t threads)
{ {
uint64_t hash = 0; uint64_t hash = 0;
@ -84,7 +84,7 @@ uint64_t xmrig::BenchState::referenceHash(const Algorithm &algo, uint32_t size,
} }
uint64_t xmrig::BenchState::start(size_t threads, const IBackend *backend) uint64_t xmlcore::BenchState::start(size_t threads, const IBackend *backend)
{ {
assert(d_ptr != nullptr); assert(d_ptr != nullptr);
@ -103,14 +103,14 @@ uint64_t xmrig::BenchState::start(size_t threads, const IBackend *backend)
} }
void xmrig::BenchState::destroy() void xmlcore::BenchState::destroy()
{ {
delete d_ptr; delete d_ptr;
d_ptr = nullptr; d_ptr = nullptr;
} }
void xmrig::BenchState::done() void xmlcore::BenchState::done()
{ {
assert(d_ptr != nullptr && d_ptr->async && d_ptr->remaining > 0); assert(d_ptr != nullptr && d_ptr->async && d_ptr->remaining > 0);
@ -127,7 +127,7 @@ void xmrig::BenchState::done()
} }
void xmrig::BenchState::init(IBenchListener *listener, uint32_t size) void xmlcore::BenchState::init(IBenchListener *listener, uint32_t size)
{ {
assert(d_ptr == nullptr); assert(d_ptr == nullptr);
@ -135,7 +135,7 @@ void xmrig::BenchState::init(IBenchListener *listener, uint32_t size)
} }
void xmrig::BenchState::setSize(uint32_t size) void xmlcore::BenchState::setSize(uint32_t size)
{ {
assert(d_ptr != nullptr); assert(d_ptr != nullptr);

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_BENCHSTATE_H #ifndef xmlcore_BENCHSTATE_H
#define XMRIG_BENCHSTATE_H #define xmlcore_BENCHSTATE_H
#include <atomic> #include <atomic>
@ -25,7 +25,7 @@
#include <cstdint> #include <cstdint>
namespace xmrig { namespace xmlcore {
class Algorithm; class Algorithm;
@ -53,7 +53,7 @@ private:
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_BENCHSTATE_H */ #endif /* xmlcore_BENCHSTATE_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_BENCHSTATE_TEST_H #ifndef xmlcore_BENCHSTATE_TEST_H
#define XMRIG_BENCHSTATE_TEST_H #define xmlcore_BENCHSTATE_TEST_H
#include "base/crypto/Algorithm.h" #include "base/crypto/Algorithm.h"
@ -26,7 +26,7 @@
#include <map> #include <map>
namespace xmrig { namespace xmlcore {
static const std::map<int, std::map<uint32_t, uint64_t> > hashCheck = { static const std::map<int, std::map<uint32_t, uint64_t> > hashCheck = {
@ -109,8 +109,8 @@ static const std::map<int, std::map<uint32_t, uint64_t> > hashCheck1T = {
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_BENCHSTATE_TEST_H */ #endif /* xmlcore_BENCHSTATE_TEST_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -27,14 +27,14 @@
#include <cinttypes> #include <cinttypes>
xmrig::Benchmark::Benchmark(size_t workers, const IBackend *backend) : xmlcore::Benchmark::Benchmark(size_t workers, const IBackend *backend) :
m_backend(backend), m_backend(backend),
m_workers(workers) m_workers(workers)
{ {
} }
bool xmrig::Benchmark::finish(uint64_t totalHashCount) bool xmlcore::Benchmark::finish(uint64_t totalHashCount)
{ {
m_current = totalHashCount; m_current = totalHashCount;
@ -42,13 +42,13 @@ bool xmrig::Benchmark::finish(uint64_t totalHashCount)
} }
void xmrig::Benchmark::start() void xmlcore::Benchmark::start()
{ {
m_startTime = BenchState::start(m_workers, m_backend); m_startTime = BenchState::start(m_workers, m_backend);
} }
void xmrig::Benchmark::printProgress() const void xmlcore::Benchmark::printProgress() const
{ {
if (!m_startTime || !m_current) { if (!m_startTime || !m_current) {
return; return;

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,14 +16,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_BENCHMARK_H #ifndef xmlcore_BENCHMARK_H
#define XMRIG_BENCHMARK_H #define xmlcore_BENCHMARK_H
#include "base/tools/Object.h" #include "base/tools/Object.h"
namespace xmrig { namespace xmlcore {
class IBackend; class IBackend;
@ -32,7 +32,7 @@ class IBackend;
class Benchmark class Benchmark
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE_DEFAULT(Benchmark) xmlcore_DISABLE_COPY_MOVE_DEFAULT(Benchmark)
Benchmark(size_t workers, const IBackend *backend); Benchmark(size_t workers, const IBackend *backend);
~Benchmark() = default; ~Benchmark() = default;
@ -49,7 +49,7 @@ private:
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_BENCHMARK_H */ #endif /* xmlcore_BENCHMARK_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_IBACKEND_H #ifndef xmlcore_IBACKEND_H
#define XMRIG_IBACKEND_H #define xmlcore_IBACKEND_H
#include "3rdparty/rapidjson/fwd.h" #include "3rdparty/rapidjson/fwd.h"
@ -27,7 +27,7 @@
#include <cstdint> #include <cstdint>
namespace xmrig { namespace xmlcore {
class Algorithm; class Algorithm;
@ -42,7 +42,7 @@ class String;
class IBackend class IBackend
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE(IBackend) xmlcore_DISABLE_COPY_MOVE(IBackend)
IBackend() = default; IBackend() = default;
virtual ~IBackend() = default; virtual ~IBackend() = default;
@ -61,19 +61,19 @@ public:
virtual void start(IWorker *worker, bool ready) = 0; virtual void start(IWorker *worker, bool ready) = 0;
virtual void stop() = 0; virtual void stop() = 0;
# ifdef XMRIG_FEATURE_API # ifdef xmlcore_FEATURE_API
virtual rapidjson::Value toJSON(rapidjson::Document &doc) const = 0; virtual rapidjson::Value toJSON(rapidjson::Document &doc) const = 0;
virtual void handleRequest(IApiRequest &request) = 0; virtual void handleRequest(IApiRequest &request) = 0;
# endif # endif
# ifdef XMRIG_FEATURE_BENCHMARK # ifdef xmlcore_FEATURE_BENCHMARK
virtual Benchmark *benchmark() const = 0; virtual Benchmark *benchmark() const = 0;
virtual void printBenchProgress() const = 0; virtual void printBenchProgress() const = 0;
# endif # endif
}; };
} // namespace xmrig } // namespace xmlcore
#endif // XMRIG_IBACKEND_H #endif // xmlcore_IBACKEND_H

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,14 +16,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_IBENCHLISTENER_H #ifndef xmlcore_IBENCHLISTENER_H
#define XMRIG_IBENCHLISTENER_H #define xmlcore_IBENCHLISTENER_H
#include "base/tools/Object.h" #include "base/tools/Object.h"
namespace xmrig { namespace xmlcore {
class IBackend; class IBackend;
@ -32,7 +32,7 @@ class IBackend;
class IBenchListener class IBenchListener
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE(IBenchListener) xmlcore_DISABLE_COPY_MOVE(IBenchListener)
IBenchListener() = default; IBenchListener() = default;
virtual ~IBenchListener() = default; virtual ~IBenchListener() = default;
@ -42,7 +42,7 @@ public:
}; };
} /* namespace xmrig */ } /* namespace xmlcore */
#endif // XMRIG_IBENCHLISTENER_H #endif // xmlcore_IBENCHLISTENER_H

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_IMEMORYPOOL_H #ifndef xmlcore_IMEMORYPOOL_H
#define XMRIG_IMEMORYPOOL_H #define xmlcore_IMEMORYPOOL_H
#include "base/tools/Object.h" #include "base/tools/Object.h"
@ -27,13 +27,13 @@
#include <cstdint> #include <cstdint>
namespace xmrig { namespace xmlcore {
class IMemoryPool class IMemoryPool
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE(IMemoryPool) xmlcore_DISABLE_COPY_MOVE(IMemoryPool)
IMemoryPool() = default; IMemoryPool() = default;
virtual ~IMemoryPool() = default; virtual ~IMemoryPool() = default;
@ -44,8 +44,8 @@ public:
}; };
} /* namespace xmrig */ } /* namespace xmlcore */
#endif /* XMRIG_IMEMORYPOOL_H */ #endif /* xmlcore_IMEMORYPOOL_H */

View file

@ -1,7 +1,7 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2019 tevador <tevador@gmail.com> * Copyright (c) 2018-2019 tevador <tevador@gmail.com>
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -17,31 +17,31 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_IRXLISTENER_H #ifndef xmlcore_IRXLISTENER_H
#define XMRIG_IRXLISTENER_H #define xmlcore_IRXLISTENER_H
#include "base/tools/Object.h" #include "base/tools/Object.h"
namespace xmrig { namespace xmlcore {
class IRxListener class IRxListener
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE(IRxListener) xmlcore_DISABLE_COPY_MOVE(IRxListener)
IRxListener() = default; IRxListener() = default;
virtual ~IRxListener() = default; virtual ~IRxListener() = default;
# ifdef XMRIG_ALGO_RANDOMX # ifdef xmlcore_ALGO_RANDOMX
virtual void onDatasetReady() = 0; virtual void onDatasetReady() = 0;
# endif # endif
}; };
} /* namespace xmrig */ } /* namespace xmlcore */
#endif // XMRIG_IRXLISTENER_H #endif // xmlcore_IRXLISTENER_H

View file

@ -1,7 +1,7 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2019 tevador <tevador@gmail.com> * Copyright (c) 2018-2019 tevador <tevador@gmail.com>
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -17,8 +17,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_IRXSTORAGE_H #ifndef xmlcore_IRXSTORAGE_H
#define XMRIG_IRXSTORAGE_H #define xmlcore_IRXSTORAGE_H
#include "base/tools/Object.h" #include "base/tools/Object.h"
@ -30,7 +30,7 @@
#include <utility> #include <utility>
namespace xmrig { namespace xmlcore {
class Job; class Job;
@ -41,7 +41,7 @@ class RxSeed;
class IRxStorage class IRxStorage
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE(IRxStorage) xmlcore_DISABLE_COPY_MOVE(IRxStorage)
IRxStorage() = default; IRxStorage() = default;
virtual ~IRxStorage() = default; virtual ~IRxStorage() = default;
@ -53,7 +53,7 @@ public:
}; };
} /* namespace xmrig */ } /* namespace xmlcore */
#endif // XMRIG_IRXSTORAGE_H #endif // xmlcore_IRXSTORAGE_H

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_IWORKER_H #ifndef xmlcore_IWORKER_H
#define XMRIG_IWORKER_H #define xmlcore_IWORKER_H
#include "base/tools/Object.h" #include "base/tools/Object.h"
@ -27,7 +27,7 @@
#include <cstddef> #include <cstddef>
namespace xmrig { namespace xmlcore {
class Job; class Job;
@ -37,7 +37,7 @@ class VirtualMemory;
class IWorker class IWorker
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE(IWorker) xmlcore_DISABLE_COPY_MOVE(IWorker)
IWorker() = default; IWorker() = default;
virtual ~IWorker() = default; virtual ~IWorker() = default;
@ -52,7 +52,7 @@ public:
}; };
} // namespace xmrig } // namespace xmlcore
#endif // XMRIG_IWORKER_H #endif // xmlcore_IWORKER_H

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2021 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_PCITOPOLOGY_H #ifndef xmlcore_PCITOPOLOGY_H
#define XMRIG_PCITOPOLOGY_H #define xmlcore_PCITOPOLOGY_H
#include <cstdio> #include <cstdio>
@ -26,7 +26,7 @@
#include "base/tools/String.h" #include "base/tools/String.h"
namespace xmrig { namespace xmlcore {
class PciTopology class PciTopology
@ -67,7 +67,7 @@ private:
}; };
} // namespace xmrig } // namespace xmlcore
#endif /* XMRIG_PCITOPOLOGY_H */ #endif /* xmlcore_PCITOPOLOGY_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -24,20 +24,20 @@
#include "3rdparty/rapidjson/document.h" #include "3rdparty/rapidjson/document.h"
#if defined(XMRIG_FEATURE_HWLOC) #if defined(xmlcore_FEATURE_HWLOC)
# include "backend/cpu/platform/HwlocCpuInfo.h" # include "backend/cpu/platform/HwlocCpuInfo.h"
#else #else
# include "backend/cpu/platform/BasicCpuInfo.h" # include "backend/cpu/platform/BasicCpuInfo.h"
#endif #endif
static xmrig::ICpuInfo *cpuInfo = nullptr; static xmlcore::ICpuInfo *cpuInfo = nullptr;
xmrig::ICpuInfo *xmrig::Cpu::info() xmlcore::ICpuInfo *xmlcore::Cpu::info()
{ {
if (cpuInfo == nullptr) { if (cpuInfo == nullptr) {
# if defined(XMRIG_FEATURE_HWLOC) # if defined(xmlcore_FEATURE_HWLOC)
cpuInfo = new HwlocCpuInfo(); cpuInfo = new HwlocCpuInfo();
# else # else
cpuInfo = new BasicCpuInfo(); cpuInfo = new BasicCpuInfo();
@ -48,13 +48,13 @@ xmrig::ICpuInfo *xmrig::Cpu::info()
} }
rapidjson::Value xmrig::Cpu::toJSON(rapidjson::Document &doc) rapidjson::Value xmlcore::Cpu::toJSON(rapidjson::Document &doc)
{ {
return info()->toJSON(doc); return info()->toJSON(doc);
} }
void xmrig::Cpu::release() void xmlcore::Cpu::release()
{ {
delete cpuInfo; delete cpuInfo;
cpuInfo = nullptr; cpuInfo = nullptr;

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,14 +16,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_CPU_H #ifndef xmlcore_CPU_H
#define XMRIG_CPU_H #define xmlcore_CPU_H
#include "backend/cpu/interfaces/ICpuInfo.h" #include "backend/cpu/interfaces/ICpuInfo.h"
namespace xmrig { namespace xmlcore {
class Cpu class Cpu
@ -37,7 +37,7 @@ public:
}; };
} /* namespace xmrig */ } /* namespace xmlcore */
#endif /* XMRIG_CPU_H */ #endif /* xmlcore_CPU_H */

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -45,23 +45,23 @@
#include "crypto/rx/RxDataset.h" #include "crypto/rx/RxDataset.h"
#ifdef XMRIG_FEATURE_API #ifdef xmlcore_FEATURE_API
# include "base/api/interfaces/IApiRequest.h" # include "base/api/interfaces/IApiRequest.h"
#endif #endif
#ifdef XMRIG_ALGO_ARGON2 #ifdef xmlcore_ALGO_ARGON2
# include "crypto/argon2/Impl.h" # include "crypto/argon2/Impl.h"
#endif #endif
#ifdef XMRIG_FEATURE_BENCHMARK #ifdef xmlcore_FEATURE_BENCHMARK
# include "backend/common/benchmark/Benchmark.h" # include "backend/common/benchmark/Benchmark.h"
# include "backend/common/benchmark/BenchState.h" # include "backend/common/benchmark/BenchState.h"
#endif #endif
namespace xmrig { namespace xmlcore {
extern template class Threads<CpuThreads>; extern template class Threads<CpuThreads>;
@ -158,7 +158,7 @@ public:
status.start(threads, algo.l3()); status.start(threads, algo.l3());
# ifdef XMRIG_FEATURE_BENCHMARK # ifdef xmlcore_FEATURE_BENCHMARK
workers.start(threads, benchmark); workers.start(threads, benchmark);
# else # else
workers.start(threads); workers.start(threads);
@ -178,7 +178,7 @@ public:
{ {
HugePagesInfo pages; HugePagesInfo pages;
# ifdef XMRIG_ALGO_RANDOMX # ifdef xmlcore_ALGO_RANDOMX
if (algo.family() == Algorithm::RANDOM_X) { if (algo.family() == Algorithm::RANDOM_X) {
pages += Rx::hugePages(); pages += Rx::hugePages();
} }
@ -212,24 +212,24 @@ public:
String profileName; String profileName;
Workers<CpuLaunchData> workers; Workers<CpuLaunchData> workers;
# ifdef XMRIG_FEATURE_BENCHMARK # ifdef xmlcore_FEATURE_BENCHMARK
std::shared_ptr<Benchmark> benchmark; std::shared_ptr<Benchmark> benchmark;
# endif # endif
}; };
} // namespace xmrig } // namespace xmlcore
const char *xmrig::backend_tag(uint32_t backend) const char *xmlcore::backend_tag(uint32_t backend)
{ {
# ifdef XMRIG_FEATURE_OPENCL # ifdef xmlcore_FEATURE_OPENCL
if (backend == Nonce::OPENCL) { if (backend == Nonce::OPENCL) {
return ocl_tag(); return ocl_tag();
} }
# endif # endif
# ifdef XMRIG_FEATURE_CUDA # ifdef xmlcore_FEATURE_CUDA
if (backend == Nonce::CUDA) { if (backend == Nonce::CUDA) {
return cuda_tag(); return cuda_tag();
} }
@ -239,65 +239,65 @@ const char *xmrig::backend_tag(uint32_t backend)
} }
const char *xmrig::cpu_tag() const char *xmlcore::cpu_tag()
{ {
return Tags::cpu(); return Tags::cpu();
} }
xmrig::CpuBackend::CpuBackend(Controller *controller) : xmlcore::CpuBackend::CpuBackend(Controller *controller) :
d_ptr(new CpuBackendPrivate(controller)) d_ptr(new CpuBackendPrivate(controller))
{ {
d_ptr->workers.setBackend(this); d_ptr->workers.setBackend(this);
} }
xmrig::CpuBackend::~CpuBackend() xmlcore::CpuBackend::~CpuBackend()
{ {
delete d_ptr; delete d_ptr;
} }
bool xmrig::CpuBackend::isEnabled() const bool xmlcore::CpuBackend::isEnabled() const
{ {
return d_ptr->controller->config()->cpu().isEnabled(); return d_ptr->controller->config()->cpu().isEnabled();
} }
bool xmrig::CpuBackend::isEnabled(const Algorithm &algorithm) const bool xmlcore::CpuBackend::isEnabled(const Algorithm &algorithm) const
{ {
return !d_ptr->controller->config()->cpu().threads().get(algorithm).isEmpty(); return !d_ptr->controller->config()->cpu().threads().get(algorithm).isEmpty();
} }
bool xmrig::CpuBackend::tick(uint64_t ticks) bool xmlcore::CpuBackend::tick(uint64_t ticks)
{ {
return d_ptr->workers.tick(ticks); return d_ptr->workers.tick(ticks);
} }
const xmrig::Hashrate *xmrig::CpuBackend::hashrate() const const xmlcore::Hashrate *xmlcore::CpuBackend::hashrate() const
{ {
return d_ptr->workers.hashrate(); return d_ptr->workers.hashrate();
} }
const xmrig::String &xmrig::CpuBackend::profileName() const const xmlcore::String &xmlcore::CpuBackend::profileName() const
{ {
return d_ptr->profileName; return d_ptr->profileName;
} }
const xmrig::String &xmrig::CpuBackend::type() const const xmlcore::String &xmlcore::CpuBackend::type() const
{ {
return kType; return kType;
} }
void xmrig::CpuBackend::prepare(const Job &nextJob) void xmlcore::CpuBackend::prepare(const Job &nextJob)
{ {
# ifdef XMRIG_ALGO_ARGON2 # ifdef xmlcore_ALGO_ARGON2
const xmrig::Algorithm::Family f = nextJob.algorithm().family(); const xmlcore::Algorithm::Family f = nextJob.algorithm().family();
if ((f == Algorithm::ARGON2) || (f == Algorithm::RANDOM_X)) { if ((f == Algorithm::ARGON2) || (f == Algorithm::RANDOM_X)) {
if (argon2::Impl::select(d_ptr->controller->config()->cpu().argon2Impl())) { if (argon2::Impl::select(d_ptr->controller->config()->cpu().argon2Impl())) {
LOG_INFO("%s use " WHITE_BOLD("argon2") " implementation " CSI "1;%dm" "%s", LOG_INFO("%s use " WHITE_BOLD("argon2") " implementation " CSI "1;%dm" "%s",
@ -311,7 +311,7 @@ void xmrig::CpuBackend::prepare(const Job &nextJob)
} }
void xmrig::CpuBackend::printHashrate(bool details) void xmlcore::CpuBackend::printHashrate(bool details)
{ {
if (!details || !hashrate()) { if (!details || !hashrate()) {
return; return;
@ -334,7 +334,7 @@ void xmrig::CpuBackend::printHashrate(bool details)
i++; i++;
} }
# ifdef XMRIG_FEATURE_OPENCL # ifdef xmlcore_FEATURE_OPENCL
Log::print(WHITE_BOLD_S "| - | - | %7s | %7s | %7s |", Log::print(WHITE_BOLD_S "| - | - | %7s | %7s | %7s |",
Hashrate::format(hashrate()->calc(Hashrate::ShortInterval), num, sizeof num / 3), Hashrate::format(hashrate()->calc(Hashrate::ShortInterval), num, sizeof num / 3),
Hashrate::format(hashrate()->calc(Hashrate::MediumInterval), num + 8, sizeof num / 3), Hashrate::format(hashrate()->calc(Hashrate::MediumInterval), num + 8, sizeof num / 3),
@ -344,12 +344,12 @@ void xmrig::CpuBackend::printHashrate(bool details)
} }
void xmrig::CpuBackend::printHealth() void xmlcore::CpuBackend::printHealth()
{ {
} }
void xmrig::CpuBackend::setJob(const Job &job) void xmlcore::CpuBackend::setJob(const Job &job)
{ {
if (!isEnabled()) { if (!isEnabled()) {
return stop(); return stop();
@ -373,7 +373,7 @@ void xmrig::CpuBackend::setJob(const Job &job)
stop(); stop();
# ifdef XMRIG_FEATURE_BENCHMARK # ifdef xmlcore_FEATURE_BENCHMARK
if (BenchState::size()) { if (BenchState::size()) {
d_ptr->benchmark = std::make_shared<Benchmark>(threads.size(), this); d_ptr->benchmark = std::make_shared<Benchmark>(threads.size(), this);
} }
@ -384,7 +384,7 @@ void xmrig::CpuBackend::setJob(const Job &job)
} }
void xmrig::CpuBackend::start(IWorker *worker, bool ready) void xmlcore::CpuBackend::start(IWorker *worker, bool ready)
{ {
mutex.lock(); mutex.lock();
@ -400,7 +400,7 @@ void xmrig::CpuBackend::start(IWorker *worker, bool ready)
} }
void xmrig::CpuBackend::stop() void xmlcore::CpuBackend::stop()
{ {
if (d_ptr->threads.empty()) { if (d_ptr->threads.empty()) {
return; return;
@ -415,8 +415,8 @@ void xmrig::CpuBackend::stop()
} }
#ifdef XMRIG_FEATURE_API #ifdef xmlcore_FEATURE_API
rapidjson::Value xmrig::CpuBackend::toJSON(rapidjson::Document &doc) const rapidjson::Value xmlcore::CpuBackend::toJSON(rapidjson::Document &doc) const
{ {
using namespace rapidjson; using namespace rapidjson;
auto &allocator = doc.GetAllocator(); auto &allocator = doc.GetAllocator();
@ -431,18 +431,18 @@ rapidjson::Value xmrig::CpuBackend::toJSON(rapidjson::Document &doc) const
out.AddMember("priority", cpu.priority(), allocator); out.AddMember("priority", cpu.priority(), allocator);
out.AddMember("msr", Rx::isMSR(), allocator); out.AddMember("msr", Rx::isMSR(), allocator);
# ifdef XMRIG_FEATURE_ASM # ifdef xmlcore_FEATURE_ASM
const Assembly assembly = Cpu::assembly(cpu.assembly()); const Assembly assembly = Cpu::assembly(cpu.assembly());
out.AddMember("asm", assembly.toJSON(), allocator); out.AddMember("asm", assembly.toJSON(), allocator);
# else # else
out.AddMember("asm", false, allocator); out.AddMember("asm", false, allocator);
# endif # endif
# ifdef XMRIG_ALGO_ARGON2 # ifdef xmlcore_ALGO_ARGON2
out.AddMember("argon2-impl", argon2::Impl::name().toJSON(), allocator); out.AddMember("argon2-impl", argon2::Impl::name().toJSON(), allocator);
# endif # endif
# ifdef XMRIG_ALGO_ASTROBWT # ifdef xmlcore_ALGO_ASTROBWT
out.AddMember("astrobwt-max-size", cpu.astrobwtMaxSize(), allocator); out.AddMember("astrobwt-max-size", cpu.astrobwtMaxSize(), allocator);
# endif # endif
@ -475,7 +475,7 @@ rapidjson::Value xmrig::CpuBackend::toJSON(rapidjson::Document &doc) const
} }
void xmrig::CpuBackend::handleRequest(IApiRequest &request) void xmlcore::CpuBackend::handleRequest(IApiRequest &request)
{ {
if (request.type() == IApiRequest::REQ_SUMMARY) { if (request.type() == IApiRequest::REQ_SUMMARY) {
request.reply().AddMember("hugepages", d_ptr->hugePages(request.version(), request.doc()), request.doc().GetAllocator()); request.reply().AddMember("hugepages", d_ptr->hugePages(request.version(), request.doc()), request.doc().GetAllocator());
@ -484,14 +484,14 @@ void xmrig::CpuBackend::handleRequest(IApiRequest &request)
#endif #endif
#ifdef XMRIG_FEATURE_BENCHMARK #ifdef xmlcore_FEATURE_BENCHMARK
xmrig::Benchmark *xmrig::CpuBackend::benchmark() const xmlcore::Benchmark *xmlcore::CpuBackend::benchmark() const
{ {
return d_ptr->benchmark.get(); return d_ptr->benchmark.get();
} }
void xmrig::CpuBackend::printBenchProgress() const void xmlcore::CpuBackend::printBenchProgress() const
{ {
if (d_ptr->benchmark) { if (d_ptr->benchmark) {
d_ptr->benchmark->printProgress(); d_ptr->benchmark->printProgress();

View file

@ -1,4 +1,4 @@
/* XMRig /* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com> * Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org> * Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones> * Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com> * Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> * Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh> * Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright 2016-2020 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -22,8 +22,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef XMRIG_CPUBACKEND_H #ifndef xmlcore_CPUBACKEND_H
#define XMRIG_CPUBACKEND_H #define xmlcore_CPUBACKEND_H
#include "backend/common/interfaces/IBackend.h" #include "backend/common/interfaces/IBackend.h"
@ -33,7 +33,7 @@
#include <utility> #include <utility>
namespace xmrig { namespace xmlcore {
class Controller; class Controller;
@ -44,7 +44,7 @@ class Miner;
class CpuBackend : public IBackend class CpuBackend : public IBackend
{ {
public: public:
XMRIG_DISABLE_COPY_MOVE_DEFAULT(CpuBackend) xmlcore_DISABLE_COPY_MOVE_DEFAULT(CpuBackend)
CpuBackend(Controller *controller); CpuBackend(Controller *controller);
~CpuBackend() override; ~CpuBackend() override;
@ -65,12 +65,12 @@ protected:
void start(IWorker *worker, bool ready) override; void start(IWorker *worker, bool ready) override;
void stop() override; void stop() override;
# ifdef XMRIG_FEATURE_API # ifdef xmlcore_FEATURE_API
rapidjson::Value toJSON(rapidjson::Document &doc) const override; rapidjson::Value toJSON(rapidjson::Document &doc) const override;
void handleRequest(IApiRequest &request) override; void handleRequest(IApiRequest &request) override;
# endif # endif
# ifdef XMRIG_FEATURE_BENCHMARK # ifdef xmlcore_FEATURE_BENCHMARK
Benchmark *benchmark() const override; Benchmark *benchmark() const override;
void printBenchProgress() const override; void printBenchProgress() const override;
# endif # endif
@ -80,7 +80,7 @@ private:
}; };
} /* namespace xmrig */ } /* namespace xmlcore */
#endif /* XMRIG_CPUBACKEND_H */ #endif /* xmlcore_CPUBACKEND_H */

View file

@ -1,6 +1,6 @@
/* XMRig /* xmlcore
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh> * Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com> * Copyright (c) 2016-2021 xmlcore <https://github.com/xmlcore>, <support@xmlcore.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -26,7 +26,7 @@
#include <algorithm> #include <algorithm>
namespace xmrig { namespace xmlcore {
const char *CpuConfig::kEnabled = "enabled"; const char *CpuConfig::kEnabled = "enabled";
const char *CpuConfig::kField = "cpu"; const char *CpuConfig::kField = "cpu";
@ -38,15 +38,15 @@ const char *CpuConfig::kMemoryPool = "memory-pool";
const char *CpuConfig::kPriority = "priority"; const char *CpuConfig::kPriority = "priority";
const char *CpuConfig::kYield = "yield"; const char *CpuConfig::kYield = "yield";
#ifdef XMRIG_FEATURE_ASM #ifdef xmlcore_FEATURE_ASM
const char *CpuConfig::kAsm = "asm"; const char *CpuConfig::kAsm = "asm";
#endif #endif
#ifdef XMRIG_ALGO_ARGON2 #ifdef xmlcore_ALGO_ARGON2
const char *CpuConfig::kArgon2Impl = "argon2-impl"; const char *CpuConfig::kArgon2Impl = "argon2-impl";
#endif #endif
#ifdef XMRIG_ALGO_ASTROBWT #ifdef xmlcore_ALGO_ASTROBWT
const char *CpuConfig::kAstroBWTMaxSize = "astrobwt-max-size"; const char *CpuConfig::kAstroBWTMaxSize = "astrobwt-max-size";
const char *CpuConfig::kAstroBWTAVX2 = "astrobwt-avx2"; const char *CpuConfig::kAstroBWTAVX2 = "astrobwt-avx2";
#endif #endif
@ -57,13 +57,13 @@ extern template class Threads<CpuThreads>;
} }
bool xmrig::CpuConfig::isHwAES() const bool xmlcore::CpuConfig::isHwAES() const
{ {
return (m_aes == AES_AUTO ? (Cpu::info()->hasAES() ? AES_HW : AES_SOFT) : m_aes) == AES_HW; return (m_aes == AES_AUTO ? (Cpu::info()->hasAES() ? AES_HW : AES_SOFT) : m_aes) == AES_HW;
} }
rapidjson::Value xmrig::CpuConfig::toJSON(rapidjson::Document &doc) const rapidjson::Value xmlcore::CpuConfig::toJSON(rapidjson::Document &doc) const
{ {
using namespace rapidjson; using namespace rapidjson;
auto &allocator = doc.GetAllocator(); auto &allocator = doc.GetAllocator();
@ -82,15 +82,15 @@ rapidjson::Value xmrig::CpuConfig::toJSON(rapidjson::Document &doc) const
obj.AddMember(StringRef(kMaxThreadsHint), m_limit, allocator); obj.AddMember(StringRef(kMaxThreadsHint), m_limit, allocator);
} }
# ifdef XMRIG_FEATURE_ASM # ifdef xmlcore_FEATURE_ASM
obj.AddMember(StringRef(kAsm), m_assembly.toJSON(), allocator); obj.AddMember(StringRef(kAsm), m_assembly.toJSON(), allocator);
# endif # endif
# ifdef XMRIG_ALGO_ARGON2 # ifdef xmlcore_ALGO_ARGON2
obj.AddMember(StringRef(kArgon2Impl), m_argon2Impl.toJSON(), allocator); obj.AddMember(StringRef(kArgon2Impl), m_argon2Impl.toJSON(), allocator);
# endif # endif
# ifdef XMRIG_ALGO_ASTROBWT # ifdef xmlcore_ALGO_ASTROBWT
obj.AddMember(StringRef(kAstroBWTMaxSize), m_astrobwtMaxSize, allocator); obj.AddMember(StringRef(kAstroBWTMaxSize), m_astrobwtMaxSize, allocator);
obj.AddMember(StringRef(kAstroBWTAVX2), m_astrobwtAVX2, allocator); obj.AddMember(StringRef(kAstroBWTAVX2), m_astrobwtAVX2, allocator);
# endif # endif
@ -101,13 +101,13 @@ rapidjson::Value xmrig::CpuConfig::toJSON(rapidjson::Document &doc) const
} }
size_t xmrig::CpuConfig::memPoolSize() const size_t xmlcore::CpuConfig::memPoolSize() const
{ {
return m_memoryPool < 0 ? std::max(Cpu::info()->threads(), Cpu::info()->L3() >> 21) : m_memoryPool; return m_memoryPool < 0 ? std::max(Cpu::info()->threads(), Cpu::info()->L3() >> 21) : m_memoryPool;
} }
std::vector<xmrig::CpuLaunchData> xmrig::CpuConfig::get(const Miner *miner, const Algorithm &algorithm) const std::vector<xmlcore::CpuLaunchData> xmlcore::CpuConfig::get(const Miner *miner, const Algorithm &algorithm) const
{ {
if (algorithm.family() == Algorithm::KAWPOW) { if (algorithm.family() == Algorithm::KAWPOW) {
return {}; return {};
@ -131,7 +131,7 @@ std::vector<xmrig::CpuLaunchData> xmrig::CpuConfig::get(const Miner *miner, cons
} }
void xmrig::CpuConfig::read(const rapidjson::Value &value) void xmlcore::CpuConfig::read(const rapidjson::Value &value)
{ {
if (value.IsObject()) { if (value.IsObject()) {
m_enabled = Json::getBool(value, kEnabled, m_enabled); m_enabled = Json::getBool(value, kEnabled, m_enabled);
@ -144,15 +144,15 @@ void xmrig::CpuConfig::read(const rapidjson::Value &value)
setMemoryPool(Json::getValue(value, kMemoryPool)); setMemoryPool(Json::getValue(value, kMemoryPool));
setPriority(Json::getInt(value, kPriority, -1)); setPriority(Json::getInt(value, kPriority, -1));
# ifdef XMRIG_FEATURE_ASM # ifdef xmlcore_FEATURE_ASM
m_assembly = Json::getValue(value, kAsm); m_assembly = Json::getValue(value, kAsm);
# endif # endif
# ifdef XMRIG_ALGO_ARGON2 # ifdef xmlcore_ALGO_ARGON2
m_argon2Impl = Json::getString(value, kArgon2Impl); m_argon2Impl = Json::getString(value, kArgon2Impl);
# endif # endif
# ifdef XMRIG_ALGO_ASTROBWT # ifdef xmlcore_ALGO_ASTROBWT
const auto& astroBWTMaxSize = Json::getValue(value, kAstroBWTMaxSize); const auto& astroBWTMaxSize = Json::getValue(value, kAstroBWTMaxSize);
if (astroBWTMaxSize.IsNull() || !astroBWTMaxSize.IsInt()) { if (astroBWTMaxSize.IsNull() || !astroBWTMaxSize.IsInt()) {
m_shouldSave = true; m_shouldSave = true;
@ -185,7 +185,7 @@ void xmrig::CpuConfig::read(const rapidjson::Value &value)
} }
void xmrig::CpuConfig::generate() void xmlcore::CpuConfig::generate()
{ {
if (!isEnabled() || m_threads.has("*")) { if (!isEnabled() || m_threads.has("*")) {
return; return;
@ -193,19 +193,19 @@ void xmrig::CpuConfig::generate()
size_t count = 0; size_t count = 0;
count += xmrig::generate<Algorithm::CN>(m_threads, m_limit); count += xmlcore::generate<Algorithm::CN>(m_threads, m_limit);
count += xmrig::generate<Algorithm::CN_LITE>(m_threads, m_limit); count += xmlcore::generate<Algorithm::CN_LITE>(m_threads, m_limit);
count += xmrig::generate<Algorithm::CN_HEAVY>(m_threads, m_limit); count += xmlcore::generate<Algorithm::CN_HEAVY>(m_threads, m_limit);
count += xmrig::generate<Algorithm::CN_PICO>(m_threads, m_limit); count += xmlcore::generate<Algorithm::CN_PICO>(m_threads, m_limit);
count += xmrig::generate<Algorithm::RANDOM_X>(m_threads, m_limit); count += xmlcore::generate<Algorithm::RANDOM_X>(m_threads, m_limit);
count += xmrig::generate<Algorithm::ARGON2>(m_threads, m_limit); count += xmlcore::generate<Algorithm::ARGON2>(m_threads, m_limit);
count += xmrig::generate<Algorithm::ASTROBWT>(m_threads, m_limit); count += xmlcore::generate<Algorithm::ASTROBWT>(m_threads, m_limit);
m_shouldSave |= count > 0; m_shouldSave |= count > 0;
} }
void xmrig::CpuConfig::setAesMode(const rapidjson::Value &value) void xmlcore::CpuConfig::setAesMode(const rapidjson::Value &value)
{ {
if (value.IsBool()) { if (value.IsBool()) {
m_aes = value.GetBool() ? AES_HW : AES_SOFT; m_aes = value.GetBool() ? AES_HW : AES_SOFT;
@ -216,7 +216,7 @@ void xmrig::CpuConfig::setAesMode(const rapidjson::Value &value)
} }
void xmrig::CpuConfig::setHugePages(const rapidjson::Value &value) void xmlcore::CpuConfig::setHugePages(const rapidjson::Value &value)
{ {
if (value.IsBool()) { if (value.IsBool()) {
m_hugePageSize = value.GetBool() ? kDefaultHugePageSizeKb : 0U; m_hugePageSize = value.GetBool() ? kDefaultHugePageSizeKb : 0U;
@ -229,7 +229,7 @@ void xmrig::CpuConfig::setHugePages(const rapidjson::Value &value)
} }
void xmrig::CpuConfig::setMemoryPool(const rapidjson::Value &value) void xmlcore::CpuConfig::setMemoryPool(const rapidjson::Value &value)
{ {
if (value.IsBool()) { if (value.IsBool()) {
m_memoryPool = value.GetBool() ? -1 : 0; m_memoryPool = value.GetBool() ? -1 : 0;

Some files were not shown because too many files have changed in this diff Show more