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
- [#2080](https://github.com/xmrig/xmrig/pull/2080) Fixed compile error in Termux.
- [#2089](https://github.com/xmrig/xmrig/pull/2089) Optimized CryptoNight-Heavy for Zen3, 7-8% speedup.
- [#2080](https://github.com/xmlcore/xmlcore/pull/2080) Fixed compile error in Termux.
- [#2089](https://github.com/xmlcore/xmlcore/pull/2089) Optimized CryptoNight-Heavy for Zen3, 7-8% speedup.
# v6.8.1
- [#2064](https://github.com/xmrig/xmrig/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.
- [#2067](https://github.com/xmrig/xmrig/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.
- [#2077](https://github.com/xmrig/xmrig/pull/2077) Fixed `illegal instruction` crash on ARM.
- [#2064](https://github.com/xmlcore/xmlcore/pull/2064) Added documentation for config.json CPU options.
- [#2066](https://github.com/xmlcore/xmlcore/issues/2066) Fixed AMD GPUs health data readings on Linux.
- [#2067](https://github.com/xmlcore/xmlcore/pull/2067) Fixed compilation error when RandomX and Argon2 are disabled.
- [#2076](https://github.com/xmlcore/xmlcore/pull/2076) Added support for flexible huge page sizes on Linux.
- [#2077](https://github.com/xmlcore/xmlcore/pull/2077) Fixed `illegal instruction` crash on ARM.
# 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 new HTTP API endpoint: `GET /2/dmi`.
- Added new command line option `--no-dmi` or config option `"dmi"`.
- Added new CMake option `-DWITH_DMI=OFF`.
- [#2057](https://github.com/xmrig/xmrig/pull/2057) Improved MSR subsystem code quality.
- [#2058](https://github.com/xmrig/xmrig/pull/2058) RandomX JIT x86: removed unnecessary instructions.
- [#2057](https://github.com/xmlcore/xmlcore/pull/2057) Improved MSR subsystem code quality.
- [#2058](https://github.com/xmlcore/xmlcore/pull/2058) RandomX JIT x86: removed unnecessary instructions.
# 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
- [#1995](https://github.com/xmrig/xmrig/issues/1995) Fixed log initialization.
- [#1998](https://github.com/xmrig/xmrig/pull/1998) Added hashrate in the benchmark finished message.
- [#2009](https://github.com/xmrig/xmrig/pull/2009) AstroBWT OpenCL fixes.
- [#2028](https://github.com/xmrig/xmrig/pull/2028) RandomX x86 JIT: removed redundant `CFROUND`.
- [#1995](https://github.com/xmlcore/xmlcore/issues/1995) Fixed log initialization.
- [#1998](https://github.com/xmlcore/xmlcore/pull/1998) Added hashrate in the benchmark finished message.
- [#2009](https://github.com/xmlcore/xmlcore/pull/2009) AstroBWT OpenCL fixes.
- [#2028](https://github.com/xmlcore/xmlcore/pull/2028) RandomX x86 JIT: removed redundant `CFROUND`.
# v6.7.0
- **[#1991](https://github.com/xmrig/xmrig/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.**
- [#1964](https://github.com/xmrig/xmrig/pull/1964) Cleanup and refactoring.
- [#1966](https://github.com/xmrig/xmrig/pull/1966) Removed libcpuid support.
- [#1968](https://github.com/xmrig/xmrig/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.
- [#1977](https://github.com/xmrig/xmrig/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`.
- [#1980](https://github.com/xmrig/xmrig/pull/1980) Fixed build on gcc 11.
- [#1989](https://github.com/xmrig/xmrig/pull/1989) Fixed broken Dero solo mining.
- **[#1991](https://github.com/xmlcore/xmlcore/issues/1991) Added Apple M1 processor support.**
- **[#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/xmlcore/xmlcore/pull/1964) Cleanup and refactoring.
- [#1966](https://github.com/xmlcore/xmlcore/pull/1966) Removed libcpuid support.
- [#1968](https://github.com/xmlcore/xmlcore/pull/1968) Added virtual machine detection.
- [#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/xmlcore/xmlcore/pull/1977) Fixed: secure JIT and huge pages are incompatible on Windows.
- [#1979](https://github.com/xmlcore/xmlcore/pull/1979) Term `x64` replaced to `64-bit`.
- [#1980](https://github.com/xmlcore/xmlcore/pull/1980) Fixed build on gcc 11.
- [#1989](https://github.com/xmlcore/xmlcore/pull/1989) Fixed broken Dero solo mining.
# v6.6.2
- [#1958](https://github.com/xmrig/xmrig/pull/1958) Added example mining scripts to help new miners.
- [#1959](https://github.com/xmrig/xmrig/pull/1959) Optimized JIT compiler.
- [#1960](https://github.com/xmrig/xmrig/pull/1960) Fixed RandomX init when switching to other algo and back.
- [#1958](https://github.com/xmlcore/xmlcore/pull/1958) Added example mining scripts to help new miners.
- [#1959](https://github.com/xmlcore/xmlcore/pull/1959) Optimized JIT compiler.
- [#1960](https://github.com/xmlcore/xmlcore/pull/1960) Fixed RandomX init when switching to other algo and back.
# v6.6.1
- 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.
# 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
- [#1935](https://github.com/xmrig/xmrig/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.
- [#1939](https://github.com/xmrig/xmrig/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/xmrig/xmrig/pull/1942) Fixed alignment modification in memory pool.
- [#1944](https://github.com/xmrig/xmrig/pull/1944) Updated `randomx_boost.sh` with new MSR mod.
- [#1935](https://github.com/xmlcore/xmlcore/pull/1935) Separate MSR mod for Zen/Zen2 and Zen3.
- [#1937](https://github.com/xmlcore/xmlcore/issues/1937) Print path to existing WinRing0 service without verbose option.
- [#1939](https://github.com/xmlcore/xmlcore/pull/1939) Fixed build with gcc 4.8.
- [#1941](https://github.com/xmlcore/xmlcore/pull/1941) Added CPUID info to JSON report.
- [#1941](https://github.com/xmlcore/xmlcore/pull/1942) Fixed alignment modification in memory pool.
- [#1944](https://github.com/xmlcore/xmlcore/pull/1944) Updated `randomx_boost.sh` with new MSR mod.
- Added `250K` and `500K` offline benchmarks.
# 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.
- [#1918](https://github.com/xmrig/xmrig/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.
- [#1929](https://github.com/xmrig/xmrig/issues/1929) Fixed build without HTTP.
- [#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/xmlcore/xmlcore/issues/1918) Fixed 1GB huge pages support on ARMv8.
- [#1926](https://github.com/xmlcore/xmlcore/pull/1926) Fixed compilation on ARMv8 with GCC 9.3.0.
- [#1929](https://github.com/xmlcore/xmlcore/issues/1929) Fixed build without HTTP.
# 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`.
- [#1912](https://github.com/xmrig/xmrig/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.
- [#1912](https://github.com/xmlcore/xmlcore/pull/1912) Fixed MSR kernel module warning with new Linux kernels.
- [#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.
- Removed legacy CUDA plugin API.
# v6.4.0
- [#1862](https://github.com/xmrig/xmrig/pull/1862) **RandomX: removed `rx/loki` algorithm.**
- [#1890](https://github.com/xmrig/xmrig/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).**
- [#1864](https://github.com/xmrig/xmrig/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.
- [#1872](https://github.com/xmrig/xmrig/pull/1872) RandomX: fixed `randomx_create_vm` call.
- [#1875](https://github.com/xmrig/xmrig/pull/1875) RandomX: fixed crash on x86.
- [#1876](https://github.com/xmrig/xmrig/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.
- [#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.
- [#1885](https://github.com/xmrig/xmrig/pull/1885) Added more precise hashrate calculation.
- [#1889](https://github.com/xmrig/xmrig/pull/1889) Fixed libuv performance issue on Linux.
- [#1862](https://github.com/xmlcore/xmlcore/pull/1862) **RandomX: removed `rx/loki` algorithm.**
- [#1890](https://github.com/xmlcore/xmlcore/pull/1890) **Added `argon2/chukwav2` algorithm.**
- [#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/xmlcore/xmlcore/pull/1864) RandomX: improved software AES performance.
- [#1870](https://github.com/xmlcore/xmlcore/pull/1870) RandomX: fixed unexpected resume due to disconnect during dataset init.
- [#1872](https://github.com/xmlcore/xmlcore/pull/1872) RandomX: fixed `randomx_create_vm` call.
- [#1875](https://github.com/xmlcore/xmlcore/pull/1875) RandomX: fixed crash on x86.
- [#1876](https://github.com/xmlcore/xmlcore/pull/1876) RandomX: added `huge-pages-jit` config parameter.
- [#1881](https://github.com/xmlcore/xmlcore/pull/1881) Fixed possible race condition in hashrate counting code.
- [#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/xmlcore/xmlcore/pull/1885) Added more precise hashrate calculation.
- [#1889](https://github.com/xmlcore/xmlcore/pull/1889) Fixed libuv performance issue on Linux.
# 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`.
- [#1846](https://github.com/xmrig/xmrig/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.
- [#1850](https://github.com/xmrig/xmrig/pull/1850) [#1852](https://github.com/xmrig/xmrig/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.
- [#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/xmlcore/xmlcore/pull/1846) KawPow: fixed OpenCL memory leak.
- [#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/xmlcore/xmlcore/pull/1850) [#1852](https://github.com/xmlcore/xmlcore/pull/1852) General code improvements.
- [#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
- [#1823](https://github.com/xmrig/xmrig/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.
- [#1828](https://github.com/xmrig/xmrig/pull/1828) RandomX: added SSE4.1-optimized Blake2b.
- [#1830](https://github.com/xmrig/xmrig/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.
- [#1840](https://github.com/xmrig/xmrig/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.
- [#1842](https://github.com/xmrig/xmrig/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.
- [#1823](https://github.com/xmlcore/xmlcore/pull/1823) RandomX: added new option `scratchpad_prefetch_mode`.
- [#1827](https://github.com/xmlcore/xmlcore/pull/1827) [#1831](https://github.com/xmlcore/xmlcore/pull/1831) Improved nonce iteration performance.
- [#1828](https://github.com/xmlcore/xmlcore/pull/1828) RandomX: added SSE4.1-optimized Blake2b.
- [#1830](https://github.com/xmlcore/xmlcore/pull/1830) RandomX: added performance profiler (for developers).
- [#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/xmlcore/xmlcore/pull/1840) RandomX: moved more stuff to compile time, small x86 JIT compiler speedup.
- [#1841](https://github.com/xmlcore/xmlcore/pull/1841) Fixed Cryptonight OpenCL for AMD 20.7.2 drivers.
- [#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/xmlcore/xmlcore/pull/1843) RandomX: improved performance of GCC compiled binaries.
# v6.3.3
- [#1817](https://github.com/xmrig/xmrig/pull/1817) Fixed self-select login sequence.
- Added brand new [build from source](https://xmrig.com/docs/miner/build) documentation.
- [#1817](https://github.com/xmlcore/xmlcore/pull/1817) Fixed self-select login sequence.
- 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`).
- Generic Linux download `xenial-x64` renamed to `linux-x64`.
- Builds without SSL/TLS support are no longer provided.
@ -123,227 +123,227 @@
- Fixed colors on macOS.
# 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.
- 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.
- [#1806](https://github.com/xmrig/xmrig/pull/1806) Fixed macOS battery detection.
- [#1809](https://github.com/xmrig/xmrig/issues/1809) Improved auto configuration on ARM CPUs.
- [#1806](https://github.com/xmlcore/xmlcore/pull/1806) Fixed macOS battery detection.
- [#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.
# 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`.
# v6.3.0
- [#1771](https://github.com/xmrig/xmrig/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.
- [#1777](https://github.com/xmrig/xmrig/pull/1777) Added support for upcoming Haven offshore fork.
- [#1780](https://github.com/xmrig/xmrig/pull/1780) CryptoNight OpenCL: fix for long input data.
- [#1771](https://github.com/xmlcore/xmlcore/pull/1771) Adopted new SSE2NEON and reduced ARM-specific changes.
- [#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/xmlcore/xmlcore/pull/1777) Added support for upcoming Haven offshore fork.
- [#1780](https://github.com/xmlcore/xmlcore/pull/1780) CryptoNight OpenCL: fix for long input data.
# v6.2.3
- [#1745](https://github.com/xmrig/xmrig/pull/1745) AstroBWT: fixed OpenCL compilation on some systems.
- [#1749](https://github.com/xmrig/xmrig/pull/1749) KawPow: optimized CPU share verification.
- [#1752](https://github.com/xmrig/xmrig/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.
- [#1756](https://github.com/xmrig/xmrig/issues/1756) Added results and connection reports.
- [#1759](https://github.com/xmrig/xmrig/pull/1759) KawPow: fixed DAG initialization on slower AMD GPUs.
- [#1763](https://github.com/xmrig/xmrig/pull/1763) KawPow: fixed rare duplicate share errors.
- [#1766](https://github.com/xmrig/xmrig/pull/1766) RandomX: small speedup on Ryzen CPUs.
- [#1745](https://github.com/xmlcore/xmlcore/pull/1745) AstroBWT: fixed OpenCL compilation on some systems.
- [#1749](https://github.com/xmlcore/xmlcore/pull/1749) KawPow: optimized CPU share verification.
- [#1752](https://github.com/xmlcore/xmlcore/pull/1752) RandomX: added error message when MSR mod fails.
- [#1754](https://github.com/xmlcore/xmlcore/issues/1754) Fixed GPU health readings for pre Vega GPUs on Linux.
- [#1756](https://github.com/xmlcore/xmlcore/issues/1756) Added results and connection reports.
- [#1759](https://github.com/xmlcore/xmlcore/pull/1759) KawPow: fixed DAG initialization on slower AMD GPUs.
- [#1763](https://github.com/xmlcore/xmlcore/pull/1763) KawPow: fixed rare duplicate share errors.
- [#1766](https://github.com/xmlcore/xmlcore/pull/1766) RandomX: small speedup on Ryzen CPUs.
# 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
- [#1726](https://github.com/xmrig/xmrig/issues/1726) Fixed detection of AVX2/AVX512.
- [#1728](https://github.com/xmrig/xmrig/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.
- [#1730](https://github.com/xmrig/xmrig/pull/1730) Improved displaying information for compute errors on GPUs.
- [#1732](https://github.com/xmrig/xmrig/pull/1732) Fixed NiceHash disconnects for KawPow.
- [#1726](https://github.com/xmlcore/xmlcore/issues/1726) Fixed detection of AVX2/AVX512.
- [#1728](https://github.com/xmlcore/xmlcore/issues/1728) Fixed, 32 bit Windows builds was crash on start.
- [#1729](https://github.com/xmlcore/xmlcore/pull/1729) Fixed KawPow crash on old CPUs.
- [#1730](https://github.com/xmlcore/xmlcore/pull/1730) Improved displaying information for compute errors on GPUs.
- [#1732](https://github.com/xmlcore/xmlcore/pull/1732) Fixed NiceHash disconnects for KawPow.
- Fixed AMD GPU health (temperatures/power/clocks/fans) readings on Linux.
# v6.2.0-beta
- [#1717](https://github.com/xmrig/xmrig/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.
- [#1720](https://github.com/xmrig/xmrig/pull/1720) Fixed broken CryptoNight algorithms family with gcc 10.1.
- [#1717](https://github.com/xmlcore/xmlcore/pull/1717) Added new algorithm `cn/ccx` for Conceal.
- [#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/xmlcore/xmlcore/pull/1720) Fixed broken CryptoNight algorithms family with gcc 10.1.
# v6.0.1-beta
- [#1708](https://github.com/xmrig/xmrig/issues/1708) Added `title` option.
- [#1711](https://github.com/xmrig/xmrig/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.
- [#1708](https://github.com/xmlcore/xmlcore/issues/1708) Added `title` option.
- [#1711](https://github.com/xmlcore/xmlcore/pull/1711) [cuda] Print errors from KawPow DAG initialization.
- [#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
- [#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.
- Default donation level reduced to 1% but you still can increase it if you like.
# v5.11.3
- [#1718](https://github.com/xmrig/xmrig/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.
- [#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/xmlcore/xmlcore/pull/1720) Fixed broken CryptoNight algorithms family with gcc 10.1.
# v5.11.2
- [#1664](https://github.com/xmrig/xmrig/pull/1664) Improved JSON config error reporting.
- [#1668](https://github.com/xmrig/xmrig/pull/1668) Optimized RandomX dataset initialization.
- [#1675](https://github.com/xmrig/xmrig/pull/1675) Fixed cross-compiling on Linux.
- [#1664](https://github.com/xmlcore/xmlcore/pull/1664) Improved JSON config error reporting.
- [#1668](https://github.com/xmlcore/xmlcore/pull/1668) Optimized RandomX dataset initialization.
- [#1675](https://github.com/xmlcore/xmlcore/pull/1675) Fixed cross-compiling on Linux.
- 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.
# v5.11.1
- [#1652](https://github.com/xmrig/xmrig/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.
- [#1654](https://github.com/xmrig/xmrig/issues/1654) Fixed build with LibreSSL.
- [#1652](https://github.com/xmlcore/xmlcore/pull/1652) Up to 1% RandomX perfomance improvement on recent AMD CPUs.
- [#1306](https://github.com/xmlcore/xmlcore/issues/1306) Fixed possible double connection to a pool.
- [#1654](https://github.com/xmlcore/xmlcore/issues/1654) Fixed build with LibreSSL.
# 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).**
- [#1605](https://github.com/xmrig/xmrig/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).
- [#1641](https://github.com/xmrig/xmrig/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.
- **[#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/xmlcore/xmlcore/pull/1605) Fixed AstroBWT OpenCL for NVIDIA GPUs.
- [#1635](https://github.com/xmlcore/xmlcore/pull/1635) Added pooled memory allocation of RandomX VMs (+0.5% speedup on Zen2).
- [#1641](https://github.com/xmlcore/xmlcore/pull/1641) RandomX JIT refactoring, smaller memory footprint and a bit faster overall.
- [#1643](https://github.com/xmlcore/xmlcore/issues/1643) Fixed build on CentOS 7.
# v5.10.0
- [#1602](https://github.com/xmrig/xmrig/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.
- [#1592](https://github.com/xmrig/xmrig/pull/1592) Added AVX2 optimized code for AstroBWT algorithm.
- [#1602](https://github.com/xmlcore/xmlcore/pull/1602) Added AMD GPUs support for AstroBWT algorithm.
- [#1590](https://github.com/xmlcore/xmlcore/pull/1590) MSR mod automatically deactivated after switching from RandomX algorithms.
- [#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`.
- [#1596](https://github.com/xmrig/xmrig/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.
- [#1596](https://github.com/xmlcore/xmlcore/issues/1596) Major TLS (Transport Layer Security) subsystem update.
- 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.
- Added command line option `--data-dir`.
# 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"`.
- [#1584](https://github.com/xmrig/xmrig/pull/1584) Fixed invalid AstroBWT hashes after algorithm switching.
- [#1585](https://github.com/xmrig/xmrig/issues/1585) Fixed build without HTTP support.
- [#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/xmlcore/xmlcore/pull/1584) Fixed invalid AstroBWT hashes after algorithm switching.
- [#1585](https://github.com/xmlcore/xmlcore/issues/1585) Fixed build without HTTP support.
- Added command line option `--astrobwt-max-size`.
# 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`.
- [#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
- [#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
- [#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
- **Added SOCKS5 proxies support for Tor https://xmrig.com/docs/miner/tor.**
- [#377](https://github.com/xmrig/xmrig-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.
- **Added SOCKS5 proxies support for Tor https://xmlcore.com/docs/miner/tor.**
- [#377](https://github.com/xmlcore/xmlcore-proxy/issues/377) Fixed duplicate jobs in daemon (solo) mining client.
- [#1560](https://github.com/xmlcore/xmlcore/pull/1560) RandomX 0.3-0.4% speedup depending on CPU.
- Fixed possible crashes in HTTP client.
# v5.6.0
- [#1536](https://github.com/xmrig/xmrig/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.
- [#1551](https://github.com/xmrig/xmrig/pull/1551) Added RandomX JIT for AMD Navi GPUs.
- [#1536](https://github.com/xmlcore/xmlcore/pull/1536) Added workaround for new AMD GPU drivers.
- [#1546](https://github.com/xmlcore/xmlcore/pull/1546) Fixed generic OpenCL code 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).
- Fixed possible nicehash nonce overflow in some conditions.
- Fixed wrong OpenCL platform on macOS, option `platform` now ignored on this OS.
# 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
- [#1500](https://github.com/xmrig/xmrig/pull/1500) Removed unnecessary code from RandomX JIT compiler.
- [#1502](https://github.com/xmrig/xmrig/pull/1502) Optimizations for AMD Bulldozer.
- [#1508](https://github.com/xmrig/xmrig/pull/1508) Added support for BMI2 instructions.
- [#1510](https://github.com/xmrig/xmrig/pull/1510) Optimized `CFROUND` instruction for RandomX.
- [#1520](https://github.com/xmrig/xmrig/pull/1520) Fixed thread affinity.
- [#1500](https://github.com/xmlcore/xmlcore/pull/1500) Removed unnecessary code from RandomX JIT compiler.
- [#1502](https://github.com/xmlcore/xmlcore/pull/1502) Optimizations for AMD Bulldozer.
- [#1508](https://github.com/xmlcore/xmlcore/pull/1508) Added support for BMI2 instructions.
- [#1510](https://github.com/xmlcore/xmlcore/pull/1510) Optimized `CFROUND` instruction for RandomX.
- [#1520](https://github.com/xmlcore/xmlcore/pull/1520) Fixed thread affinity.
# v5.5.1
- [#1469](https://github.com/xmrig/xmrig/issues/1469) Fixed build with gcc 4.8.
- [#1473](https://github.com/xmrig/xmrig/pull/1473) Added RandomX auto-config for mobile Ryzen APUs.
- [#1477](https://github.com/xmrig/xmrig/pull/1477) Fixed build with Clang.
- [#1489](https://github.com/xmrig/xmrig/pull/1489) RandomX JIT compiler tweaks.
- [#1493](https://github.com/xmrig/xmrig/pull/1493) Default value for Intel MSR preset changed to `15`.
- [#1469](https://github.com/xmlcore/xmlcore/issues/1469) Fixed build with gcc 4.8.
- [#1473](https://github.com/xmlcore/xmlcore/pull/1473) Added RandomX auto-config for mobile Ryzen APUs.
- [#1477](https://github.com/xmlcore/xmlcore/pull/1477) Fixed build with Clang.
- [#1489](https://github.com/xmlcore/xmlcore/pull/1489) RandomX JIT compiler tweaks.
- [#1493](https://github.com/xmlcore/xmlcore/pull/1493) Default value for Intel MSR preset changed to `15`.
- Fixed unwanted resume after RandomX dataset change.
# 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.
- [#1445](https://github.com/xmrig/xmrig/pull/1445) Removed `rx/v` algorithm.
- [#1453](https://github.com/xmrig/xmrig/issues/1453) Fixed crash on 32bit systems.
- [#1459](https://github.com/xmrig/xmrig/issues/1459) Fixed crash on very low memory systems.
- [#1465](https://github.com/xmrig/xmrig/pull/1465) Added fix for 1st-gen Ryzen crashes.
- [#1466](https://github.com/xmrig/xmrig/pull/1466) Added `cn-pico/tlo` algorithm.
- [#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/xmlcore/xmlcore/pull/1445) Removed `rx/v` algorithm.
- [#1453](https://github.com/xmlcore/xmlcore/issues/1453) Fixed crash on 32bit systems.
- [#1459](https://github.com/xmlcore/xmlcore/issues/1459) Fixed crash on very low memory systems.
- [#1465](https://github.com/xmlcore/xmlcore/pull/1465) Added fix for 1st-gen Ryzen crashes.
- [#1466](https://github.com/xmlcore/xmlcore/pull/1466) Added `cn-pico/tlo` algorithm.
- Added `--randomx-no-rdmsr` command line option.
- Added console title for Windows with miner name and version.
- On Windows `priority` option now also change base priority.
# v5.4.0
- [#1434](https://github.com/xmrig/xmrig/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.
- [#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.
- [#1423](https://github.com/xmrig/xmrig/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"],`.
- [#1434](https://github.com/xmlcore/xmlcore/pull/1434) Added RandomSFX (`rx/sfx`) algorithm for Safex Cash.
- [#1445](https://github.com/xmlcore/xmlcore/pull/1445) Added RandomV (`rx/v`) algorithm for *new* MoneroV.
- [#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/xmlcore/xmlcore/issues/1423) Fixed conflicts with exists WinRing0 driver service.
- [#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 new config option `"verbose"` and command line option `--verbose`.
# 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).
- Added new [MSR documentation](https://xmrig.com/docs/miner/randomx-optimization-guide/msr).
- [#1418](https://github.com/xmrig/xmrig/pull/1418) Increased stratum send buffer size.
- [#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://xmlcore.com/docs/miner/randomx-optimization-guide/msr).
- [#1418](https://github.com/xmlcore/xmlcore/pull/1418) Increased stratum send buffer size.
# 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).
- 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).
- [#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_xmlcore_520_1gb_pages_msr/) (Linux only).
- Fixed command line option `--randomx-wrmsr` option without parameters.
# 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 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`.
- [#1396](https://github.com/xmrig/xmrig/pull/1396) [#1401](https://github.com/xmrig/xmrig/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.
- [#1386](https://github.com/xmrig/xmrig/issues/1386) Added `priority` option support for RandomX dataset initialization threads.
- [#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/xmlcore/xmlcore/issues/1385) Added `max-threads-hint` 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.
- Windows `msvc` builds now use Visual Studio 2019 instead of 2017.
# 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`.
- [#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
- [#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)
- 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.
- [#1307](https://github.com/xmrig/xmrig/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.
- [#1307](https://github.com/xmlcore/xmlcore/issues/1307) Fixed mining resume after donation round for pools with `self-select` feature.
- [#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 `resources` field to summary API with memory information and load average.
# v5.0.1
- [#1234](https://github.com/xmrig/xmrig/issues/1234) Fixed compatibility with some AMD GPUs.
- [#1284](https://github.com/xmrig/xmrig/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`.
- [#1290](https://github.com/xmrig/xmrig/pull/1290) Fixed 32-bit ARM compilation.
- [#1234](https://github.com/xmlcore/xmlcore/issues/1234) Fixed compatibility with some AMD GPUs.
- [#1284](https://github.com/xmlcore/xmlcore/issues/1284) Fixed build without RandomX.
- [#1285](https://github.com/xmlcore/xmlcore/issues/1285) Added command line options `--cuda-bfactor-hint` and `--cuda-bsleep-hint`.
- [#1290](https://github.com/xmlcore/xmlcore/pull/1290) Fixed 32-bit ARM compilation.
# 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.
- [#1272](https://github.com/xmrig/xmrig/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).
- [#1068](https://github.com/xmrig/xmrig/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.
- [#808](https://github.com/xmrig/xmrig/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.
- [#1175](https://github.com/xmrig/xmrig/issues/1175) Fixed support for systems where total count of NUMA nodes not equal usable nodes count.
- [#1272](https://github.com/xmlcore/xmlcore/pull/1272) Optimized hashrate calculation.
- [#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/xmlcore/xmlcore/pull/1068) Added support for `self-select` stratum protocol extension.
- [#1227](https://github.com/xmlcore/xmlcore/pull/1227) Added new algorithm `rx/arq`, RandomX variant for upcoming ArQmA fork.
- [#808](https://github.com/xmlcore/xmlcore/issues/808#issuecomment-539297156) Added experimental support for persistent memory for CPU mining threads.
- [#1221](https://github.com/xmlcore/xmlcore/issues/1221) Improved RandomX dataset memory usage and initialization speed for NUMA machines.
- [#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`.
- [#1185](https://github.com/xmrig/xmrig/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).
- [#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.xmlcore.info](http://workers.xmlcore.info).
- 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 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.
- [#1172](https://github.com/xmrig/xmrig/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).
- [#1172](https://github.com/xmlcore/xmlcore/issues/1172) **Added OpenCL mining backend.**
- [#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.
# Previous versions

View file

@ -1,5 +1,6 @@
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_CN_LITE "Enable CryptoNight-Lite algorithms family" ON)
@ -88,7 +89,7 @@ set(HEADERS_CRYPTO
src/crypto/common/VirtualMemory.h
)
if (XMRIG_ARM)
if (xmlcore_ARM)
set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/cn/CryptoNight_arm.h)
else()
set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/cn/CryptoNight_x86.h)
@ -107,7 +108,7 @@ set(SOURCES
src/net/Network.cpp
src/net/strategies/DonateStrategy.cpp
src/Summary.cpp
src/xmrig.cpp
src/xmlcore.cpp
)
set(SOURCES_CRYPTO
@ -134,7 +135,7 @@ if (WITH_HWLOC)
)
endif()
if (XMRIG_OS_WIN)
if (xmlcore_OS_WIN)
list(APPEND SOURCES_OS
res/app.rc
src/App_win.cpp
@ -142,7 +143,7 @@ if (XMRIG_OS_WIN)
)
set(EXTRA_LIBS ws2_32 psapi iphlpapi userenv)
elseif (XMRIG_OS_APPLE)
elseif (xmlcore_OS_APPLE)
list(APPEND SOURCES_OS
src/App_unix.cpp
src/crypto/common/VirtualMemory_unix.cpp
@ -155,21 +156,21 @@ else()
src/crypto/common/VirtualMemory_unix.cpp
)
if (XMRIG_OS_ANDROID)
if (xmlcore_OS_ANDROID)
set(EXTRA_LIBS pthread rt dl log)
elseif (XMRIG_OS_LINUX)
elseif (xmlcore_OS_LINUX)
list(APPEND SOURCES_OS
src/crypto/common/LinuxMemory.h
src/crypto/common/LinuxMemory.cpp
)
set(EXTRA_LIBS pthread rt dl)
elseif (XMRIG_OS_FREEBSD)
elseif (xmlcore_OS_FREEBSD)
set(EXTRA_LIBS kvm pthread)
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)
find_package(UV REQUIRED)
@ -183,19 +184,19 @@ include(cmake/OpenSSL.cmake)
include(cmake/asm.cmake)
if (WITH_CN_LITE)
add_definitions(/DXMRIG_ALGO_CN_LITE)
add_definitions(/Dxmlcore_ALGO_CN_LITE)
endif()
if (WITH_CN_HEAVY)
add_definitions(/DXMRIG_ALGO_CN_HEAVY)
add_definitions(/Dxmlcore_ALGO_CN_HEAVY)
endif()
if (WITH_CN_PICO)
add_definitions(/DXMRIG_ALGO_CN_PICO)
add_definitions(/Dxmlcore_ALGO_CN_PICO)
endif()
if (WITH_EMBEDDED_CONFIG)
add_definitions(/DXMRIG_FEATURE_EMBEDDED_CONFIG)
add_definitions(/Dxmlcore_FEATURE_EMBEDDED_CONFIG)
endif()
include(src/hw/api/api.cmake)
@ -209,8 +210,8 @@ if (WITH_DEBUG_LOG)
add_definitions(/DAPP_DEBUG)
endif()
add_executable(${CMAKE_PROJECT_NAME} ${HEADERS} ${SOURCES} ${SOURCES_OS} ${HEADERS_CRYPTO} ${SOURCES_CRYPTO} ${SOURCES_SYSLOG} ${TLS_SOURCES} ${XMRIG_ASM_SOURCES})
target_link_libraries(${CMAKE_PROJECT_NAME} ${XMRIG_ASM_LIBRARY} ${OPENSSL_LIBRARIES} ${UV_LIBRARIES} ${EXTRA_LIBS} ${CPUID_LIB} ${ARGON2_LIBRARY} ${ETHASH_LIBRARY})
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} ${xmlcore_ASM_LIBRARY} ${OPENSSL_LIBRARIES} ${UV_LIBRARIES} ${EXTRA_LIBS} ${CPUID_LIB} ${ARGON2_LIBRARY} ${ETHASH_LIBRARY})
if (WIN32)
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/bin/WinRing0/WinRing0x64.sys" $<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 release](https://img.shields.io/github/release/xmrig/xmrig/all.svg)](https://github.com/xmrig/xmrig/releases)
[![GitHub Release Date](https://img.shields.io/github/release-date/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/releases)
[![GitHub license](https://img.shields.io/github/license/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/blob/master/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/xmrig/xmrig.svg)](https://github.com/xmrig/xmrig/network)
[![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/xmlcore/xmlcore/all.svg)](https://github.com/xmlcore/xmlcore/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/xmlcore/xmlcore.svg)](https://github.com/xmlcore/xmlcore/blob/master/LICENSE)
[![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/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
- **CPU** (x64/ARMv8)
- **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
* **[Binary releases](https://github.com/xmrig/xmrig/releases)**
* **[Build from source](https://xmrig.com/docs/miner/build)**
* **[Binary releases](https://github.com/xmlcore/xmlcore/releases)**
* **[Build from source](https://xmlcore.com/docs/miner/build)**
## Usage
The preferred way to configure the miner is the [JSON config file](src/config.json) as it is more flexible and human friendly. The [command line interface](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.
* **[Workers](http://workers.xmrig.info)** helps manage your miners via HTTP API.
* **[Wizard](https://xmlcore.com/wizard)** helps you create initial configuration for the miner.
* **[Workers](http://workers.xmlcore.info)** helps manage your miners via HTTP API.
## Donations
* Default donation 1% (1 minute in 100 minutes) can be increased via option `donate-level` or disabled in source code.
* XMR: `48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD`
## Developers
* **[xmrig](https://github.com/xmrig)**
* **[xmlcore](https://github.com/xmlcore)**
* **[sech1](https://github.com/SChernykh)**
## Contacts
* support@xmrig.com
* [reddit](https://www.reddit.com/user/XMRig/)
* [twitter](https://twitter.com/xmrig_dev)
* support@xmlcore.com
* [reddit](https://www.reddit.com/user/xmlcore/)
* [twitter](https://twitter.com/xmlcore_dev)

View file

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

View file

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

View file

@ -1,5 +1,5 @@
if (WITH_TLS)
set(OPENSSL_ROOT_DIR ${XMRIG_DEPS})
set(OPENSSL_ROOT_DIR ${xmlcore_DEPS})
if (WIN32)
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")
endif()
add_definitions(/DXMRIG_FEATURE_TLS)
add_definitions(/Dxmlcore_FEATURE_TLS)
else()
set(TLS_SOURCES "")
set(OPENSSL_LIBRARIES "")
remove_definitions(/DXMRIG_FEATURE_TLS)
remove_definitions(/Dxmlcore_FEATURE_TLS)
if (WITH_HTTP)
set(TLS_SOURCES ${TLS_SOURCES}

View file

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

View file

@ -1,52 +1,52 @@
if (WITH_ASM AND NOT XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8)
set(XMRIG_ASM_LIBRARY "xmrig-asm")
if (WITH_ASM AND NOT xmlcore_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8)
set(xmlcore_ASM_LIBRARY "xmlcore-asm")
if (CMAKE_C_COMPILER_ID MATCHES MSVC)
enable_language(ASM_MASM)
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/CryptonightR_template.asm"
)
else()
set(XMRIG_ASM_FILES
set(xmlcore_ASM_FILES
"src/crypto/cn/asm/win64/cn_main_loop.asm"
"src/crypto/cn/asm/win64/CryptonightR_template.asm"
)
endif()
set_property(SOURCE ${XMRIG_ASM_FILES} PROPERTY ASM_MASM)
set_property(SOURCE ${xmlcore_ASM_FILES} PROPERTY ASM_MASM)
else()
enable_language(ASM)
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/CryptonightR_template.S"
)
else()
set(XMRIG_ASM_FILES
set(xmlcore_ASM_FILES
"src/crypto/cn/asm/cn_main_loop.S"
"src/crypto/cn/asm/CryptonightR_template.S"
)
endif()
set_property(SOURCE ${XMRIG_ASM_FILES} PROPERTY C)
set_property(SOURCE ${xmlcore_ASM_FILES} PROPERTY C)
endif()
add_library(${XMRIG_ASM_LIBRARY} STATIC ${XMRIG_ASM_FILES})
set(XMRIG_ASM_SOURCES
add_library(${xmlcore_ASM_LIBRARY} STATIC ${xmlcore_ASM_FILES})
set(xmlcore_ASM_SOURCES
src/crypto/common/Assembly.h
src/crypto/common/Assembly.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()
set(XMRIG_ASM_SOURCES "")
set(XMRIG_ASM_LIBRARY "")
set(xmlcore_ASM_SOURCES "")
set(xmlcore_ASM_LIBRARY "")
remove_definitions(/DXMRIG_FEATURE_ASM)
remove_definitions(/Dxmlcore_FEATURE_ASM)
endif()

View file

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

View file

@ -17,31 +17,31 @@ if (NOT ARM_TARGET)
endif()
if (ARM_TARGET AND ARM_TARGET GREATER 6)
set(XMRIG_ARM ON)
add_definitions(/DXMRIG_ARM)
set(xmlcore_ARM ON)
add_definitions(/Dxmlcore_ARM)
message(STATUS "Use ARM_TARGET=${ARM_TARGET} (${CMAKE_SYSTEM_PROCESSOR})")
include(CheckCXXCompilerFlag)
if (ARM_TARGET EQUAL 8)
set(XMRIG_ARMv8 ON)
add_definitions(/DXMRIG_ARMv8)
set(xmlcore_ARMv8 ON)
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)
add_definitions(/DXMRIG_ARM_CRYPTO)
if (xmlcore_ARM_CRYPTO)
add_definitions(/Dxmlcore_ARM_CRYPTO)
set(ARM8_CXX_FLAGS "-march=armv8-a+crypto")
else()
set(ARM8_CXX_FLAGS "-march=armv8-a")
endif()
elseif (ARM_TARGET EQUAL 7)
set(XMRIG_ARMv7 ON)
add_definitions(/DXMRIG_ARMv7)
set(xmlcore_ARMv7 ON)
add_definitions(/Dxmlcore_ARMv7)
endif()
endif()
if (WITH_SSE4_1)
add_definitions(/DXMRIG_FEATURE_SSE4_1)
add_definitions(/Dxmlcore_FEATURE_SSE4_1)
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_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_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_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -flax-vector-conversions")
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_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_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_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -march=${CMAKE_SYSTEM_PROCESSOR}")
else()

View file

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

View file

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

View file

@ -1,5 +1,5 @@
if (WITH_RANDOMX)
add_definitions(/DXMRIG_ALGO_RANDOMX)
add_definitions(/Dxmlcore_ALGO_RANDOMX)
set(WITH_ARGON2 ON)
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.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
src/crypto/randomx/jit_compiler_x86_static.S
src/crypto/randomx/jit_compiler_x86.cpp
)
# cheat because cmake and ccache hate each other
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
src/crypto/randomx/jit_compiler_a64_static.S
src/crypto/randomx/jit_compiler_a64.cpp
@ -94,17 +94,17 @@ if (WITH_RANDOMX)
)
endif()
if (WITH_MSR AND NOT XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8 AND (XMRIG_OS_WIN OR XMRIG_OS_LINUX))
add_definitions(/DXMRIG_FEATURE_MSR)
add_definitions(/DXMRIG_FIX_RYZEN)
if (WITH_MSR AND NOT xmlcore_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8 AND (xmlcore_OS_WIN OR xmlcore_OS_LINUX))
add_definitions(/Dxmlcore_FEATURE_MSR)
add_definitions(/Dxmlcore_FIX_RYZEN)
message("-- WITH_MSR=ON")
if (XMRIG_OS_WIN)
if (xmlcore_OS_WIN)
list(APPEND SOURCES_CRYPTO
src/crypto/rx/RxFix_win.cpp
src/hw/msr/Msr_win.cpp
)
elseif (XMRIG_OS_LINUX)
elseif (xmlcore_OS_LINUX)
list(APPEND SOURCES_CRYPTO
src/crypto/rx/RxFix_linux.cpp
src/hw/msr/Msr_linux.cpp
@ -124,17 +124,17 @@ if (WITH_RANDOMX)
src/hw/msr/MsrItem.cpp
)
else()
remove_definitions(/DXMRIG_FEATURE_MSR)
remove_definitions(/DXMRIG_FIX_RYZEN)
remove_definitions(/Dxmlcore_FEATURE_MSR)
remove_definitions(/Dxmlcore_FIX_RYZEN)
message("-- WITH_MSR=OFF")
endif()
if (WITH_PROFILING)
add_definitions(/DXMRIG_FEATURE_PROFILING)
add_definitions(/Dxmlcore_FEATURE_PROFILING)
list(APPEND HEADERS_CRYPTO src/crypto/rx/Profiler.h)
list(APPEND SOURCES_CRYPTO src/crypto/rx/Profiler.cpp)
endif()
else()
remove_definitions(/DXMRIG_ALGO_RANDOMX)
remove_definitions(/Dxmlcore_ALGO_RANDOMX)
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`.
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
@ -42,7 +42,7 @@ Option `coin` useful for pools without [algorithm negotiation](https://xmrig.com
| `cn/0` | 2 MB | 0.5.0+ | CryptoNight (original). | |
## 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
```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`).
Offical HTTP client for API: http://workers.xmrig.info/
Offical HTTP client for API: http://workers.xmlcore.info/
Example configuration:
@ -28,12 +28,12 @@ Example configuration:
* **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).
* **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.
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

View file

@ -1,11 +1,11 @@
# Embedded benchmark
You can run with XMRig with the following commands:
You can run with xmlcore with the following commands:
```
xmrig --bench=1M
xmrig --bench=10M
xmrig --bench=1M -a rx/wow
xmrig --bench=10M -a rx/wow
xmlcore --bench=1M
xmlcore --bench=10M
xmlcore --bench=1M -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).
@ -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:
```
xmrig --stress
xmrig --stress -a rx/wow
xmlcore --stress
xmlcore --stress -a rx/wow
```
This will require Internet connection and will run indefinitely.

View file

@ -1,106 +1,106 @@
# v4.6.2-beta
- [#1274](https://github.com/xmrig/xmrig/issues/1274) Added `--cuda-devices` command line option.
- [#1277](https://github.com/xmrig/xmrig/pull/1277) Fixed function names for clang on Apple.
- [#1274](https://github.com/xmlcore/xmlcore/issues/1274) Added `--cuda-devices` command line option.
- [#1277](https://github.com/xmlcore/xmlcore/pull/1277) Fixed function names for clang on Apple.
# v4.6.1-beta
- [#1272](https://github.com/xmrig/xmrig/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.
- [#1272](https://github.com/xmlcore/xmlcore/pull/1272) Optimized hashrate calculation.
- [#1273](https://github.com/xmlcore/xmlcore/issues/1273) Fixed crash when use `GET /2/backends` API endpoint with disabled CUDA.
# 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
- 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
- [#1068](https://github.com/xmrig/xmrig/pull/1068) Added support for `self-select` stratum protocol extension.
- [#1240](https://github.com/xmrig/xmrig/pull/1240) Sync with the latest RandomX code.
- [#1241](https://github.com/xmrig/xmrig/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.
- [#1247](https://github.com/xmrig/xmrig/pull/1247) Fixed ARM64 RandomX code alignment.
- [#1248](https://github.com/xmrig/xmrig/pull/1248) Fixed RandomX code cache cleanup on iOS/Darwin.
- [#1068](https://github.com/xmlcore/xmlcore/pull/1068) Added support for `self-select` stratum protocol extension.
- [#1240](https://github.com/xmlcore/xmlcore/pull/1240) Sync with the latest RandomX code.
- [#1241](https://github.com/xmlcore/xmlcore/issues/1241) Fixed regression with colors on old Windows systems.
- [#1243](https://github.com/xmlcore/xmlcore/pull/1243) Fixed incorrect OpenCL memory size detection in some cases.
- [#1247](https://github.com/xmlcore/xmlcore/pull/1247) Fixed ARM64 RandomX code alignment.
- [#1248](https://github.com/xmlcore/xmlcore/pull/1248) Fixed RandomX code cache cleanup on iOS/Darwin.
# v4.3.1-beta
- Fixed regression in v4.3.0, miner didn't create `cn` mining profile with default config example.
# v4.3.0-beta
- [#1227](https://github.com/xmrig/xmrig/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.
- [#1221](https://github.com/xmrig/xmrig/issues/1221) Improved RandomX dataset memory usage and initialization speed for NUMA machines.
- [#1227](https://github.com/xmlcore/xmlcore/pull/1227) Added new algorithm `rx/arq`, RandomX variant for upcoming ArQmA fork.
- [#808](https://github.com/xmlcore/xmlcore/issues/808#issuecomment-539297156) Added experimental support for persistent memory for CPU mining threads.
- [#1221](https://github.com/xmlcore/xmlcore/issues/1221) Improved RandomX dataset memory usage and initialization speed for NUMA machines.
# v4.2.1-beta
- [#1150](https://github.com/xmrig/xmrig/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.
- [#1199](https://github.com/xmrig/xmrig/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.
- [#1150](https://github.com/xmlcore/xmlcore/issues/1150) Fixed build on FreeBSD.
- [#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/xmlcore/xmlcore/issues/1199) Fixed excessive memory allocation for OpenCL threads with low intensity.
- [#1212](https://github.com/xmlcore/xmlcore/issues/1212) Fixed low RandomX performance after fast algorithm switching.
# 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 config option `cpu/max-threads-hint` and command line option `--cpu-max-threads-hint`.
# v4.1.0-beta
- **OpenCL backend disabled by default.**.
- [#1183](https://github.com/xmrig/xmrig/issues/1183) Fixed compatibility with systemd.
- [#1185](https://github.com/xmrig/xmrig/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).
- [#1183](https://github.com/xmlcore/xmlcore/issues/1183) Fixed compatibility with systemd.
- [#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.xmlcore.info](http://workers.xmlcore.info).
- 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`.
- Removed command line option `--http-enabled`, HTTP API enabled automatically if any other `--http-*` option provided.
# v4.0.1-beta
- [#1177](https://github.com/xmrig/xmrig/issues/1177) Fixed compatibility with old AMD drivers.
- [#1180](https://github.com/xmrig/xmrig/issues/1180) Fixed possible duplicated shares after algorithm switching.
- [#1177](https://github.com/xmlcore/xmlcore/issues/1177) Fixed compatibility with old AMD drivers.
- [#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.
- Fixed wrong config file permissions after write (only gcc builds on recent Windows 10 affected).
# v4.0.0-beta
- [#1172](https://github.com/xmrig/xmrig/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).
- [#1172](https://github.com/xmlcore/xmlcore/issues/1172) **Added OpenCL mining backend.**
- [#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.
# v3.2.0
- 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
- [#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).
# v3.1.2
- Many RandomX optimizations and fixes.
- [#1132](https://github.com/xmrig/xmrig/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.
- [#1166](https://github.com/xmrig/xmrig/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.
- [#1128](https://github.com/xmrig/xmrig/issues/1128) Fixed CMake 2.8 compatibility.
- [#1132](https://github.com/xmlcore/xmlcore/issues/1132) Fixed build on CentOS 7.
- [#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/xmlcore/xmlcore/pull/1166) Fixed crash when initialize dataset with big threads count (eg 272).
- [#1168](https://github.com/xmlcore/xmlcore/pull/1168) Optimized loading from scratchpad.
- [#1128](https://github.com/xmlcore/xmlcore/issues/1128) Fixed CMake 2.8 compatibility.
# v3.1.1
- [#1133](https://github.com/xmrig/xmrig/issues/1133) Fixed syslog regression.
- [#1138](https://github.com/xmrig/xmrig/issues/1138) Fixed multiple network bugs.
- [#1141](https://github.com/xmrig/xmrig/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.
- [#1146](https://github.com/xmrig/xmrig/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.
- [#1133](https://github.com/xmlcore/xmlcore/issues/1133) Fixed syslog regression.
- [#1138](https://github.com/xmlcore/xmlcore/issues/1138) Fixed multiple network bugs.
- [#1141](https://github.com/xmlcore/xmlcore/issues/1141) Fixed log in background mode.
- [#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/xmlcore/xmlcore/pull/1146) Fixed race condition in RandomX thread init.
- [#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 command line options for single pool, free order allowed again.
# 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
- **[#1111](https://github.com/xmrig/xmrig/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/).**
- **[#1050](https://github.com/xmrig/xmrig/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**.
- **[#1111](https://github.com/xmlcore/xmlcore/pull/1111) Added RandomX (`rx/test`) algorithm for testing and benchmarking.**
- **[#1036](https://github.com/xmlcore/xmlcore/pull/1036) Added RandomWOW (`rx/wow`) algorithm for [Wownero](http://wownero.org/).**
- **[#1050](https://github.com/xmlcore/xmlcore/pull/1050) Added RandomXL (`rx/loki`) algorithm for [Loki](https://loki.network/).**
- **[#1077](https://github.com/xmlcore/xmlcore/issues/1077) Added NUMA support via hwloc**.
- **Added flexible [multi algorithm](doc/CPU.md) configuration.**
- **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.
- [#314](https://github.com/xmrig/xmrig-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).
- [#1010](https://github.com/xmrig/xmrig/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.
- [#1105](https://github.com/xmrig/xmrig/issues/1105) Improved auto configuration for `cn-pico` algorithm.
- [#257](https://github.com/xmlcore/xmlcore-nvidia/pull/257) New logging subsystem, file and syslog now always without colors.
- [#314](https://github.com/xmlcore/xmlcore-proxy/issues/314) Added donate over proxy feature.
- [#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/xmlcore/xmlcore/pull/1010#issuecomment-482632107) Added daemon support (solo mining).
- [#1066](https://github.com/xmlcore/xmlcore/issues/1066#issuecomment-518080529) Added error message if pool not ready for RandomX.
- [#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 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.
@ -118,37 +118,37 @@
- Information about AVX2 CPU feature how hidden in miner summary.
# 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.
- [#1092](https://github.com/xmrig/xmrig/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.
- [#1105](https://github.com/xmrig/xmrig/issues/1105) Improved auto configuration for `cn-pico` algorithm.
- [#1106](https://github.com/xmrig/xmrig/issues/1106) Fixed `hugepages` field in summary API.
- [#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/xmlcore/xmlcore/issues/1092) Fixed crash if wrong CPU affinity used.
- [#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/xmlcore/xmlcore/issues/1105) Improved auto configuration for `cn-pico` algorithm.
- [#1106](https://github.com/xmlcore/xmlcore/issues/1106) Fixed `hugepages` field in summary API.
- Added alternative short format for CPU threads.
- Changed format for CPU threads with intensity above 1.
- Name for reference RandomX configuration changed to `rx/test` to avoid potential conflicts in future.
# v2.99.4-beta
- [#1062](https://github.com/xmrig/xmrig/issues/1062) Fixed 32 bit support. **32 bit is slow and deprecated**.
- [#1088](https://github.com/xmrig/xmrig/pull/1088) Fixed macOS compilation.
- [#1095](https://github.com/xmrig/xmrig/pull/1095) Fixed compatibility with hwloc 1.10.x.
- [#1062](https://github.com/xmlcore/xmlcore/issues/1062) Fixed 32 bit support. **32 bit is slow and deprecated**.
- [#1088](https://github.com/xmlcore/xmlcore/pull/1088) Fixed macOS compilation.
- [#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.
- Fixed ARM build with hwloc.
# 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.
# 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 dataset initialization speed on Linux if thread affinity was used.
# 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
- [#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`.
- Added [flexible](https://github.com/xmrig/xmrig/blob/evo/doc/CPU.md) multi algorithm configuration.
- [#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/xmlcore/xmlcore/blob/evo/doc/CPU.md) multi algorithm configuration.
- 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.
- Options `av`, `safe` and `max-cpu-usage` removed.
@ -157,7 +157,7 @@
- API endpoint `GET /1/threads` replaced to `GET /2/backends`.
# 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`.
- 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.
# 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
- [#1010](https://github.com/xmrig/xmrig/pull/1010#issuecomment-482632107) Added daemon support (solo mining).
- [#1012](https://github.com/xmrig/xmrig/pull/1012) Fixed compatibility with clang 9.
- [#1010](https://github.com/xmlcore/xmlcore/pull/1010#issuecomment-482632107) Added daemon support (solo mining).
- [#1012](https://github.com/xmlcore/xmlcore/pull/1012) Fixed compatibility with clang 9.
- Config subsystem was rewritten, internally JSON is primary format now.
- Fixed regression, big HTTP responses was truncated.
# 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).
- [#257](https://github.com/xmrig/xmrig-nvidia/pull/257) New logging subsystem, file and syslog now always without colors.
- [#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/xmlcore/xmlcore-nvidia/pull/257) New logging subsystem, file and syslog now always without colors.
# 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 real graceful exit.
# v2.14.4
- [#992](https://github.com/xmrig/xmrig/pull/992) Fixed compilation with Clang 3.5.
- [#1012](https://github.com/xmrig/xmrig/pull/1012) Fixed compilation with Clang 9.0.
- [#992](https://github.com/xmlcore/xmlcore/pull/992) Fixed compilation with Clang 3.5.
- [#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`.
- Fixed MSVC 2019 version detection.
- Removed obsolete automatic variants.
# 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
- **[#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.**
- **[#931](https://github.com/xmrig/xmrig/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/).**
- [#951](https://github.com/xmrig/xmrig/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.
- [#957](https://github.com/xmrig/xmrig/issues/957#issuecomment-468890667) Added support for embedded config.
- [#958](https://github.com/xmrig/xmrig/pull/958) Fixed incorrect user agent on ARM platforms.
- [#968](https://github.com/xmrig/xmrig/pull/968) Optimized `cn/r` algorithm performance.
- **[#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/xmlcore/xmlcore/issues/931) Added new algorithm `cryptonight/zls`, short alias `cn/zls` for [Zelerius Network](https://zelerius.org) fork.**
- **[#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/xmlcore/xmlcore/issues/951#issuecomment-469581529) Fixed crash if AVX was disabled on OS level.
- [#952](https://github.com/xmlcore/xmlcore/issues/952) Fixed compile error on some Linux.
- [#957](https://github.com/xmlcore/xmlcore/issues/957#issuecomment-468890667) Added support for embedded config.
- [#958](https://github.com/xmlcore/xmlcore/pull/958) Fixed incorrect user agent on ARM platforms.
- [#968](https://github.com/xmlcore/xmlcore/pull/968) Optimized `cn/r` algorithm performance.
# 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
- **[#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).**
- [#939](https://github.com/xmrig/xmrig/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.
- **[#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/xmlcore/xmlcore/issues/939) Added support for dynamic (runtime) pools reload.
- [#932](https://github.com/xmlcore/xmlcore/issues/932) Fixed `cn-pico` hashrate drop, regression since v2.11.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
- [#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.
- [#749](https://github.com/xmrig/xmrig/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.
- [#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/xmlcore/xmlcore/issues/749) Added support for detect hardware AES in runtime on ARMv8 platforms.
- [#292](https://github.com/xmlcore/xmlcore/issues/292) Fixed build on ARMv8 platforms if compiler not support hardware AES.
# 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.
# v2.9.4
- [#913](https://github.com/xmrig/xmrig/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.
- [#913](https://github.com/xmlcore/xmlcore/issues/913) Fixed Masari (MSR) support (this update required for upcoming fork).
- [#915](https://github.com/xmlcore/xmlcore/pull/915) Improved security, JIT memory now read-only after patching.
# v2.9.3
- [#909](https://github.com/xmrig/xmrig/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.
- [#909](https://github.com/xmlcore/xmlcore/issues/909) Fixed compile errors on FreeBSD.
- [#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
- [#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
- Restored compatibility with https://stellite.hashvault.pro.
# v2.9.0
- [#899](https://github.com/xmrig/xmrig/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.
- [#839](https://github.com/xmrig/xmrig/issues/839) Fixed FreeBSD compile.
- [#857](https://github.com/xmrig/xmrig/pull/857) Fixed impossible to build for macOS without clang.
- [#899](https://github.com/xmlcore/xmlcore/issues/899) Added support for new algorithm `cn/half` for Masari and Stellite forks.
- [#834](https://github.com/xmlcore/xmlcore/pull/834) Added ASM optimized code for AMD Bulldozer.
- [#839](https://github.com/xmlcore/xmlcore/issues/839) Fixed FreeBSD compile.
- [#857](https://github.com/xmlcore/xmlcore/pull/857) Fixed impossible to build for macOS without clang.
# 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
- [#768](https://github.com/xmrig/xmrig/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.
- [#777](https://github.com/xmrig/xmrig/issues/777) Better report about pool connection issues.
- [#768](https://github.com/xmlcore/xmlcore/issues/768) Fixed build with Visual Studio 2015.
- [#769](https://github.com/xmlcore/xmlcore/issues/769) Fixed regression, some ANSI escape sequences was in log with disabled colors.
- [#777](https://github.com/xmlcore/xmlcore/issues/777) Better report about pool connection issues.
- Simplified checks for ASM auto detection, only AES support necessary.
- Added missing options to `--help` output.
# 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.
- **[#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.
- [#767](https://github.com/xmrig/xmrig/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.
- [#757](https://github.com/xmrig/xmrig/issues/757) Fixed send buffer overflow.
- [#767](https://github.com/xmlcore/xmlcore/issues/767) Added config autosave feature, same with GPU miners.
- [#245](https://github.com/xmlcore/xmlcore-proxy/issues/245) Fixed API ID collision when run multiple miners on same machine.
- [#757](https://github.com/xmlcore/xmlcore/issues/757) Fixed send buffer overflow.
# 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/xao` (original cryptonight with bigger iteration count) variant for **Alloy (XAO)** coin.
- 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
- **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 new detailed hashrate report.
- [#446](https://github.com/xmrig/xmrig/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.
- [#614](https://github.com/xmrig/xmrig/issues/614) Fixed display issue with huge pages percentage when colors disabled.
- [#615](https://github.com/xmrig/xmrig/issues/615) Fixed build without libcpuid.
- [#629](https://github.com/xmrig/xmrig/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.
- [#446](https://github.com/xmlcore/xmlcore/issues/446) Likely fixed SIGBUS error on 32 bit ARM CPUs.
- [#551](https://github.com/xmlcore/xmlcore/issues/551) Fixed `cn-heavy` algorithm on ARMv8.
- [#614](https://github.com/xmlcore/xmlcore/issues/614) Fixed display issue with huge pages percentage when colors disabled.
- [#615](https://github.com/xmlcore/xmlcore/issues/615) Fixed build without libcpuid.
- [#629](https://github.com/xmlcore/xmlcore/pull/629) Fixed file logging with non-seekable files.
- [#672](https://github.com/xmlcore/xmlcore/pull/672) Reverted back `cryptonight-light` and exit if no valid algorithm specified.
# v2.6.2
- [#607](https://github.com/xmrig/xmrig/issues/607) Fixed donation bug.
- [#610](https://github.com/xmrig/xmrig/issues/610) Fixed ARM build.
- [#607](https://github.com/xmlcore/xmlcore/issues/607) Fixed donation bug.
- [#610](https://github.com/xmlcore/xmlcore/issues/610) Fixed ARM build.
# 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`.
- [#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.
- 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.
# 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.**
- [#255](https://github.com/xmrig/xmrig/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.
- [#554](https://github.com/xmrig/xmrig/issues/554) Fixed regression with `print-time` option.
- [#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/xmlcore/xmlcore/issues/563) Low power mode extended to **triple**, **quard** and **penta** modes.
- [#519](https://github.com/xmlcore/xmlcore/issues/519) Fixed high donation levels, improved donation start time randomization.
- [#554](https://github.com/xmlcore/xmlcore/issues/554) Fixed regression with `print-time` option.
# v2.6.0-beta2
- 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`.
- Fixed regressions (v2.6.0-beta1 affected)
- [#494](https://github.com/xmrig/xmrig/issues/494) Command line option `--donate-level` was broken.
- [#502](https://github.com/xmrig/xmrig/issues/502) Build without libmicrohttpd was broken.
- [#494](https://github.com/xmlcore/xmlcore/issues/494) Command line option `--donate-level` 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.
# 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.
- 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.
@ -321,100 +321,100 @@
# 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.
- [#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.
# 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
- [#454](https://github.com/xmrig/xmrig/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.
- [#459](https://github.com/xmrig/xmrig/issues/459) Fixed regression (version 2.5.0 affected) with connection to **xmr.f2pool.com**.
- [#454](https://github.com/xmlcore/xmlcore/issues/454) Fixed build with libmicrohttpd version below v0.9.35.
- [#456](https://github.com/xmlcore/xmlcore/issues/459) Verbose errors related to donation pool was not fully silenced.
- [#459](https://github.com/xmlcore/xmlcore/issues/459) Fixed regression (version 2.5.0 affected) with connection to **xmr.f2pool.com**.
# 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 protocol extension, when use the miner with xmrig-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.
- [#428](https://github.com/xmrig/xmrig/issues/428) Fixed regression (version 2.4.5 affected) with CPU cache size detection.
- Added protocol extension, when use the miner with xmlcore-proxy 2.5+ no more need manually specify `nicehash` option.
- [#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/xmlcore/xmlcore/issues/428) Fixed regression (version 2.4.5 affected) with CPU cache size detection.
# v2.4.5
- [#324](https://github.com/xmrig/xmrig/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`.
- [#385](https://github.com/xmrig/xmrig/pull/385) Up to 20% performance increase for non-AES CPU and fixed Intel Core 2 cache detection.
- [#324](https://github.com/xmlcore/xmlcore/pull/324) Fixed build without libmicrohttpd (CMake cache issue).
- [#341](https://github.com/xmlcore/xmlcore/issues/341) Fixed wrong exit code and added command line option `--dry-run`.
- [#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
- Added libmicrohttpd version to --version output.
- Fixed bug in singal handler, in some cases miner wasn't shutdown properly.
- 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
- [#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).
- [#157](https://github.com/xmrig/xmrig/issues/157) [#196](https://github.com/xmrig/xmrig/issues/196) Fixed Linux compile issues.
- [#184](https://github.com/xmrig/xmrig/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.
- [#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/xmlcore/xmlcore/issues/157) [#196](https://github.com/xmlcore/xmlcore/issues/196) Fixed Linux compile issues.
- [#184](https://github.com/xmlcore/xmlcore/issues/184) Fixed cache size detection for CPUs with disabled Hyper-Threading.
- [#200](https://github.com/xmlcore/xmlcore/issues/200) In some cases miner was doesn't write log to stdout.
# v2.4.2
- [#60](https://github.com/xmrig/xmrig/issues/60) Added FreeBSD support, thanks [vcambur](https://github.com/vcambur).
- [#153](https://github.com/xmrig/xmrig/issues/153) Fixed issues with dwarfpool.com.
- [#60](https://github.com/xmlcore/xmlcore/issues/60) Added FreeBSD support, thanks [vcambur](https://github.com/vcambur).
- [#153](https://github.com/xmlcore/xmlcore/issues/153) Fixed issues with dwarfpool.com.
# 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
- 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.
- libjansson replaced to rapidjson.
- [#98](https://github.com/xmrig/xmrig/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.
- [#108](https://github.com/xmrig/xmrig/issues/108) Silently ignore invalid values for `donate-level` option.
- [#111](https://github.com/xmrig/xmrig/issues/111) Fixed build without AEON support.
- [#98](https://github.com/xmlcore/xmlcore/issues/98) Ignore `keepalive` option with minergate.com and nicehash.com.
- [#101](https://github.com/xmlcore/xmlcore/issues/101) Fixed MSVC 2017 (15.3) compile time version detection.
- [#108](https://github.com/xmlcore/xmlcore/issues/108) Silently ignore invalid values for `donate-level` option.
- [#111](https://github.com/xmlcore/xmlcore/issues/111) Fixed build without AEON support.
# 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
- 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 `--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.
- 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: message about huge pages support successfully enabled on Windows was not shown in release builds.
# 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
- [#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.
- QuickEdit Mode now disabled on Windows.
- Added interactive commands in console window:: **h**ashrate, **p**ause, **r**esume.
- Fixed autoconf mode for AMD FX CPUs.
# 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.
- 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.
- 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
- 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.
# 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
- 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/xmrig/xmrig/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.
- [#20](https://github.com/xmrig/xmrig/issues/20) Fixed `--cpu-affinity` for more than 32 threads.
- [#15](https://github.com/xmlcore/xmlcore/issues/15) Added option `-l, --log-file=FILE` to write log to file.
- [#15](https://github.com/xmlcore/xmlcore/issues/15) Added option `-S, --syslog` to use syslog for logging, Linux only.
- [#18](https://github.com/xmlcore/xmlcore/issues/18) Added nice messages for accepted/rejected shares with diff and network latency.
- [#20](https://github.com/xmlcore/xmlcore/issues/20) Fixed `--cpu-affinity` for more than 32 threads.
- Fixed Windows XP support.
- Fixed regression, option `--no-color` was not fully disable colored 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
- 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 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.
- New hashrate reports, by default every 60 secons.
- Added Microsoft Visual C++ 2015 and 2017 support.
- 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
- 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 `--max-cpu-usage` option for auto CPU configuration mode.
- 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 default pool URL.
@ -456,7 +456,7 @@ Improved miner shutdown, fixed crash on exit for Linux and OS X.
- Added automatic cryptonight self test.
- New software AES algorithm variation. Will be automatically selected if cpu not support AES-NI.
- 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
- 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`).
#### `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](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 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",
"version": "2.6.0-beta3",
"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": {
"brand": "Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz",
"aes": true,

View file

@ -1,5 +1,5 @@
# 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
@ -12,14 +12,14 @@
## Features
* **`-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.
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_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_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_CUDA=OFF`** Disable CUDA backend.
* **`-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
* **`-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).
* **`-DUV_INCLUDE_DIR=<path>`** custom path to libuv headers.
* **`-DUV_LIBRARY=<path>`** custom path to libuv library.

View file

@ -28,7 +28,7 @@
<info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/>
<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">
<info name="CPUVendor" value="AuthenticAMD"/>
<info name="CPUFamilyNumber" value="21"/>

View file

@ -27,7 +27,7 @@
<info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/>
<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">
<latency value="1.000000"/>
<latency value="1.600000"/>

View file

@ -28,7 +28,7 @@
<info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/>
<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">
<info name="CPUVendor" value="AuthenticAMD"/>
<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">
<info name="Backend" value="Windows"/>
<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">
<info name="CPUVendor" value="AuthenticAMD"/>
<info name="CPUFamilyNumber" value="23"/>

View file

@ -24,7 +24,7 @@
<info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/>
<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">
<info name="CPUVendor" value="AuthenticAMD"/>
<info name="CPUFamilyNumber" value="23"/>

View file

@ -28,7 +28,7 @@
<info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/>
<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">
<info name="CPUVendor" value="GenuineIntel"/>
<info name="CPUFamilyNumber" value="6"/>

View file

@ -28,7 +28,7 @@
<info name="HostName" value="host"/>
<info name="Architecture" value="x86_64"/>
<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">
<info name="CPUVendor" value="GenuineIntel"/>
<info name="CPUFamilyNumber" value="6"/>

View file

@ -24,7 +24,7 @@
<info name="HostName" value="sd-146751"/>
<info name="Architecture" value="x86_64"/>
<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">
<info name="CPUVendor" value="GenuineIntel"/>
<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",
"description": "RandomX, CryptoNight and Argon2 miner",
"main": "index.js",
@ -11,13 +11,13 @@
},
"repository": {
"type": "git",
"url": "git+https://github.com/xmrig/xmrig.git"
"url": "git+https://github.com/xmlcore/xmlcore.git"
},
"keywords": [],
"author": "",
"license": "GPLv3",
"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 "FileVersion", APP_VERSION
VALUE "LegalCopyright", APP_COPYRIGHT
VALUE "OriginalFilename", "xmrig.exe"
VALUE "OriginalFilename", "xmlcore.exe"
VALUE "ProductName", APP_NAME
VALUE "ProductVersion", APP_VERSION
END

View file

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

View file

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

View file

@ -1,6 +1,6 @@
#!/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)

View file

@ -24,7 +24,7 @@ function 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('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);
//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' ]));
// 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' ]));
// fs.writeFileSync('kawpow_gen.cl', kawpow);
fs.writeFileSync('kawpow_cl.h', text2h(kawpow, 'xmrig', 'kawpow_cl'));
fs.writeFileSync('kawpow_dag_cl.h', text2h(kawpow_dag, 'xmrig', 'kawpow_dag_cl'));
fs.writeFileSync('kawpow_cl.h', text2h(kawpow, 'xmlcore', 'kawpow_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
::
:: 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:
:: 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.
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

View file

@ -1,7 +1,7 @@
:: Example batch file for mining Monero solo
::
:: 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:
:: 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.
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

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

@ -1,4 +1,4 @@
/* XMRig
/* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* 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
* it under the terms of the GNU General Public License as published by
@ -23,11 +23,11 @@
*/
#ifndef XMRIG_3RDPARTY_ARGON2_H
#define XMRIG_3RDPARTY_ARGON2_H
#ifndef xmlcore_3RDPARTY_ARGON2_H
#define xmlcore_3RDPARTY_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(avx2 "/arch:AVX2" HAVE_AVX2)
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)
add_library(argon2-${FEATURE} STATIC arch/x86_64/lib/argon2-${FEATURE}.c)
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[] = {
{ "x86_64", NULL, fill_segment_default },
{ "SSE2", xmrig_ar2_check_sse2, xmrig_ar2_fill_segment_sse2 },
{ "SSSE3", xmrig_ar2_check_ssse3, xmrig_ar2_fill_segment_ssse3 },
{ "XOP", xmrig_ar2_check_xop, xmrig_ar2_fill_segment_xop },
{ "AVX2", xmrig_ar2_check_avx2, xmrig_ar2_fill_segment_avx2 },
{ "AVX-512F", xmrig_ar2_check_avx512f, xmrig_ar2_fill_segment_avx512f },
{ "SSE2", xmlcore_ar2_check_sse2, xmlcore_ar2_fill_segment_sse2 },
{ "SSSE3", xmlcore_ar2_check_ssse3, xmlcore_ar2_fill_segment_ssse3 },
{ "XOP", xmlcore_ar2_check_xop, xmlcore_ar2_fill_segment_xop },
{ "AVX2", xmlcore_ar2_check_avx2, xmlcore_ar2_fill_segment_avx2 },
{ "AVX-512F", xmlcore_ar2_check_avx512f, xmlcore_ar2_fill_segment_avx512f },
};
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);
}
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 address_block, input_block;
@ -307,7 +307,7 @@ void xmrig_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_posit
* lane.
*/
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 */
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);
int xmrig_ar2_check_avx2(void) { return cpu_flags_has_avx2(); }
int xmlcore_ar2_check_avx2(void) { return cpu_flags_has_avx2(); }
#else
void xmrig_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_avx2(void) { return 0; }
void xmlcore_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position) {}
int xmlcore_ar2_check_avx2(void) { return 0; }
#endif

View file

@ -3,7 +3,7 @@
#include "core.h"
void xmrig_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position);
int xmrig_ar2_check_avx2(void);
void xmlcore_ar2_fill_segment_avx2(const argon2_instance_t *instance, argon2_position_t position);
int xmlcore_ar2_check_avx2(void);
#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);
}
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 address_block, input_block;
@ -292,7 +292,7 @@ void xmrig_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_po
* lane.
*/
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 */
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);
int xmrig_ar2_check_avx512f(void) { return cpu_flags_has_avx512f(); }
int xmlcore_ar2_check_avx512f(void) { return cpu_flags_has_avx512f(); }
#else
void xmrig_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_avx512f(void) { return 0; }
void xmlcore_ar2_fill_segment_avx512f(const argon2_instance_t *instance, argon2_position_t position) {}
int xmlcore_ar2_check_avx512f(void) { return 0; }
#endif

View file

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

View file

@ -100,17 +100,17 @@ static __m128i f(__m128i x, __m128i y)
#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);
}
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
void xmrig_ar2_fill_segment_sse2(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_sse2(void) { return 0; }
void xmlcore_ar2_fill_segment_sse2(const argon2_instance_t *instance, argon2_position_t position) {}
int xmlcore_ar2_check_sse2(void) { return 0; }
#endif

View file

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

View file

@ -112,17 +112,17 @@ static __m128i f(__m128i x, __m128i y)
#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);
}
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
void xmrig_ar2_fill_segment_ssse3(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_ssse3(void) { return 0; }
void xmlcore_ar2_fill_segment_ssse3(const argon2_instance_t *instance, argon2_position_t position) {}
int xmlcore_ar2_check_ssse3(void) { return 0; }
#endif

View file

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

View file

@ -150,7 +150,7 @@ static void fill_segment_128(const argon2_instance_t *instance,
* lane.
*/
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 */
ref_block =

View file

@ -100,17 +100,17 @@ static __m128i f(__m128i x, __m128i y)
#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);
}
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
void xmrig_ar2_fill_segment_xop(const argon2_instance_t *instance, argon2_position_t position) {}
int xmrig_ar2_check_xop(void) { return 0; }
void xmlcore_ar2_fill_segment_xop(const argon2_instance_t *instance, argon2_position_t position) {}
int xmlcore_ar2_check_xop(void) { return 0; }
#endif

View file

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

View file

@ -174,7 +174,7 @@ static void fill_segment_64(const argon2_instance_t *instance,
* lane.
*/
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 */
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,
size_t memory_size) {
/* 1. Validate all inputs */
int result = xmrig_ar2_validate_inputs(context);
int result = xmlcore_ar2_validate_inputs(context);
uint32_t memory_blocks, segment_length;
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
* blocks
*/
result = xmrig_ar2_initialize(&instance, context);
result = xmlcore_ar2_initialize(&instance, context);
if (ARGON2_OK != result) {
return result;
}
/* 4. Filling memory */
result = xmrig_ar2_fill_memory_blocks(&instance);
result = xmlcore_ar2_fill_memory_blocks(&instance);
if (ARGON2_OK != result) {
return result;
}
/* 5. Finalization */
xmrig_ar2_finalize(context, &instance);
xmlcore_ar2_finalize(context, &instance);
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);
if (result != ARGON2_OK) {
xmrig_ar2_clear_internal_memory(out, hashlen);
xmlcore_ar2_clear_internal_memory(out, hashlen);
free(out);
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 (encoded && encodedlen) {
if (encode_string(encoded, encodedlen, &context, type) != ARGON2_OK) {
xmrig_ar2_clear_internal_memory(out, hashlen); /* wipe buffers if error */
xmrig_ar2_clear_internal_memory(encoded, encodedlen);
xmlcore_ar2_clear_internal_memory(out, hashlen); /* wipe buffers if error */
xmlcore_ar2_clear_internal_memory(encoded, encodedlen);
free(out);
return ARGON2_ENCODING_FAIL;
}
}
xmrig_ar2_clear_internal_memory(out, hashlen);
xmlcore_ar2_clear_internal_memory(out, hashlen);
free(out);
return ARGON2_OK;

View file

@ -128,14 +128,14 @@ static void blake2b_init_state(blake2b_state *S)
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);
/* XOR initial state with param block: */
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;
@ -160,7 +160,7 @@ void xmrig_ar2_blake2b_update(blake2b_state *S, const void *in, size_t 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};
unsigned int i;
@ -174,12 +174,12 @@ void xmrig_ar2_blake2b_final(blake2b_state *S, void *out, size_t outlen)
}
memcpy(out, buffer, outlen);
xmrig_ar2_clear_internal_memory(buffer, sizeof(buffer));
xmrig_ar2_clear_internal_memory(S->buf, sizeof(S->buf));
xmrig_ar2_clear_internal_memory(S->h, sizeof(S->h));
xmlcore_ar2_clear_internal_memory(buffer, sizeof(buffer));
xmlcore_ar2_clear_internal_memory(S->buf, sizeof(S->buf));
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;
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);
if (outlen <= BLAKE2B_OUTBYTES) {
xmrig_ar2_blake2b_init(&blake_state, outlen);
xmrig_ar2_blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes));
xmrig_ar2_blake2b_update(&blake_state, in, inlen);
xmrig_ar2_blake2b_final(&blake_state, pout, outlen);
xmlcore_ar2_blake2b_init(&blake_state, outlen);
xmlcore_ar2_blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes));
xmlcore_ar2_blake2b_update(&blake_state, in, inlen);
xmlcore_ar2_blake2b_final(&blake_state, pout, outlen);
} else {
uint32_t toproduce;
uint8_t out_buffer[BLAKE2B_OUTBYTES];
xmrig_ar2_blake2b_init(&blake_state, BLAKE2B_OUTBYTES);
xmrig_ar2_blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes));
xmrig_ar2_blake2b_update(&blake_state, in, inlen);
xmrig_ar2_blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
xmlcore_ar2_blake2b_init(&blake_state, BLAKE2B_OUTBYTES);
xmlcore_ar2_blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes));
xmlcore_ar2_blake2b_update(&blake_state, in, inlen);
xmlcore_ar2_blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
memcpy(pout, out_buffer, BLAKE2B_OUTBYTES / 2);
pout += BLAKE2B_OUTBYTES / 2;
toproduce = (uint32_t)outlen - BLAKE2B_OUTBYTES / 2;
while (toproduce > BLAKE2B_OUTBYTES) {
xmrig_ar2_blake2b_init(&blake_state, BLAKE2B_OUTBYTES);
xmrig_ar2_blake2b_update(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
xmrig_ar2_blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
xmlcore_ar2_blake2b_init(&blake_state, BLAKE2B_OUTBYTES);
xmlcore_ar2_blake2b_update(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
xmlcore_ar2_blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
memcpy(pout, out_buffer, BLAKE2B_OUTBYTES / 2);
pout += BLAKE2B_OUTBYTES / 2;
toproduce -= BLAKE2B_OUTBYTES / 2;
}
xmrig_ar2_blake2b_init(&blake_state, toproduce);
xmrig_ar2_blake2b_update(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
xmrig_ar2_blake2b_final(&blake_state, out_buffer, toproduce);
xmlcore_ar2_blake2b_init(&blake_state, toproduce);
xmlcore_ar2_blake2b_update(&blake_state, out_buffer, BLAKE2B_OUTBYTES);
xmlcore_ar2_blake2b_final(&blake_state, 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;
/* Streaming API */
void xmrig_ar2_blake2b_init(blake2b_state *S, size_t outlen);
void xmrig_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_init(blake2b_state *S, size_t outlen);
void xmlcore_ar2_blake2b_update(blake2b_state *S, const void *in, size_t inlen);
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

View file

@ -77,7 +77,7 @@ static void store_block(void *output, const block *src) {
/***************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 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;
}
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;
xmrig_ar2_clear_internal_memory(instance->memory, memory_size);
xmlcore_ar2_clear_internal_memory(instance->memory, memory_size);
if (instance->keep_memory) {
/* 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)
SecureZeroMemory(v, n);
#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. */
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) {
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) {
block blockhash;
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];
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 */
xmrig_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.v, ARGON2_BLOCK_SIZE);
xmlcore_ar2_clear_internal_memory(blockhash_bytes, ARGON2_BLOCK_SIZE);
}
if (instance->print_internals) {
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:
* 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 (l = 0; l < instance->lanes; ++l) {
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;
}
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) {
return ARGON2_INCORRECT_PARAMETER;
}
@ -271,7 +271,7 @@ int xmrig_ar2_fill_memory_blocks(argon2_instance_t *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) {
return ARGON2_INCORRECT_PARAMETER;
}
@ -398,7 +398,7 @@ int xmrig_ar2_validate_inputs(const argon2_context *context) {
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;
/* Make the first and second block in each lane as G(H0||0||i) or
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 + 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);
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);
}
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) {
blake2b_state BlakeHash;
uint8_t value[sizeof(uint32_t)];
@ -426,70 +426,70 @@ void xmrig_ar2_initial_hash(uint8_t *blockhash, argon2_context *context,
return;
}
xmrig_ar2_blake2b_init(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH);
xmlcore_ar2_blake2b_init(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH);
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);
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);
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);
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);
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);
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);
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) {
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->pwd,
xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->pwd,
context->pwdlen);
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;
}
}
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) {
xmrig_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->salt,
xmlcore_ar2_blake2b_update(&BlakeHash, (const uint8_t *)context->salt,
context->saltlen);
}
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) {
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) {
xmrig_ar2_secure_wipe_memory(context->secret, context->secretlen);
xmlcore_ar2_secure_wipe_memory(context->secret, context->secretlen);
context->secretlen = 0;
}
}
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) {
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];
int result = ARGON2_OK;
@ -499,7 +499,7 @@ int xmrig_ar2_initialize(argon2_instance_t *instance, argon2_context *context) {
/* 1. Memory allocation */
result = xmrig_ar2_allocate_memory(context, instance);
result = xmlcore_ar2_allocate_memory(context, instance);
if (result != ARGON2_OK) {
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 */
/* uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; */
/* Hashing all inputs */
xmrig_ar2_initial_hash(blockhash, context, instance->type);
xmlcore_ar2_initial_hash(blockhash, context, instance->type);
/* 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) {
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
*/
xmrig_ar2_fill_first_blocks(blockhash, instance);
xmlcore_ar2_fill_first_blocks(blockhash, instance);
/* 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;
}

View file

@ -110,7 +110,7 @@ typedef struct Argon2_thread_data {
* @param instance the Argon2 instance
* @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
@ -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 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
* regarding clearing memory. Usually one just calls clear_internal_memory.
* @param mem Pointer to the memory
* @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
* set. If the flag isn't set, this function does nothing.
* @param mem Pointer to the memory
* @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
@ -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
* @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
@ -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
* (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
@ -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
* 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
@ -173,7 +173,7 @@ void xmrig_ar2_initial_hash(uint8_t *blockhash, argon2_context *context, argon2_
* @param blockhash Pointer to the pre-hashing digest
* @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
@ -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
* 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
@ -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
* 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
@ -207,7 +207,7 @@ void xmrig_ar2_finalize(const argon2_context *context, argon2_instance_t *instan
* @param position Current position
* @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
@ -215,6 +215,6 @@ void xmrig_ar2_fill_segment(const argon2_instance_t *instance, argon2_position_t
* @param instance Pointer to the current instance
* @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

View file

@ -323,7 +323,7 @@ int decode_string(argon2_context *ctx, const char *str, argon2_type type) {
ctx->flags = ARGON2_DEFAULT_FLAGS;
/* 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) {
return validation_result;
}
@ -371,7 +371,7 @@ int encode_string(char *dst, size_t dst_len, argon2_context *ctx,
} while ((void)0, 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) {
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);
}

View file

@ -25,8 +25,8 @@
// 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.
#ifndef XMRIG_BASE32_H
#define XMRIG_BASE32_H
#ifndef xmlcore_BASE32_H
#define xmlcore_BASE32_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 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* 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
* 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/>.
*/
#ifndef XMRIG_CL_H
#define XMRIG_CL_H
#ifndef xmlcore_CL_H
#define xmlcore_CL_H
#if defined(__APPLE__)
@ -33,4 +33,4 @@
#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 2012-2014 pooler <pooler@litecoinpool.org>
* 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 2018 Lee Clagett <https://github.com/vtnerd>
* 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
* it under the terms of the GNU General Public License as published by
@ -41,22 +41,22 @@
#include "version.h"
xmrig::App::App(Process *process)
xmlcore::App::App(Process *process)
{
m_controller = std::make_shared<Controller>(process);
}
xmrig::App::~App()
xmlcore::App::~App()
{
Cpu::release();
}
int xmrig::App::exec()
int xmlcore::App::exec()
{
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;
}
@ -94,7 +94,7 @@ int xmrig::App::exec()
}
void xmrig::App::onConsoleCommand(char command)
void xmlcore::App::onConsoleCommand(char command)
{
if (command == 3) {
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)
{
@ -121,7 +121,7 @@ void xmrig::App::onSignal(int signum)
}
void xmrig::App::close()
void xmlcore::App::close()
{
m_signals.reset();
m_console.reset();

View file

@ -1,4 +1,4 @@
/* XMRig
/* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* 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 2018 Lee Clagett <https://github.com/vtnerd>
* 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
* 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/>.
*/
#ifndef XMRIG_APP_H
#define XMRIG_APP_H
#ifndef xmlcore_APP_H
#define xmlcore_APP_H
#include "base/kernel/interfaces/IConsoleListener.h"
@ -35,7 +35,7 @@
#include <memory>
namespace xmrig {
namespace xmlcore {
class Console;
@ -48,7 +48,7 @@ class Signals;
class App : public IConsoleListener, public ISignalListener
{
public:
XMRIG_DISABLE_COPY_MOVE_DEFAULT(App)
xmlcore_DISABLE_COPY_MOVE_DEFAULT(App)
App(Process *process);
~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 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* 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
* it under the terms of the GNU General Public License as published by
@ -34,7 +34,7 @@
#include "core/Controller.h"
bool xmrig::App::background(int &rc)
bool xmlcore::App::background(int &rc)
{
if (!m_controller->isBackground()) {
return false;

View file

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

View file

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

View file

@ -1,4 +1,4 @@
/* XMRig
/* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* 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
* 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/>.
*/
#ifndef XMRIG_SUMMARY_H
#define XMRIG_SUMMARY_H
#ifndef xmlcore_SUMMARY_H
#define xmlcore_SUMMARY_H
namespace xmrig {
namespace xmlcore {
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) 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
* it under the terms of the GNU General Public License as published by
@ -21,13 +21,13 @@
#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)
{
}
void xmrig::GpuWorker::storeStats()
void xmlcore::GpuWorker::storeStats()
{
// Get index which is unused now
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);

View file

@ -1,6 +1,6 @@
/* XMRig
/* xmlcore
* 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
* 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/>.
*/
#ifndef XMRIG_GPUWORKER_H
#define XMRIG_GPUWORKER_H
#ifndef xmlcore_GPUWORKER_H
#define xmlcore_GPUWORKER_H
#include <atomic>
@ -27,7 +27,7 @@
#include "backend/common/Worker.h"
namespace xmrig {
namespace xmlcore {
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) 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
* 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_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++) {
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);
}
rapidjson::Value xmrig::Hashrate::normalize(double d)
rapidjson::Value xmlcore::Hashrate::normalize(double d)
{
return Json::normalize(d, false);
}
#ifdef XMRIG_FEATURE_API
rapidjson::Value xmrig::Hashrate::toJSON(rapidjson::Document &doc) const
#ifdef xmlcore_FEATURE_API
rapidjson::Value xmlcore::Hashrate::toJSON(rapidjson::Document &doc) const
{
using namespace rapidjson;
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;
auto &allocator = doc.GetAllocator();
@ -111,7 +111,7 @@ rapidjson::Value xmrig::Hashrate::toJSON(size_t threadId, rapidjson::Document &d
#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);
if (index >= m_threads) {
@ -122,7 +122,7 @@ double xmrig::Hashrate::hashrate(size_t index, size_t ms) const
uint64_t earliestStamp = 0;
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* 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];
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) 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
* 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/>.
*/
#ifndef XMRIG_HASHRATE_H
#define XMRIG_HASHRATE_H
#ifndef xmlcore_HASHRATE_H
#define xmlcore_HASHRATE_H
#include <cmath>
@ -30,13 +30,13 @@
#include "base/tools/Object.h"
namespace xmrig {
namespace xmlcore {
class Hashrate
{
public:
XMRIG_DISABLE_COPY_MOVE_DEFAULT(Hashrate)
xmlcore_DISABLE_COPY_MOVE_DEFAULT(Hashrate)
enum Intervals : size_t {
ShortInterval = 10000,
@ -56,7 +56,7 @@ public:
static const char *format(double h, char *buf, size_t size);
static rapidjson::Value normalize(double d);
# ifdef XMRIG_FEATURE_API
# ifdef xmlcore_FEATURE_API
rapidjson::Value toJSON(rapidjson::Document &doc) const;
rapidjson::Value toJSON(size_t threadId, rapidjson::Document &doc) const;
# 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 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
* it under the terms of the GNU General Public License as published by
@ -20,7 +20,7 @@
#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;
@ -44,7 +44,7 @@ uint64_t xmrig::HashrateInterpolator::interpolate(uint64_t timeStamp) const
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);

View file

@ -1,6 +1,6 @@
/* XMRig
/* xmlcore
* 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
* 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/>.
*/
#ifndef XMRIG_HASHRATE_INTERPOLATOR_H
#define XMRIG_HASHRATE_INTERPOLATOR_H
#ifndef xmlcore_HASHRATE_INTERPOLATOR_H
#define xmlcore_HASHRATE_INTERPOLATOR_H
#include <mutex>
@ -25,7 +25,7 @@
#include <utility>
namespace xmrig {
namespace xmlcore {
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 2012-2014 pooler <pooler@litecoinpool.org>
* 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 2018 Lee Clagett <https://github.com/vtnerd>
* 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
* 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/>.
*/
#ifndef XMRIG_BACKEND_TAGS_H
#define XMRIG_BACKEND_TAGS_H
#ifndef xmlcore_BACKEND_TAGS_H
#define xmlcore_BACKEND_TAGS_H
#include <cstdint>
namespace xmrig {
namespace xmlcore {
const char *backend_tag(uint32_t backend);
const char *cpu_tag();
#ifdef XMRIG_FEATURE_OPENCL
#ifdef xmlcore_FEATURE_OPENCL
const char *ocl_tag();
#endif
#ifdef XMRIG_FEATURE_CUDA
#ifdef xmlcore_FEATURE_CUDA
const char *cuda_tag();
#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) 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
* 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/>.
*/
#ifndef XMRIG_THREAD_H
#define XMRIG_THREAD_H
#ifndef xmlcore_THREAD_H
#define xmlcore_THREAD_H
#include "backend/common/interfaces/IWorker.h"
@ -26,13 +26,13 @@
#include <thread>
#ifdef XMRIG_OS_APPLE
#ifdef xmlcore_OS_APPLE
# include <pthread.h>
# include <mach/thread_act.h>
#endif
namespace xmrig {
namespace xmlcore {
class IBackend;
@ -42,11 +42,11 @@ template<class T>
class Thread
{
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) {}
# ifdef XMRIG_OS_APPLE
# ifdef xmlcore_OS_APPLE
inline ~Thread() { pthread_join(m_thread, nullptr); delete m_worker; }
inline void start(void *(*callback)(void *))
@ -82,7 +82,7 @@ private:
IBackend *m_backend;
IWorker *m_worker = nullptr;
#ifdef XMRIG_OS_APPLE
#ifdef xmlcore_OS_APPLE
pthread_t m_thread{};
# else
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 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* 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
* it under the terms of the GNU General Public License as published by
@ -29,28 +29,28 @@
#include "crypto/cn/CnAlgo.h"
#ifdef XMRIG_FEATURE_OPENCL
#ifdef xmlcore_FEATURE_OPENCL
# include "backend/opencl/OclThreads.h"
#endif
#ifdef XMRIG_FEATURE_CUDA
#ifdef xmlcore_FEATURE_CUDA
# include "backend/cuda/CudaThreads.h"
#endif
namespace xmrig {
namespace xmlcore {
static const char *kAsterisk = "*";
static const char *kCn2 = "cn/2";
} // namespace xmrig
} // namespace xmlcore
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;
if (profileName.isNull() || !has(profileName)) {
@ -62,7 +62,7 @@ const T &xmrig::Threads<T>::get(const String &profileName) const
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;
@ -106,7 +106,7 @@ size_t xmrig::Threads<T>::read(const rapidjson::Value &value)
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)) {
return String();
@ -145,7 +145,7 @@ xmrig::String xmrig::Threads<T>::profileName(const Algorithm &algorithm, bool st
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;
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>;
#ifdef XMRIG_FEATURE_OPENCL
#ifdef xmlcore_FEATURE_OPENCL
template class Threads<OclThreads>;
#endif
#ifdef XMRIG_FEATURE_CUDA
#ifdef xmlcore_FEATURE_CUDA
template class Threads<CudaThreads>;
#endif
} // namespace xmrig
} // namespace xmlcore

View file

@ -1,4 +1,4 @@
/* XMRig
/* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* 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
* 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/>.
*/
#ifndef XMRIG_THREADS_H
#define XMRIG_THREADS_H
#ifndef xmlcore_THREADS_H
#define xmlcore_THREADS_H
#include <map>
@ -35,7 +35,7 @@
#include "base/tools/String.h"
namespace xmrig {
namespace xmlcore {
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) 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
* it under the terms of the GNU General Public License as published by
@ -22,7 +22,7 @@
#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_id(id)
{

View file

@ -1,6 +1,6 @@
/* XMRig
/* xmlcore
* 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
* 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/>.
*/
#ifndef XMRIG_WORKER_H
#define XMRIG_WORKER_H
#ifndef xmlcore_WORKER_H
#define xmlcore_WORKER_H
#include "backend/common/interfaces/IWorker.h"
namespace xmrig {
namespace xmlcore {
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 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* 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
* 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/>.
*/
#ifndef XMRIG_WORKERJOB_H
#define XMRIG_WORKERJOB_H
#ifndef xmlcore_WORKERJOB_H
#define xmlcore_WORKERJOB_H
#include <cstring>
@ -33,7 +33,7 @@
#include "crypto/common/Nonce.h"
namespace xmrig {
namespace xmlcore {
template<size_t N>
@ -117,14 +117,14 @@ private:
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());
}
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()]++;
@ -147,7 +147,7 @@ inline bool xmrig::WorkerJob<1>::nextRound(uint32_t rounds, uint32_t roundSize)
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_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) 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
* it under the terms of the GNU General Public License as published by
@ -26,28 +26,28 @@
#include "base/tools/Chrono.h"
#ifdef XMRIG_FEATURE_OPENCL
#ifdef xmlcore_FEATURE_OPENCL
# include "backend/opencl/OclWorker.h"
#endif
#ifdef XMRIG_FEATURE_CUDA
#ifdef xmlcore_FEATURE_CUDA
# include "backend/cuda/CudaWorker.h"
#endif
#ifdef XMRIG_FEATURE_BENCHMARK
#ifdef xmlcore_FEATURE_BENCHMARK
# include "backend/common/benchmark/Benchmark.h"
#endif
namespace xmrig {
namespace xmlcore {
class WorkersPrivate
{
public:
XMRIG_DISABLE_COPY_MOVE(WorkersPrivate)
xmlcore_DISABLE_COPY_MOVE(WorkersPrivate)
WorkersPrivate() = default;
~WorkersPrivate() = default;
@ -58,11 +58,11 @@ public:
};
} // namespace xmrig
} // namespace xmlcore
template<class T>
xmrig::Workers<T>::Workers() :
xmlcore::Workers<T>::Workers() :
d_ptr(new WorkersPrivate())
{
@ -70,14 +70,14 @@ xmrig::Workers<T>::Workers() :
template<class T>
xmrig::Workers<T>::~Workers()
xmlcore::Workers<T>::~Workers()
{
delete d_ptr;
}
template<class T>
bool xmrig::Workers<T>::tick(uint64_t)
bool xmlcore::Workers<T>::tick(uint64_t)
{
if (!d_ptr->hashrate) {
return true;
@ -107,7 +107,7 @@ bool xmrig::Workers<T>::tick(uint64_t)
d_ptr->hashrate->add(totalHashCount, Chrono::steadyMSecs());
}
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef xmlcore_FEATURE_BENCHMARK
return !d_ptr->benchmark || !d_ptr->benchmark->finish(totalHashCount);
# else
return true;
@ -116,23 +116,23 @@ bool xmrig::Workers<T>::tick(uint64_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();
}
template<class T>
void xmrig::Workers<T>::setBackend(IBackend *backend)
void xmlcore::Workers<T>::setBackend(IBackend *backend)
{
d_ptr->backend = backend;
}
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());
# endif
@ -142,7 +142,7 @@ void xmrig::Workers<T>::stop()
m_workers.clear();
# ifdef XMRIG_MINER_PROJECT
# ifdef xmlcore_MINER_PROJECT
Nonce::touch(T::backend());
# endif
@ -150,9 +150,9 @@ void xmrig::Workers<T>::stop()
}
#ifdef XMRIG_FEATURE_BENCHMARK
#ifdef xmlcore_FEATURE_BENCHMARK
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) {
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>
xmrig::IWorker *xmrig::Workers<T>::create(Thread<T> *)
xmlcore::IWorker *xmlcore::Workers<T>::create(Thread<T> *)
{
return nullptr;
}
template<class T>
void *xmrig::Workers<T>::onReady(void *arg)
void *xmlcore::Workers<T>::onReady(void *arg)
{
auto handle = static_cast<Thread<T>* >(arg);
@ -200,7 +200,7 @@ void *xmrig::Workers<T>::onReady(void *arg)
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) {
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());
# ifdef XMRIG_MINER_PROJECT
# ifdef xmlcore_MINER_PROJECT
Nonce::touch(T::backend());
# endif
@ -218,13 +218,13 @@ void xmrig::Workers<T>::start(const std::vector<T> &data, bool sleep)
}
namespace xmrig {
namespace xmlcore {
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) {
case 1:
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>;
#ifdef XMRIG_FEATURE_OPENCL
#ifdef xmlcore_FEATURE_OPENCL
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());
}
@ -266,9 +266,9 @@ template class Workers<OclLaunchData>;
#endif
#ifdef XMRIG_FEATURE_CUDA
#ifdef xmlcore_FEATURE_CUDA
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());
}
@ -278,4 +278,4 @@ template class Workers<CudaLaunchData>;
#endif
} // namespace xmrig
} // namespace xmlcore

View file

@ -1,6 +1,6 @@
/* XMRig
/* xmlcore
* 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
* 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/>.
*/
#ifndef XMRIG_WORKERS_H
#define XMRIG_WORKERS_H
#ifndef xmlcore_WORKERS_H
#define xmlcore_WORKERS_H
#include "backend/common/Thread.h"
#include "backend/cpu/CpuLaunchData.h"
#ifdef XMRIG_FEATURE_OPENCL
#ifdef xmlcore_FEATURE_OPENCL
# include "backend/opencl/OclLaunchData.h"
#endif
#ifdef XMRIG_FEATURE_CUDA
#ifdef xmlcore_FEATURE_CUDA
# include "backend/cuda/CudaLaunchData.h"
#endif
namespace xmrig {
namespace xmlcore {
class Benchmark;
@ -46,7 +46,7 @@ template<class T>
class Workers
{
public:
XMRIG_DISABLE_COPY_MOVE(Workers)
xmlcore_DISABLE_COPY_MOVE(Workers)
Workers();
~Workers();
@ -59,7 +59,7 @@ public:
void setBackend(IBackend *backend);
void stop();
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef xmlcore_FEATURE_BENCHMARK
void start(const std::vector<T> &data, const std::shared_ptr<Benchmark> &benchmark);
# endif
@ -75,7 +75,7 @@ private:
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) {
if (t->worker()) {
@ -90,21 +90,21 @@ IWorker *Workers<CpuLaunchData>::create(Thread<CpuLaunchData> *handle);
extern template class Workers<CpuLaunchData>;
#ifdef XMRIG_FEATURE_OPENCL
#ifdef xmlcore_FEATURE_OPENCL
template<>
IWorker *Workers<OclLaunchData>::create(Thread<OclLaunchData> *handle);
extern template class Workers<OclLaunchData>;
#endif
#ifdef XMRIG_FEATURE_CUDA
#ifdef xmlcore_FEATURE_CUDA
template<>
IWorker *Workers<CudaLaunchData>::create(Thread<CudaLaunchData> *handle);
extern template class Workers<CudaLaunchData>;
#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) 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
* it under the terms of the GNU General Public License as published by
@ -30,7 +30,7 @@
#include <mutex>
namespace xmrig {
namespace xmlcore {
class BenchStatePrivate
@ -55,23 +55,23 @@ static BenchStatePrivate *d_ptr = nullptr;
std::atomic<uint64_t> BenchState::m_data{};
} // namespace xmrig
} // namespace xmlcore
bool xmrig::BenchState::isDone()
bool xmlcore::BenchState::isDone()
{
return d_ptr == nullptr;
}
uint32_t xmrig::BenchState::size()
uint32_t xmlcore::BenchState::size()
{
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;
@ -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);
@ -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;
d_ptr = nullptr;
}
void xmrig::BenchState::done()
void xmlcore::BenchState::done()
{
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);
@ -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);

View file

@ -1,6 +1,6 @@
/* XMRig
/* xmlcore
* 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
* 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/>.
*/
#ifndef XMRIG_BENCHSTATE_H
#define XMRIG_BENCHSTATE_H
#ifndef xmlcore_BENCHSTATE_H
#define xmlcore_BENCHSTATE_H
#include <atomic>
@ -25,7 +25,7 @@
#include <cstdint>
namespace xmrig {
namespace xmlcore {
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) 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
* 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/>.
*/
#ifndef XMRIG_BENCHSTATE_TEST_H
#define XMRIG_BENCHSTATE_TEST_H
#ifndef xmlcore_BENCHSTATE_TEST_H
#define xmlcore_BENCHSTATE_TEST_H
#include "base/crypto/Algorithm.h"
@ -26,7 +26,7 @@
#include <map>
namespace xmrig {
namespace xmlcore {
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) 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
* it under the terms of the GNU General Public License as published by
@ -27,14 +27,14 @@
#include <cinttypes>
xmrig::Benchmark::Benchmark(size_t workers, const IBackend *backend) :
xmlcore::Benchmark::Benchmark(size_t workers, const IBackend *backend) :
m_backend(backend),
m_workers(workers)
{
}
bool xmrig::Benchmark::finish(uint64_t totalHashCount)
bool xmlcore::Benchmark::finish(uint64_t 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);
}
void xmrig::Benchmark::printProgress() const
void xmlcore::Benchmark::printProgress() const
{
if (!m_startTime || !m_current) {
return;

View file

@ -1,6 +1,6 @@
/* XMRig
/* xmlcore
* 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
* 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/>.
*/
#ifndef XMRIG_BENCHMARK_H
#define XMRIG_BENCHMARK_H
#ifndef xmlcore_BENCHMARK_H
#define xmlcore_BENCHMARK_H
#include "base/tools/Object.h"
namespace xmrig {
namespace xmlcore {
class IBackend;
@ -32,7 +32,7 @@ class IBackend;
class Benchmark
{
public:
XMRIG_DISABLE_COPY_MOVE_DEFAULT(Benchmark)
xmlcore_DISABLE_COPY_MOVE_DEFAULT(Benchmark)
Benchmark(size_t workers, const IBackend *backend);
~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) 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
* 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/>.
*/
#ifndef XMRIG_IBACKEND_H
#define XMRIG_IBACKEND_H
#ifndef xmlcore_IBACKEND_H
#define xmlcore_IBACKEND_H
#include "3rdparty/rapidjson/fwd.h"
@ -27,7 +27,7 @@
#include <cstdint>
namespace xmrig {
namespace xmlcore {
class Algorithm;
@ -42,7 +42,7 @@ class String;
class IBackend
{
public:
XMRIG_DISABLE_COPY_MOVE(IBackend)
xmlcore_DISABLE_COPY_MOVE(IBackend)
IBackend() = default;
virtual ~IBackend() = default;
@ -61,19 +61,19 @@ public:
virtual void start(IWorker *worker, bool ready) = 0;
virtual void stop() = 0;
# ifdef XMRIG_FEATURE_API
# ifdef xmlcore_FEATURE_API
virtual rapidjson::Value toJSON(rapidjson::Document &doc) const = 0;
virtual void handleRequest(IApiRequest &request) = 0;
# endif
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef xmlcore_FEATURE_BENCHMARK
virtual Benchmark *benchmark() const = 0;
virtual void printBenchProgress() const = 0;
# 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) 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
* 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/>.
*/
#ifndef XMRIG_IBENCHLISTENER_H
#define XMRIG_IBENCHLISTENER_H
#ifndef xmlcore_IBENCHLISTENER_H
#define xmlcore_IBENCHLISTENER_H
#include "base/tools/Object.h"
namespace xmrig {
namespace xmlcore {
class IBackend;
@ -32,7 +32,7 @@ class IBackend;
class IBenchListener
{
public:
XMRIG_DISABLE_COPY_MOVE(IBenchListener)
xmlcore_DISABLE_COPY_MOVE(IBenchListener)
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) 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
* 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/>.
*/
#ifndef XMRIG_IMEMORYPOOL_H
#define XMRIG_IMEMORYPOOL_H
#ifndef xmlcore_IMEMORYPOOL_H
#define xmlcore_IMEMORYPOOL_H
#include "base/tools/Object.h"
@ -27,13 +27,13 @@
#include <cstdint>
namespace xmrig {
namespace xmlcore {
class IMemoryPool
{
public:
XMRIG_DISABLE_COPY_MOVE(IMemoryPool)
xmlcore_DISABLE_COPY_MOVE(IMemoryPool)
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-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
* 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/>.
*/
#ifndef XMRIG_IRXLISTENER_H
#define XMRIG_IRXLISTENER_H
#ifndef xmlcore_IRXLISTENER_H
#define xmlcore_IRXLISTENER_H
#include "base/tools/Object.h"
namespace xmrig {
namespace xmlcore {
class IRxListener
{
public:
XMRIG_DISABLE_COPY_MOVE(IRxListener)
xmlcore_DISABLE_COPY_MOVE(IRxListener)
IRxListener() = default;
virtual ~IRxListener() = default;
# ifdef XMRIG_ALGO_RANDOMX
# ifdef xmlcore_ALGO_RANDOMX
virtual void onDatasetReady() = 0;
# 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-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
* 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/>.
*/
#ifndef XMRIG_IRXSTORAGE_H
#define XMRIG_IRXSTORAGE_H
#ifndef xmlcore_IRXSTORAGE_H
#define xmlcore_IRXSTORAGE_H
#include "base/tools/Object.h"
@ -30,7 +30,7 @@
#include <utility>
namespace xmrig {
namespace xmlcore {
class Job;
@ -41,7 +41,7 @@ class RxSeed;
class IRxStorage
{
public:
XMRIG_DISABLE_COPY_MOVE(IRxStorage)
xmlcore_DISABLE_COPY_MOVE(IRxStorage)
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) 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
* 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/>.
*/
#ifndef XMRIG_IWORKER_H
#define XMRIG_IWORKER_H
#ifndef xmlcore_IWORKER_H
#define xmlcore_IWORKER_H
#include "base/tools/Object.h"
@ -27,7 +27,7 @@
#include <cstddef>
namespace xmrig {
namespace xmlcore {
class Job;
@ -37,7 +37,7 @@ class VirtualMemory;
class IWorker
{
public:
XMRIG_DISABLE_COPY_MOVE(IWorker)
xmlcore_DISABLE_COPY_MOVE(IWorker)
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) 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
* 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/>.
*/
#ifndef XMRIG_PCITOPOLOGY_H
#define XMRIG_PCITOPOLOGY_H
#ifndef xmlcore_PCITOPOLOGY_H
#define xmlcore_PCITOPOLOGY_H
#include <cstdio>
@ -26,7 +26,7 @@
#include "base/tools/String.h"
namespace xmrig {
namespace xmlcore {
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) 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
* it under the terms of the GNU General Public License as published by
@ -24,20 +24,20 @@
#include "3rdparty/rapidjson/document.h"
#if defined(XMRIG_FEATURE_HWLOC)
#if defined(xmlcore_FEATURE_HWLOC)
# include "backend/cpu/platform/HwlocCpuInfo.h"
#else
# include "backend/cpu/platform/BasicCpuInfo.h"
#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 defined(XMRIG_FEATURE_HWLOC)
# if defined(xmlcore_FEATURE_HWLOC)
cpuInfo = new HwlocCpuInfo();
# else
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);
}
void xmrig::Cpu::release()
void xmlcore::Cpu::release()
{
delete cpuInfo;
cpuInfo = nullptr;

View file

@ -1,6 +1,6 @@
/* XMRig
/* xmlcore
* 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
* 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/>.
*/
#ifndef XMRIG_CPU_H
#define XMRIG_CPU_H
#ifndef xmlcore_CPU_H
#define xmlcore_CPU_H
#include "backend/cpu/interfaces/ICpuInfo.h"
namespace xmrig {
namespace xmlcore {
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 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* 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
* it under the terms of the GNU General Public License as published by
@ -45,23 +45,23 @@
#include "crypto/rx/RxDataset.h"
#ifdef XMRIG_FEATURE_API
#ifdef xmlcore_FEATURE_API
# include "base/api/interfaces/IApiRequest.h"
#endif
#ifdef XMRIG_ALGO_ARGON2
#ifdef xmlcore_ALGO_ARGON2
# include "crypto/argon2/Impl.h"
#endif
#ifdef XMRIG_FEATURE_BENCHMARK
#ifdef xmlcore_FEATURE_BENCHMARK
# include "backend/common/benchmark/Benchmark.h"
# include "backend/common/benchmark/BenchState.h"
#endif
namespace xmrig {
namespace xmlcore {
extern template class Threads<CpuThreads>;
@ -158,7 +158,7 @@ public:
status.start(threads, algo.l3());
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef xmlcore_FEATURE_BENCHMARK
workers.start(threads, benchmark);
# else
workers.start(threads);
@ -178,7 +178,7 @@ public:
{
HugePagesInfo pages;
# ifdef XMRIG_ALGO_RANDOMX
# ifdef xmlcore_ALGO_RANDOMX
if (algo.family() == Algorithm::RANDOM_X) {
pages += Rx::hugePages();
}
@ -212,24 +212,24 @@ public:
String profileName;
Workers<CpuLaunchData> workers;
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef xmlcore_FEATURE_BENCHMARK
std::shared_ptr<Benchmark> benchmark;
# 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) {
return ocl_tag();
}
# endif
# ifdef XMRIG_FEATURE_CUDA
# ifdef xmlcore_FEATURE_CUDA
if (backend == Nonce::CUDA) {
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();
}
xmrig::CpuBackend::CpuBackend(Controller *controller) :
xmlcore::CpuBackend::CpuBackend(Controller *controller) :
d_ptr(new CpuBackendPrivate(controller))
{
d_ptr->workers.setBackend(this);
}
xmrig::CpuBackend::~CpuBackend()
xmlcore::CpuBackend::~CpuBackend()
{
delete d_ptr;
}
bool xmrig::CpuBackend::isEnabled() const
bool xmlcore::CpuBackend::isEnabled() const
{
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();
}
bool xmrig::CpuBackend::tick(uint64_t ticks)
bool xmlcore::CpuBackend::tick(uint64_t 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();
}
const xmrig::String &xmrig::CpuBackend::profileName() const
const xmlcore::String &xmlcore::CpuBackend::profileName() const
{
return d_ptr->profileName;
}
const xmrig::String &xmrig::CpuBackend::type() const
const xmlcore::String &xmlcore::CpuBackend::type() const
{
return kType;
}
void xmrig::CpuBackend::prepare(const Job &nextJob)
void xmlcore::CpuBackend::prepare(const Job &nextJob)
{
# ifdef XMRIG_ALGO_ARGON2
const xmrig::Algorithm::Family f = nextJob.algorithm().family();
# ifdef xmlcore_ALGO_ARGON2
const xmlcore::Algorithm::Family f = nextJob.algorithm().family();
if ((f == Algorithm::ARGON2) || (f == Algorithm::RANDOM_X)) {
if (argon2::Impl::select(d_ptr->controller->config()->cpu().argon2Impl())) {
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()) {
return;
@ -334,7 +334,7 @@ void xmrig::CpuBackend::printHashrate(bool details)
i++;
}
# ifdef XMRIG_FEATURE_OPENCL
# ifdef xmlcore_FEATURE_OPENCL
Log::print(WHITE_BOLD_S "| - | - | %7s | %7s | %7s |",
Hashrate::format(hashrate()->calc(Hashrate::ShortInterval), num, 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()) {
return stop();
@ -373,7 +373,7 @@ void xmrig::CpuBackend::setJob(const Job &job)
stop();
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef xmlcore_FEATURE_BENCHMARK
if (BenchState::size()) {
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();
@ -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()) {
return;
@ -415,8 +415,8 @@ void xmrig::CpuBackend::stop()
}
#ifdef XMRIG_FEATURE_API
rapidjson::Value xmrig::CpuBackend::toJSON(rapidjson::Document &doc) const
#ifdef xmlcore_FEATURE_API
rapidjson::Value xmlcore::CpuBackend::toJSON(rapidjson::Document &doc) const
{
using namespace rapidjson;
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("msr", Rx::isMSR(), allocator);
# ifdef XMRIG_FEATURE_ASM
# ifdef xmlcore_FEATURE_ASM
const Assembly assembly = Cpu::assembly(cpu.assembly());
out.AddMember("asm", assembly.toJSON(), allocator);
# else
out.AddMember("asm", false, allocator);
# endif
# ifdef XMRIG_ALGO_ARGON2
# ifdef xmlcore_ALGO_ARGON2
out.AddMember("argon2-impl", argon2::Impl::name().toJSON(), allocator);
# endif
# ifdef XMRIG_ALGO_ASTROBWT
# ifdef xmlcore_ALGO_ASTROBWT
out.AddMember("astrobwt-max-size", cpu.astrobwtMaxSize(), allocator);
# 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) {
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
#ifdef XMRIG_FEATURE_BENCHMARK
xmrig::Benchmark *xmrig::CpuBackend::benchmark() const
#ifdef xmlcore_FEATURE_BENCHMARK
xmlcore::Benchmark *xmlcore::CpuBackend::benchmark() const
{
return d_ptr->benchmark.get();
}
void xmrig::CpuBackend::printBenchProgress() const
void xmlcore::CpuBackend::printBenchProgress() const
{
if (d_ptr->benchmark) {
d_ptr->benchmark->printProgress();

View file

@ -1,4 +1,4 @@
/* XMRig
/* xmlcore
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
@ -6,7 +6,7 @@
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
* 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
* 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/>.
*/
#ifndef XMRIG_CPUBACKEND_H
#define XMRIG_CPUBACKEND_H
#ifndef xmlcore_CPUBACKEND_H
#define xmlcore_CPUBACKEND_H
#include "backend/common/interfaces/IBackend.h"
@ -33,7 +33,7 @@
#include <utility>
namespace xmrig {
namespace xmlcore {
class Controller;
@ -44,7 +44,7 @@ class Miner;
class CpuBackend : public IBackend
{
public:
XMRIG_DISABLE_COPY_MOVE_DEFAULT(CpuBackend)
xmlcore_DISABLE_COPY_MOVE_DEFAULT(CpuBackend)
CpuBackend(Controller *controller);
~CpuBackend() override;
@ -65,12 +65,12 @@ protected:
void start(IWorker *worker, bool ready) override;
void stop() override;
# ifdef XMRIG_FEATURE_API
# ifdef xmlcore_FEATURE_API
rapidjson::Value toJSON(rapidjson::Document &doc) const override;
void handleRequest(IApiRequest &request) override;
# endif
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef xmlcore_FEATURE_BENCHMARK
Benchmark *benchmark() const override;
void printBenchProgress() const override;
# 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) 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
* it under the terms of the GNU General Public License as published by
@ -26,7 +26,7 @@
#include <algorithm>
namespace xmrig {
namespace xmlcore {
const char *CpuConfig::kEnabled = "enabled";
const char *CpuConfig::kField = "cpu";
@ -38,15 +38,15 @@ const char *CpuConfig::kMemoryPool = "memory-pool";
const char *CpuConfig::kPriority = "priority";
const char *CpuConfig::kYield = "yield";
#ifdef XMRIG_FEATURE_ASM
#ifdef xmlcore_FEATURE_ASM
const char *CpuConfig::kAsm = "asm";
#endif
#ifdef XMRIG_ALGO_ARGON2
#ifdef xmlcore_ALGO_ARGON2
const char *CpuConfig::kArgon2Impl = "argon2-impl";
#endif
#ifdef XMRIG_ALGO_ASTROBWT
#ifdef xmlcore_ALGO_ASTROBWT
const char *CpuConfig::kAstroBWTMaxSize = "astrobwt-max-size";
const char *CpuConfig::kAstroBWTAVX2 = "astrobwt-avx2";
#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;
}
rapidjson::Value xmrig::CpuConfig::toJSON(rapidjson::Document &doc) const
rapidjson::Value xmlcore::CpuConfig::toJSON(rapidjson::Document &doc) const
{
using namespace rapidjson;
auto &allocator = doc.GetAllocator();
@ -82,15 +82,15 @@ rapidjson::Value xmrig::CpuConfig::toJSON(rapidjson::Document &doc) const
obj.AddMember(StringRef(kMaxThreadsHint), m_limit, allocator);
}
# ifdef XMRIG_FEATURE_ASM
# ifdef xmlcore_FEATURE_ASM
obj.AddMember(StringRef(kAsm), m_assembly.toJSON(), allocator);
# endif
# ifdef XMRIG_ALGO_ARGON2
# ifdef xmlcore_ALGO_ARGON2
obj.AddMember(StringRef(kArgon2Impl), m_argon2Impl.toJSON(), allocator);
# endif
# ifdef XMRIG_ALGO_ASTROBWT
# ifdef xmlcore_ALGO_ASTROBWT
obj.AddMember(StringRef(kAstroBWTMaxSize), m_astrobwtMaxSize, allocator);
obj.AddMember(StringRef(kAstroBWTAVX2), m_astrobwtAVX2, allocator);
# 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;
}
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) {
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()) {
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));
setPriority(Json::getInt(value, kPriority, -1));
# ifdef XMRIG_FEATURE_ASM
# ifdef xmlcore_FEATURE_ASM
m_assembly = Json::getValue(value, kAsm);
# endif
# ifdef XMRIG_ALGO_ARGON2
# ifdef xmlcore_ALGO_ARGON2
m_argon2Impl = Json::getString(value, kArgon2Impl);
# endif
# ifdef XMRIG_ALGO_ASTROBWT
# ifdef xmlcore_ALGO_ASTROBWT
const auto& astroBWTMaxSize = Json::getValue(value, kAstroBWTMaxSize);
if (astroBWTMaxSize.IsNull() || !astroBWTMaxSize.IsInt()) {
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("*")) {
return;
@ -193,19 +193,19 @@ void xmrig::CpuConfig::generate()
size_t count = 0;
count += xmrig::generate<Algorithm::CN>(m_threads, m_limit);
count += xmrig::generate<Algorithm::CN_LITE>(m_threads, m_limit);
count += xmrig::generate<Algorithm::CN_HEAVY>(m_threads, m_limit);
count += xmrig::generate<Algorithm::CN_PICO>(m_threads, m_limit);
count += xmrig::generate<Algorithm::RANDOM_X>(m_threads, m_limit);
count += xmrig::generate<Algorithm::ARGON2>(m_threads, m_limit);
count += xmrig::generate<Algorithm::ASTROBWT>(m_threads, m_limit);
count += xmlcore::generate<Algorithm::CN>(m_threads, m_limit);
count += xmlcore::generate<Algorithm::CN_LITE>(m_threads, m_limit);
count += xmlcore::generate<Algorithm::CN_HEAVY>(m_threads, m_limit);
count += xmlcore::generate<Algorithm::CN_PICO>(m_threads, m_limit);
count += xmlcore::generate<Algorithm::RANDOM_X>(m_threads, m_limit);
count += xmlcore::generate<Algorithm::ARGON2>(m_threads, m_limit);
count += xmlcore::generate<Algorithm::ASTROBWT>(m_threads, m_limit);
m_shouldSave |= count > 0;
}
void xmrig::CpuConfig::setAesMode(const rapidjson::Value &value)
void xmlcore::CpuConfig::setAesMode(const rapidjson::Value &value)
{
if (value.IsBool()) {
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()) {
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()) {
m_memoryPool = value.GetBool() ? -1 : 0;

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