cpuminer-opt is a console program run from the command line using the keyboard, not the mouse. See also README.md for list of supported algorithms, Security warning ---------------- Miner programs are often flagged as malware by antivirus programs. This is usually a false positive, they are flagged simply because they are cryptocurrency miners. However, some malware masquerading as a miner has been spread using the cover that miners are known to be subject to false positives ans users will dismiss the AV alert. Always be on alert. The source code of cpuminer-opt is open for anyone to inspect. If you don't trust the software don't download it. The cryptographic hashing code has been taken from trusted sources but has been modified for speed at the expense of accepted security practices. This code should not be imported into applications where secure cryptography is required. Compile Instructions -------------------- See INSTALL_LINUX or INSTALL_WINDOWS for compile instructions Requirements ------------ - A x86_64 architecture CPU with a minimum of SSE2 support. This includes Intel Core2 and newer and AMD equivalents. - Arm CPU supporting AArch64 and NEON. 32 bit CPUs are not supported. Older CPUs are supported by open source cpuminer-multi by TPruvot but at reduced performance. Mining on mobile devices that meet the requirements is not recommended due to the risk of overheating and damaging the battery. Mining has unlimited demand, it will push any device to or beyond its limits. There is also a fire risk with overheated lithium batteries. Beware of apps claiming "mobile only mining". There is no such thing, they aren't miners. If a mobile CPU can mine it any CPU can. See wiki for details. Reporting bugs -------------- Bugs can be reported by sending am email to JayDDee246@gmail.com or opening an issue in git: https://github.com/JayDDee/cpuminer-opt/issues Please include the following information: 1. CPU model, operating system, cpuminer-opt version (must be latest), binary file for Windows, changes to default build procedure for Linux. 2. Exact command line (except user and pw) and intial output showing the above requested info. 3. Additional program output showing any error messages or other pertinent data. 4. A clear description of the problem including history, scope, persistence or intermittance, and reproduceability. In simpler terms: What is it doing? What should it be doing instead? Did it work in a previous release? Does it happen for all algos? All pools? All options? Solo? Does it happen all the time? If not what makes it happen or not happen? Change Log ---------- v24.3 ARM: CPU feature detection and reporting is now working. ARM: Verthash is now working. ARM: Small speedup for yescrypt, yespower & argon2d. Code cleanup. v24.2 x86_64: Fixed blakes2s for AVX2 & AVX512, x25x for AVX512, broken in v3.23.4. x86_64: Initial support for CPUs with AVX10, needs GCC-14. ARM NEON: Various code optimisations. v24.1 #414: fix bug in merkle error handling. #416: change $nproc to $(nproc) in build scripts. #420: change some inline function definitions to static inline. #413: Fix formatting error for share result log when using no-color. Faster 2 way interleaving. Cleanup sha256 architecture targetting. v23.15 Fixed x11gost (sib) algo for all architectures, broken in v3.23.4. ARM: Fugue AES optimizations enabled. ARM: quark, qubit, x11gost algos optimized with NEON & AES. v23.14 ARM: Groestl AES optimizations enabled. All: Small optimization to Shabal 4way. x86_64: Extend Shabal 4way support to SSE2 from SSE4.1. All: deleted some unused files. v23.13 Added x20r algo. Eliminated redundant hash order calculations for x16r family. v23.12 Several bugs fixes and speed improvements for x16r family for all CPU architectures. v23.11 This is a release candidate for full AArch64 support, marking the end of the Beta phase. Fixed hmq1725 & x25x algos, SSE2 & NEON, broken in v3.23.4. Most CPU-mineable SHA3 algos (X*) upgraded to 2-way SSE2 & NEON. v23.10 x86_64: Fixed scrypt, scryptn2 algos SSE2. Fixed sha512256d algo AVX2, SSE2, NEON. Fixed a bug in Skein N-way that reduced performance. ARM: Skein optimized for NEON, SHA2 & SSE2. Skein2 algo 2-way optimized for NEON & SSE2. v23.9 x86_64: fixed minotaurx crash, broken in 23.7. ARM: #407 fix compile error due to incorrect type casting for vrev instruction argument. v23.8 Cpuminer-opt is no longer dependant on OpenSSL. Removed Hodl algo. Removed legacy Sha256 & Scrypt ASM code. ARM: Echo AES is working and enabled for x17. v23.7 Fixed blakes2s, broken in v3.23.4. ARM: SHA2 extension tested and working. ARM: sha512256d fully optimized. ARM: X17 more optimizations. ARM: AES extension working for Shavite. ARM errata: CPU features AES & SHA256 are not reported when available. v23.6 ARM: Sha256dt, Sha256t, Sha256d 4-way now working and fully optimized for NEON, SHA also enabled but untested. x86: Sha256dt, Sha256t, Sha256d faster SSE2 4-way. ARM: Scrypt, Scryptn2 fully optimized for NEON, SHA also enabled but untested. Linux: added a log when miner is started as root to discourage doing so. v23.5 New version numbering drops the leading 3, the major version will now be the calendar year, the minor version identifies planned releases during the year. BETA: 64 bit ARM support - ARM 64 bit CPUs are now supported with source code for Linux. Windows is not supported. - NEON, AES & SHA2 are supported. - This the first public release and is early Beta quality. - Some algorithms do not work on ARM or work at reduced performance. See wiki for details: https://github.com/JayDDee/cpuminer-opt/wiki/Support-for-AArch64. - CPU archtecture and OS detection and logging now support ARM features. - New 2way parallel hash for ARM also helps x86_64 CPUs without AVX2 on supported algorithms. - Enhanced startup feature logs to support ARM. - Removed startup logs for incompatible CPU/SW architectures. - Added CPU architecture & OS type to RPC user agent string. - Added share reject controls, a warning log is displayed at 10% reject rate, the miner exits with an error log at 50%. - Removed argon2 algorithm. - New CLI option "--bell" adds an ASCII bell code in the output string of error, warning, & rejected share logs. The option is disabled by default. v3.23.4 Source code only. Initial experimental support for ARM AArch64 with NEON, SHA2 & AES. Arm support is considered alpha quality, use at your own risk. x86_64 is unaffected. v3.23.3 #402: Windows binaries package rebuilt with openssl v1.1.1w (libcrypto-1_1-x64.dll). #400: Removed excessive thread restarts when mining solo. Fixed build_msys2.sh for gcc-13 by removing unsupported option "--param=evrp-mode=legacy" from CFLAGS. Added CPUID detection and reporting of CPUs and SW builds supporting SHA512 extension. Added prototype of sha-512 using SHA512 intrinsics, untested. Other improvements and code cleanup. v3.23.2 sha256dt, sha256t & sha256d +10% with SHA, small improvement with AVX2. Other small improvements and code cleanup. v3.23.1 #349: Fix sha256t low difficulty shares and low effective hash rate. Faster sha256dt: AVX512 +7%, SHA +200%, AVX2 +5%. Faster blakecoin & vanilla: AVX2 +30%, AVX512 +110%. Other small improvements and code cleanup. v3.23.0 #398: Prevent GBT fallback to Getwork on network error. #398: Prevent excessive logs when conditional mining is paused when mining solo. Fix a false start if stratum doesn't immediately send a new job after connecting. Tweak diagonal shuffle in Blake2b & Blake256 1-way SIMD to reduce latency. CPUID support for AVX10. Initial changes to AVX2 targeted code in preparation for AVX10. Code cleanup and miscellaneous small improvements. v3.22.3 Data interleaving and byte swap optimizations with AVX2, AVX512 & AVX512VBMI. Faster Luffa with AVX2 & AVX512. Other small optimizations. Some code cleanup. v3.22.2 Added sha512256d & sha256dt algos. Fixed intermittant invalid shares lyra2v2 AVX512. Removed application limits on the number of CPUs and threads, HW and OS limits still apply. Added a log warning if more threads are defined than active CPUs in affinity mask. Improved merkle tree memory management for stratum. Added transaction count to New Work log. Other small improvements. v3.22.1 #393 fixed segfault in GBT, regression from v3.22.0. More efficient 32 bit data interleaving. v3.22.0 Stratum: faster netdiff calculation. Merged a few updates from Pooler/cpuminer: Use CURLOPT_POSTFIELDS in json_rpc_call, Use CURLINFO_ACTIVESOCKET when supported, JSONRPC speedup, Speed up hex2bin function. Small log improvements, notably more frequent hash rate reports. Removed decred algo. v3.21.5 All issues with v3.21.3 & v3.21.4 should be resolved. Changes since v3.21.2: #392 #379 #389 Fixed misaligned address segfault solo mining. #392 Fixed stats for myr-gr algo, and a few others, for CPUs without AVX2. #392 Fixed conditional mining. #392 Fixed cpu affinity on Ryzen CPUs using Windows binaries, Windows binaries no longer support CPU groups, Windows binaries support CPUs with up to 64 threads. Small optimizations to serialized vectoring. v3.21.4 CANCELLED Reapply selected changes from v3.21.3. #392 #379 #389 Fixed misaligned address segfault solo mining. #392 Fixed conditional mining. #392 Fixed cpu affinity on Ryzen CPUs using Windows binaries, Windows binaries no longer support CPU groups, Windows binaries support CPUs with up to 64 threads. v3.21.3.1 UNRELEASED Revert to 3.21.2 v3.21.3 CANCELLED #392 #379 #389 Fixed misaligned address segfault solo mining. #392 Fixed stats for myr-gr algo, and a few others, for CPUs without AVX2. #392 Fixed conditional mining. #392 Fixed cpu affinity on Ryzen CPUs using Windows binaries, Windows binaries no longer support CPU groups, Windows binaries support CPUs with up to 64 threads. Midstate prehash is now centralized, done only once instead of by every thread for selected algos. Small optimizations to serialized vectoring. v3.21.2 Faster SALSA SIMD shuffle for yespower, yescrypt & scryptn2. Fixed a couple of compiler warnings with gcc-12. v3.21.1 Fixed a segfault in some obsolete algos. Small optimizations to Hamsi & Shabal AVX2 & AVX512. v3.21.0 Added minotaurx algo for stratum only. Blake256 & sha256 prehash optimized to ignore zero-padded data for AVX2 & AVX512. Other small improvements. v3.20.3 Faster c11 algo: AVX512 6%, AVX2 4%, AVX2+VAES 15%. Faster AVX2+VAES for anime 14%, hmq1725 6%. Small optimizations to Luffa AVX2 & AVX512. v3.20.2 Bit rotation optimizations to Blake256, Blake512, Blake2b, Blake2s & Lyra2-blake2b for SSE2 & AVX2. Removed old unused yescrypt library and other unused code. v3.20.1 sph_blake2b optimized 1-way SSSE3 & AVX2. Removed duplicate Blake2b used by Power2b algo, will now use optimized sph_blake2b. Removed imprecise hash & target display from rejected share log. Share and target difficulty is now displayed only for low difficulty shares. Updated configure.ac to check for AVX512 asm support. Small optimization to Lyra2 SSE2. v3.20.0 #375 Fixed segfault in algos using Groestl VAES due to use of uninitialized data. v3.19.9 More Blake256, Blake512, Luffa & Cubehash prehash optimizations. Relaxed some excessively strict data alignment that was negatively affecting performance. v3.19.8 #370 "stratum+ssl", in addition to "stratum+tcps", is now recognized as a valid url protocol specifier for requesting a secure stratum connection. The full url, including the protocol, is now displayed in the stratum connect log and the periodic summary log. Small optimizations to Cubehash, AVX2 & AVX512. Byte order and prehash optimizations for Blake256 & Blake512, AVX2 & AVX512. v3.19.7 #369 Fixed time limited mining, --time-limit. Fixed a potential compile error when using optimization below -O3. v3.19.6 #363 Fixed a stratum bug where the first job may be ignored delaying start of hashing Fixed handling of nonce exhaust when hashing a fast algo with extranonce disabled Small optimization to Shavite. v3.19.5 Enhanced stratum-keepalive preemptively resets the stratum connection before the server to avoid lost shares. Added build-msys2.sh shell script for easier compiling on Windows, see Wiki for details. X16RT: eliminate unnecessary recalculations of the hash order. Fix a few compiler warnings. Fixed log colour error when a block is solved. v3.19.4 #359: Fix verthash memory allocation for non-hugepages, broken in v3.19.3. New option stratum-keepalive prevents stratum timeouts when no shares are submitted for several minutes due to high difficulty. Fixed a bug displaying optimizations for some algos. v3.19.3 Linux: Faster verthash (+25%), scryptn2 (+2%) when huge pages are available. Small speed up for Hamsi AVX2 & AVX512, Keccak AVX512. v3.19.2 Fixed log displaying incorrect memory usage for scrypt, broken in v3.19.1. Reduce log noise when replies to submitted shares are lost due to stratum errors. Fugue prehash optimization for X16r family AVX2 & AVX512. Small speed improvement for Hamsi AVX2 & AVX512. Win: With CPU groups enabled the number of CPUs displayed in the ASCII art affinity map is the number of CPUs in a CPU group, was number of CPUs up to 64. v3.19.1 Changes to Windows binaries package: - builds for CPUs with AVX or lower have CPU groups disabled, - zen3 build renamed to avx2-sha-vaes to support Alderlake as well as Zen3, - zen build renamed to avx2-sha, supports Zen1 & Zen2, - avx512-sha build removed, Rocketlake CPUs can use avx512-sha-vaes, - see README.txt for compatibility details. Fixed a few compiler warnings that are new in GCC 11. Other minor fixes. v3.19.0 Windows binaries now built with support for CPU groups, requires Windows 7. Changes to cpu-affinity: - PR#346: Fixed incorrect CPU affinity on Windows built for CPU groups, - added support for CPU affinity for up to 256 threads or CPUs, - streamlined code for more efficient initialization of miner threads, - precise affining of each miner thread to a specific CPU, - added an option to disable CPU affinity with "--cpu-affinity 0" Faster sha256t with AVX512 & AVX2. Added stratum error count to stats log, reported only when non-zero. v3.18.2 Issue #342, fixed Groestl AES on Windows, broken in v3.18.0. AVX512 for sha256d. SSE42 and AVX may now be displayed as mining features at startup. This is hard coded for each algo, and is only implemented for scrypt at this time as it is the only algo with significant performance differences with those features. Fixed an issue where a high hashrate algo could cause excessive invalid hash rate log reports when starting up in benchmark mode. v3.18.1 More speed for scrypt: - additional scryptn2 optimizations for all CPU architectures, - AVX2 is now used by default on CPUS with SHA but not AVX512, - scrypt:1024 performance lost in v3.18.0 is restored, - AVX512 & AVX2 improvements to scrypt:1024. Big speedup for SwiFFTx AVX2 & SSE4.1: x22i +55%, x25x +22%. Issue #337: fixed a problem that could display negative stats values in the first summary report if the report was forced prematurely due to a stratum diff change. The stats will still be invalid but should display zeros. v3.18.0 Complete rewrite of Scrypt code, optimized for large N factor (scryptn2): - AVX512 & SHA support for sha256, AVX512 has priority, - up to 50% increase in hashrate, - memory requirements reduced 30-60% depending on CPU architecture, - memory usage displayed at startup, - scrypt, default N=1024 (LTC), will likely perform slower. Improved stale share detection and handling for Scrypt with large N factor: - abort and discard partially computed hash when new work is detected, - quicker response to new job, less time wasted mining stale job. Improved stale share handling for all algorithms: - report possible stale share when new work received with a previously submitted share still pending, - when new work is detected report the submission of an already completed, otherwise valid, but likely stale, share, - fixed incorrect block height in stale share log. Small performance improvements to sha, bmw, cube & hamsi for AVX512 & AVX2. When stratum disconnects miner threads go to idle until reconnected. Colour changes to some logs. Some low level function name changes for clarity and consistency. The reference hashrate in the summary log and the benchmark total hashrate are now the mean hashrate for the session. v3.17.1 Fixed Windows build for AES+SSE4.2 (Westmere), was missing AES. More ternary logic optimizations for AVX512, AVX512+VAES, and AVX512+AES. Fixed my-gr algo for VAES. v3.17.0 AVX512 optimized using ternary logic instructions. Faster sha256t on all CPU architectures: AVX512 +30%, SHA +30%, AVX2 +9%. Use SHA on supported CPUs to produce merkle hash. Fixed byte order in Extranonce2 log & replaced Block height with Job ID. v3.16.5 #329: Fixed GBT incorrect target diff in stats, second attempt. Fixed formatting error in share result log when --no-color option is used. v3.16.4 Faster sha512 and sha256 when not using SHA CPU extension. #329: Fixed GBT incorrect target diff in stats. v3.16.3 #313 Fix compile error with GCC 11. Incremental improvements to verthash. v3.16.2 Verthash: midstate prehash optimization for all architectures. Verthash: AVX2 optimization. GBT: added support for Bech32 addresses. Linux: added CPU frequency to benchmark log. Fixed integer overflow in time calculations. v3.16.1 New options for verthash: --data-file to specify the name, and optionally the path, of the verthash data file, default is "verthash.dat" in the current directory. --verify to perform the data file integrity check at startup, default is not to verify data file integrity. Support for creation of default verthash data file if: 1) --data-file option is not used, 2) no default data file is found in the current directory, and, 3) --verify option is used. More detailed logs related to verthash data file. Small verthash performance improvement. Fixed detection of corrupt stats caused by networking issues. v3.16.0 Added verthash algo. v3.15.7 Added accepted/stale/rejected percentage to summary log report. Added warning if share counters mismatch which could corrupt stats. Linux: CPU temperature reporting is more responsive to rising temperature. A few AVX2 & AVX512 tweaks. Removed some dead code and other cleanup. v3.15.6 Implement keccak pre-hash optimization for x16* algos. Move conditional mining test to before get_new_work in miner thread. Add test for share reject reason when solo mining. Add support for floating point, as well as integer, "networkhasps" in RPC getmininginfo method. v3.15.5 Fix stratum jobs lost if 2 jobs received in less than one second. v3.15.4 Fixed yescryptr16 broken in v3.15.3. v3.15.3 Yescrypt algos now use yespower v0.5, a little faster. New implementation of sha256 using SHA CPU extension. Replace Openssl with SPH for sha256 & sha512. AVX512 optimization for sha256t & sha256q. Faster sha256t, sha256q, x21s, x22i & x25x on CPUs with SHA without AVX512. AVX512+SHA build for Intel Rocketlake added to Windows binary package. v3.15.2 Zen3 AVX2+VAES optimization for x16*, x17, sonoa, xevan, x21s, x22i, x25x, allium. Zen3 (AVX2+SHA+VAES) build added to Windows binary package. v3.15.1 Fix compile on AMD Zen3 CPUs with VAES. Force new work immediately after solving a block solo. v3.15.0 Fugue optimized with AES, improves many sha3 algos. Minotaur algo optimized for all architectures. Fixed neoscrypt BUG log. v3.14.3 #265: more mutex changes to reduce blocking with high thread count. #267: fixed hodl algo potential memory alignment issue, add warning when thread count is not valid for mining hodl algo. v3.14.2 The second line of the Share Accepted log is no longer displayed, new Xnonce log is added and other small log tweaks. #265: Cleanup use of mutex. v3.14.1 GBT and getwork log changes: fixed missing TTF in New Block log, ntime no longer byte-swapped for display in New Work log, fixed zero effective hash rate in Periodic Report log, deleted "Current block is..." log. Renamed stratum "New Job" log to "New Work" to be consistent with the solo version of the log. Added more data to both versions. v3.14.0 Changes to solo mining: - segwit is supported by getblocktemplate, - longpolling is not working and is disabled, - Periodic Report log is output, - New Block log includes TTF estimates, - Stratum thread no longer created when using getwork or GBT. Fixed BUG log mining sha256d. v3.13.1.1 Fixed Windows crash mining minotaur algo. Fixed GCC 10 compile again. Added -fno-common to testing to be consistent with GCC 10 default. v3.13.1 Added minotaur algo for Ringcoin. v3.13.0.1 Issue #262: Fixed xevan AVX2 invalid shares. v3.13.0 Updated Windows binaries compiled with GCC 9. Included DLLs also updated. Icelake build (cpuminer-avx512-sha-vaes.exe) now included in Windows binaries package. No source code changes. v3.12.8.2 Fixed x12 AVX2 rejects. Fixed phi AVX2 crash. v3.12.8.1 Issue #261: Fixed yescryptr8g invalid shares. v3.12.8 Yespower sha256 prehash made thread safe. Rewrote diff conversion functions from scratch to be simpler and use long double (float80) and int128 arithmetic for improved accuracy and precision. Some code cleanup and assorted small changes. v3.12.7 Issue #257: fixed a file descriptor leak which caused the CPU temperature and frequency query to report zeros after mining for a couple of hours. Issue #253: stale share reduction for yescrypt, sonoa. v3.12.6.1 Issue #252: Fixed SSL mining (stratum+tcps://) Issue #254 Fixed benchmark. Issue #253: Implemented stale share reduction for yespower, x25x, x22i, x21s, x16*, scryptn2, more to come. v3.12.6 Issue #246: improved stale share detection for getwork. Improved precision of target_to_diff conversion from 4 digits to 20+. Display hash and target debug data for all rejected shares. A graphical representation of CPU affinity is displayed when using --threads. Added highest and lowest accepted share to summary log. Other small changes to logs to improve consistency and clarity. v3.12.5 Issues #246 & #251: fixed incorrect share diff for stratum and getwork, fixed incorrect target diff for getwork. Stats should now be correct for getwork as well as stratum. Issue #252: Fixed stratum+tcps not using curl ssl. Getwork: reduce stale blocks, faster response to new work. Added ntime to new job/work logs. README.md now lists the parameters for yespower variations that don't have a specific algo name. v3.12.4.6 Issue #246: fixed getwork repeated new block logs with same height. New work for the same block is now reported as "New work" instead of "New block". Also added a check that work is new before generating "New work" log. Added target diff to getwork new block log. Changed share ratio in share result log to simple fraction, no longer %. Added debug log to display mininginfo, use -D. v3.12.4.5 Issue #246: better stale share detection for getwork, and enhanced logging of stale shares for stratum & getwork. Issue #251: fixed incorrect share difficulty and share ratio in share result log. Changed submit log to include share diff and block height. Small cosmetic changes to logs. v3.12.4.4 Issue #246: Fixed net hashrate in getwork block log, removed duplicate getwork block log, other small tweaks to stats logs for getwork. Issue #248: Fixed chronic stale shares with scrypt:1048576 (scryptn2). v3.12.4.3 Fixed segfault in new block log for getwork. Disabled silent discarding of stale work after the submit is logged. v3.12.4.2 Issue #245: fixed getwork stale shares, solo mining with getwork now works. Issue #246: implemented block and summary logs for getwork. v3.12.4.1 Issue #245: fix scantime when mining solo with getwork. Added debug logs for creation of stratum and longpoll threads, use -D to enable. v3.12.4 Issue #244: Change longpoll to ignore job id. Lyra2rev2 AVX2 +3%, AVX512 +6%. v3.12.3.1 Issue #241: Fixed regression that broke coinbase address in v3.11.7. v3.12.3 Issue #238: Fixed skunk AVX2. Issue #239: Faster AVX2 & AVX512 for skein +44%, skein2 +30%, plus marginal increases for skunk, x16r, x16rv2, x16rt, x16rt-veil, x16s, x21s. Faster anime VAES +57%, AVX512 +21%, AVX2 +3%. Redesigned code reponsible for #236. v3.12.2 Fixed xevan, skein, skein2 AVX2, #238. Reversed polarity of AVX2 vector bit test utilities, and all users, to be logically and semantically correct. Follow up to issue #236. v3.12.1 Fixed anime AVX2 low difficulty shares, git issue #236. Periodic summary now reports lost hash rate due to rejected and stale shares, displayed only when non-zero. v3.12.0.1 Fixed hodl rejects, git issue #237. Fixed debug code added in v3.12.0 to work with AVX2 to be enabled only after low difficulty share have been seen to avoid unnecessarily excessive log outout. Added more digits of precision to diff in log output to help diagnose low difficulty shares. v3.12.0 Faster phi2 AVX2 +62%, AVX512 +150% on Intel CPUs. AMD Ryzen AVX2 is YMMV due to its inferiour AVX2 implementation. Fixed Hodl stats, rejects are still an issue since v3.9.5, git issue #237. API can now be enabled with "-b port" or "--api-bind port". It will use the default address 127.0.0.1. Editorial: Short form options should only be used on the command line to save typing. Configuration files and scripts should always use the long form "--api-bind addr:port" without relying on any defaults. This is a general recommendation that applies to all options for any application. Removed obsolete cryptonight, all variants, and supporting code for more size reduction and faster compiling. Tweaked the timing of the CPU temperature and frequency log (Linux only). Added some debug code to collect more info aboout low difficulty rejects, git issue #236. v3.11.9 Fixed x16r invalid shares when Luffa was first in hash order. API is disabled by default. New startup message for status of stratum connection, API & extranonce. New log report for CPU temperature, frequency of fastest and slowest cores. Compile time is a little shorter and binary file size a little smaller using conditional compilation.. Removed code for Bastion, Drop, Heavy, Luffa an Pluck algos and other unused code. v3.11.8 Fixed network hashrate showing incorrect data, should be close now. Fixed compile errors when using GCC 10 with default flag -fno-common. Faster x16r, x16rv2, x16rt, x16s, x21s, veil, hex with midstate prehash. Decoupled sapling usage from block version 5 in yescryptr8g. More detailed data reporting for low difficulty rejected shares. v3.11.7 Added yescryptr8g algo for KOTO, including support for block version 5. Added sha3d algo for BSHA3. Removed memcmp and clean_job checks from get_new_work, now only check job_id. Small improvement to sha512 and sha256 parallel implementations that don't use SHA. v3.11.6 Fixed CPU temperature regression from v3.11.5. More improvements to share log. More compact, highlight incremented counter, block height when solved, job id when stale. v3.11.5 Fixed AVX512 detection that could cause compilation errors on CPUs without AVX512. Fixed "BLOCK SOLVED" log incorrectly displaying "Accepted" when a block is solved. Added share counter to share submitited & accepted logs Added job id to share submitted log. Share submitted log is no longer highlighted blue, there was too much blue. Another CPU temperature fix for Linux. Added bug reporting tips to RELEASE NOTES. v3.11.4 Fixed scrypt segfault since v3.9.9.1. Stale shares counted and reported seperately from other rejected shares. Display of counters for solved blocks, rejects, stale shares suppressed in periodic summary when zero. v3.11.3 Fixed x12 AVX2 again. More speed for allium: AVX2 +4%, AVX512 +6%, VAES +14%. Restored lost speed for x22i & x25x. v3.11.2 Fixed x11gost (sib) AVX2 invalid shares. Fixed x16r, x16rv2, x16s, x16rt, x16rt-veil (veil), x21s. No shares were submitted when cube, shavite or echo were the first function in the hash order. Fixed all algos reporting stats problems when mining with SSE2. Faster Lyra2 AVX512: lyra2z +47%, lyra2rev3 +11%, allium +13%, x21s +6% Other minor performance improvements. Known issue: Lyra2 AVX512 improvements paradoxically reduced performance on x22i and x25x. https://github.com/JayDDee/cpuminer-opt/issues/225 v3.11.1 Faster panama for x25x AVX2 & AVX512. Fixed echo VAES for Xevan. Removed support for scryptjane algo. Reverted macro implemtations of hash functions to SPH reference code for SSE2 versions of algos. v3.11.0 Fixed x25x AVX512 lane 4 invalid shares. AVX512 for hex, phi2. VAES optimzation for Intel Icelake CPUs for most algos recently optimized with AVX512, source code only. v3.10.7 AVX512 for x25x, lbry, x13bcd (bcd). v3.10.6 Added support for SSL stratum: stratum+tcps:// Added job id reporting again, but leaner, suppressed with --quiet. AVX512 for x21s, x22i, lyra2z, allium. Fixed share overflow warnings mining lbry with Ryzen (SHA). v3.10.5 AVX512 for x17, sonoa, xevan, hmq1725, lyra2rev3, lyra2rev2. Faster hmq1725 AVX2. v3.10.4 AVX512 for x16r, x16rv2, x16rt, x16s, x16rt-veil (veil). v3.10.3 AVX512 for x12, x13, x14, x15. Fixed x12 AVX2 invalid shares. v.10.2 AVX512 added for bmw512, c11, phi1612 (phi), qubit, skunk, x11, x11gost (sib). Fixed c11 AVX2 invalid shares. v3.10.1 AVX512 for blake2b, nist5, quark, tribus. More broken lane fixes, fixed buffer overflow in skein AVX512, fixed quark invalid shares AVX2. Only the highest ranking feature in a class is listed at startup, lower ranking features are available but no longer listed. v3.10.0 AVX512 is now supported on selected algos, Windows binary is now available. AVX512 optimizations are available for argon2d, blake2s, keccak, keccakc, skein & skein2. Fixed CPU temperature for some CPU models (Linux only). Fixed a bug that caused some lanes not to submit shares. Fixed some previously undetected buffer overflows. Lyra2rev2 3% faster SSE2 and AVX2. Added "-fno-asynchronous-unwind-tables" to AVX512 build script for Windows to fix known mingw issue. Changed AVX2 build script to explicitly add AES to address change in behaviour in GCC 9. v3.9.11 Added x22i & x25x algos. Blake2s 2% faster AVX2 with Intel CPU, slower with Ryzen v1, v2 ? v3.9.10 Faster X* algos with AVX2. Small improvements to summary stats report. v3.9.9.1 Fixed a day1 bug that could cause the miner to idle for up to 2 minutes under certain circumstances. Redesigned summary stats report now includes session statistics. More robust handling of statistics to reduce corruption. Removed --hide-diff option. Better handling of cpu-affinity with more than 64 CPUs. v3.9.9 Added power2b algo for MicroBitcoin. Added generic yespower-b2b (yespower + blake2b) algo to be used with the parameters introduced in v3.9.7 for yespower & yescrypt. Display additional info when a share is rejected. Some low level enhancements and minor tweaking of log output. RELEASE_NOTES (this file) and README.md added to Windows release package. v3.9.8.1 Summary log report will be generated on stratum diff change or after 5 minutes, whichever comes first, to prevent incorrect data in the report. Removed phi2-lux alias (introduced in v3.9.8) due to Luxcoin's planned fork to a new algo. The new Luxcoin algo is not supported by cpuminer-opt. Until the fork Luxcoin can be mined using phi2 algo. --hide-diff option is deprecated and has no effect. It will be removed in a future release. v3.9.8 Changes to log output to provide data more relevant to actual mining performance. phi2 can now handle pools with a mix of coins that use and don't use roots. phi2-lux added as an alias for phi2 as they are identical except for roots. Add x16rv2 algo for Ravencoin fork. v3.9.7 Command line option changes: "-R" is no longer used as a shortcut for "--retry-pause", users must use the long option. New options: -N, --param-n: set the N parameter for yescrypt, yespower or scrypt algos -R, --param-r: set the R parameter for yescrypt or yespower algos, scrypt is hardcoded with R=1 -K, --param-key: set the client key/pers parameter for yescrypt/yespower algos. These options can be used to mine yescrypt or yespower variations using the generic yescrypt or yespower algo name and specifying the parameters manually. They can even be used to mine variations that aren't formally supported by a unique algo name. Existing algos can continue to to be mined using their original name without parameters. v3.9.6.2 New algo blake2b. Faster myr-gr on Ryzen using SHA. Faster blake2s SSE2. Small speedup of around 1% for several other algos. v3.9.6.1 New algos: x21s, hex (alias x16r-hex). v3.9.6 New algos: bmw512, x16rt, x16rt-veil (alias veil), x13bcd (alias bcd). v3.9.5.4 Fixed sha256q AVX2 poor performance. Fixed skein2 buffer overflow and restored bswap-interleave optimization. More restructuring. v3.9.5.3 Fix crash mining hodl with aes-sse42. More restructuring and share report tweaks. v3.9.5.2 Revert bswap-interleave optimization for causing crashes on Windows. v3.9.5.1 Fixed skein2 crash on Windows. Fixed CPU temperature reading on Ubuntu 19.04. Realigned log message colours, blue is used to report normal activity and yellow is only used to report abnormal activity. Changed stats colours, yellow now means below average, white is average range. Tweaked colour thresholds. Changed colour of stratum difficulty change messages to blue to match other normal protocol messages. Blue messages (block, stratum, submit) will no longer be displayed when using -q option. Added job id to new block, share submit, and share result messages and added new nessage when a new job is received for an existing block. This will for better troubleshooting of invalid job id rejects seen at zergpool. Some more restructuring. v3.9.5 New share reporting information includes calculation of equivalent hashrate based on share difficulty, network latency, 5 minute summary. Per-thread hash rate reports are disabled by default. New command line option --hash-meter added to enable per-thread hash rates. v3.9.4 Faster AVX2 for lyra2v3, quark, anime. Fixed skein AVX2 regression (invalid shares since v3.9.0) and faster. Faster skein2 with 4way AVX2 enabled. Automatic SHA override on Ryzen CPUs, no need for -DRYZEN compile flag. Ongoing restructuring. v3.9.3.1 Skipped v3.9.3 due to misidentification of v3.9.2.5 as v3.9.3. Fixed x16r algo 25% invalid share reject rate. The bug may have also affected other algos. v3.9.2.5 Fixed 2 regressions: hodl AES detection, x16r invalid shares with AVX2. More restructuring. v3.9.2.4 Yet another affinity fix. Hopefully the last one. v3.9.2.3 Another cpu-affinity fix. Disabled test code that fails to compile on some CPUs with limited AVX512 capabilities. v3.9.2.2 Fixed some day one cpu-affinity issues. v3.9.2 Added sha256q algo. Yespower now uses openssl SHA256, but no observable hash rate increase on Ryzen. Ongoing rearchitecting. Lyra2z now hashes 8-way on CPUs with AVX2. Lyra2 (all including phi2) now runs optimized code with SSE2. v3.9.1.1 Fixed lyra2v3 AVX and below. Compiling on Windows using Cygwin now works. Simply use "./build.sh" just like on Linux. It isn't portable therefore the binaries package will continue to use the existing procedure. The Cygwin procedure will be documented in more detail later and will include a list of packages that need to be installed. v3.9.1 Fixed AVX2 version of anime algo. Added sonoa algo. Added "-DRYZEN_" compile option for Ryzen to override 4-way hashing when algo contains sha256 and use SHA instead. This is due to a combination of the introduction of HW SHA support combined with the poor performance of AVX2 on Ryzen. The Windows binaries package replaces cpuminer-avx2-sha with cpuminer-zen compiled with the override. Refer to the build instructions for more information. Ongoing restructuring to streamline the process, reduce latency, reduce memory usage and unnecessary copying of data. Most of these will not result in a notoceably higher reported hashrate as the change simply reduces the time wasted that wasn't factored into the hash rate reported by the miner. In short, less dead time resulting in a higher net hashrate. One of these measures to reduce latency also results in an enhanced share submission message including the share number*, the CPU thread, and the vector lane that found the solution. The time difference between the share submission and acceptance (or rejection) response indicates network ltatency. One other effect of this change is a reduction in hash meter messages because the scan function no longer exits when a share is found. Scan cycles will go longer and submit multiple shares per cycle. *the share number is antcipated and includes both accepted and rejected shares. Because the share is antipated and not synchronized it may be incorrect in time of very rapid share submission. Under most conditions it should be easy to match the submission with the corresponding response. Removed "-DUSE_SPH_SHA" option, all users should have a recent version of openssl installed: v1.0.2 (Ubuntu 16.04) or better. Ryzen SHA requires v1.1.0 or better. Ryzen SHA is not used when hashing multi-way parallel. Ryzen SHA is available in the Windows binaries release package. Improved compile instructions, now in seperate files: INSTALL_LINUX and INSTALL_WINDOWS. The Windows instructions are used to build the binaries release package. It's built on a Linux system either running as a virtual machine or a seperate computer. At this time there is no known way to build natively on a Windows system. v3.9.0.1 Isolate Windows CPU groups code when CPU groups support not explicitly defined. v3.9.0 Added support for Windows CPU groups. Fixed BIP34 coinbase height. Prep work for AVX512. Added lyra2rev3 for the vertcoin algo change. Added yespower, yespowerr16 (Yenten) Added phi2 algo for LUX Discontinued support for cryptonight and variants. v3.8.8.1 Fixed x16r. Removed cryptonight variant check due to false positives. API displays hashrate before shares are submitted. v3.8.8 Added cryptonightv7 for Monero. v3.8.7.2 Fixed argon2d-dyn regression in v3.8.7.1. Changed compile options for aes-sse42 Windows build to -march=westmere v3.8.7.1 Fixed argon2d-uis low difficulty rejects. Fixed argon2d aliases. v3.8.7 Added argon2d4096 (alias argon2d-uis) for Unitus (UIS). argon2d-crds and argon2d-dyn renamed to argon2d250 and argon2d500 respectively. The old names are recognized as aliases. AVX512 is now supported for argon2d algos, Linux only. AVX is no longer a reported feature and an AVX Windows binary is no longer provided. Use AES-SSE42 build instead. v3.8.6.1 Faster argon2d* AVX2. Untested AVX-512 for argon2d*, YMMV. v3.8.6 Fixed argon2 regression in v3.8.5. Added x16s algo for Pigeoncoin. Some code cleanup. v3.8.5 Added argon2d-crds and argon2d-dyn algos. sha256t 8 way AVX2 & 4 way SSE4.2 optimized. CPUs with SSE4.2 get optimizations previously reserved for AVX. v3.8.4.1 Fixed sha256t low difficulty rejects. Fixed compile error on CPUs with AVX512. v3.8.4 Added yescryptr32 algo for WAVI coin. Added URL to API data. Improved detection of __int128 support (linux only) Compile support for CPUs without SSSE3 (no binary support) v3.8.3.3 Integrated getblocktemplate with algo_gate. Added support for hodl gbt (untested). Reworked some recent quick fixes. v3.8.3.2 Reverted gbt changes from v3.8.0 that broke getwork. Reverted scaled hash rate for API, added HS term in addition to KHS. Added blocks solved to console display and API. v3.8.3.1 Fixed regression in v3.8.3 that broke several algos. v3.8.3 More restoration of lost lyra2 hash. 8 way AVX2 and 4way AVX optimization for blakecoin, vanilla & blake2s. 8 way AVX2 for lbry. Scaled hashrate for API output. A couple of GBT fixes. v3.8.2.1 Fixed low difficulty rejects with allium. Fixed qubit AVX2. Restored lyra2z lost hash. Fixed build.sh v3.8.2 Fixed and faster myr-gr. Added x12 algo (Galaxie Cash), allium algo (Garlicoin). Faster lyra2rev2, lbry, skein. Large reduction in compiler warnings. v3.8.1.1 Fixed Windows AVX2 crash. v3.8.1 Fixes x16r on CPUs with only SSE2. More Optimizations for X algos, qubit & deep. Corrected algo optimizations for scrypt and yescrypt, no new optimizations. v3.8.0.1 Fixed x16r AVX2 low hash rate. v3.8.0 4way no longer a seperate feature, included in AVX2. Added x16r algo for Ravencoin, anime algo for Animecoin. More 4way optimizations for X13 and up. Tweaked CPU affinity to better support more than 64 CPUs. Fixed compile problem on some old AMD CPUs. v3.7.10 4way optimizations for lyra2rev2, lyra2h, quark, timetravel8, timetravel10 x11evo, blakecoin. Faster x13sm3 (hsr). Added share difficulty to accepted message. v3.7.9 Partial 4way optimizations for veltor, skunk, polytimos, lyra2z. Additional 4way optimizations for X algos. New algo yescryptr8 for BitZeny, not to be confused with original yescrypt Globalboost-Y. v3.7.8 Partial 4way optimization for most X algos including c11, xevan, phi, hsr v3.7.7 Fixed regression caused by 64 CPU support. Fixed lyra2h. v3.7.6 Added lyra2h algo for Hppcoin. Added support for more than 64 CPUs. Optimized shavite512 with AES, improves x11 etc. v3.7.5 New algo keccakc for Creative coin with 4way optimizations Rewrote some AVX/AVX2 code for more consistent implementation and some optimizing. Enhanced capabilities check to support 4way, more precise reporting of features (not all algos use SSE2), and better error messages when using an incompatible pre-built version (Windows users). v3.7.4 Removed unnecessary build options. Added 4way support for tribus and nist5. v3.7.3 Added polytimos algo. Introducing 4-way AVX2 optimization giving up to 4x performance inprovement on many compute bound algos. First supported algos: skein, skein2, blake & keccak. This feature is only available when compiled from source. See above for instcuctions how to enable 4-way during compilation. Updated Dockerfile. v3.7.2 Fixed yescryptr16 Changed default sha256 and sha512 to openssl. This should be used when compiling with openssl 1.0.2 or higher (Ubuntu 16.04). This should increase the hashrate for yescrypt, yescryptr16, m7m, xevan, skein, myr-gr & others when openssl 1.0.2 is installed. Note: -DUSE_SPH_SHA has been removed in v3.9.1. Users with openssl 1.0.1 (Ubuntu 14.04) may get better perforance by adding "-DUSE_SPH_SHA" to CLAGS. Windows binaries are compiled with -DUSE_SPH_SHA and won't get the speedup. v3.7.1 Added yescryptr16 algo for Yenten coin Added SHA support to yescrypt and yescryptr16 Small code cleanup v3.7.0 Fixed x14 misalignment bug. Fixed decred stake version bug. Getwork fixes for algos that use big endian data encoding: m7m, zr5, neoscrypt, decred. v3.6.10 Fixed misalignment bug in hsr. v3.6.9 Added phi1612 algo for LUX coin Added x13sm3 algo, alias hsr, for Hshare coin v3.6.8 Fixed timetravel10 on Windows. v3.6.7 Skunk algo added. Tribus a little faster. Minor restructuring. v3.6.6 added tribus algo for Denarius (DNR) configure removed from .gitignore. This should allow git clone to compile on Windows/mingw. Fixed CPU temperature monitoring on some CPUs (Linux only). Fixed a compile error on FreeBSD (unsupported YMMV). v3.6.5 Cryptonight a little faster. Added jha algo (Jackpotcoin) with AES optimizations. v3.6.4 Added support for Bitcore (BTX) using the timetravel10 algo, optimized for AES and AVX2. "-a bitcore" works as an alias and is less typing that "-a timetravel10". v3.6.3 Fixed all known issues with SHA support on AMD Ryzen CPUs, still no Windows binaries. v3.6.2 SHA accceleration is now supported on AMD Ryzen CPUs when compiled from source, Windows binaries not yet available. Fixed groestl algo. Fixed dmd-gr (Diamond) algo. Fixed lbry compile error on Ryzen. Added SHA support to m7m algo. Hodl support for CPUs without AES has been removed, use legacy version. v3.6.1 Fixed data alignment issue that broke lyra2rev2 AVX2 on Windows. Added preliminary support for HW accelerated SHA. Solo mining most algos should now work, cryptonight confirmed exception. v3.6.0 Preliminary support for solo mining using getwork. v3.5.13 Found more speed in Cubehash, algo improvement depends on chain length, deep +8%, timetravel +1% , xevan +1% Fixed a getwork bug, solo mining is not yet supported but testing is encouraged v3.5.12 New algo sha256t for Onecoin (OC), 29% faster than ocminer version. lyra2zoin algo renamed to lyra2z330, lyra2zoin and zoin still work as aliases. v3.5.11 Fixed hmq1725 crash on Ubuntu 16.04 Fixed compile error in hodl.cpp with gcc 6.3 Fixed x11 crash on Windows with AVX2 v3.5.10 Some AVX2 optimizations introduced for Luffa, shorter chained algos such as Qubit and Deep should see the biggest gains, but many other algos should also see improvement, longer chains like xevan not so much. Rewrite of Groestl AES, now 100% vectorized, small improvement. build.sh and winbuild.sh initialize with distclean instead of clean. Implemented a workaround for a compile error in hodl code when compiling with gcc 6.3. V3.5.9 Reduced stack usage for hmq1725 and small speedup. Added Deep algo optimized for AES and AVX2 Rewrite of SSE2 Luffa, midstate now supported in deep, qubit & timetravel Small changes to algo-gate. v3.5.8 Lyra2RE fixed on Windows, broken in v3.5.6. Ported AES cryptonight optimizations from v3.5.7 to non-AES version with little improvement. Marginal improvements to xevan and veltor. v3.5.7 Cryptonight 5% faster v3.5.6 Updated Lyra2z algo for new zcoin algo post block 2050. Cleaned up Lyra2 code and increased performance - Lyra2Z (zcoin) +12% - Lyra2REv2 +11% - Lyra2RE +6% Fixed x11evo algo performance on Windows. Timetravel algo 3% to 5% faster Whirlpool algo 15% faster. Removed aclocal.m4 from .gitignore. v3.5.5 x11evo fixed on Windows but at reduced performance. Changed benchmark stats collection default to false and added proper user and password checks to enable it. v3.5.4 x11evo fixed (broken in v3.5.2) and optimized 23% faster Small improvements of 1% to 3% on many algos including timetravel, xevan and cryptonight. More code cleanup and compiler warning reduction. Improved checking for missing command line arguments. v3.5.3 More optimizations Timetravel +16% Xevan +3% Qubit +12% V3.5.2 Timetravel (machinecoin) added and optimized. v3.5.1 Bastion 9% faster with AES, benchkmark still not working. Worked around git automatically removing m4 directory. Fixed occasional compile error in algo-gate.h. v3.5.0 Fixed blakecoin and vanilla increasing rejects with number of threads. Removed support for SSE2 Groestl functions. SSE2 groestl remains available in v3.4.12 and the legacy branch. It is no longer necessary to specify stratum+tcp:// in the url, it is assumed and is the only supported protocol. v3.4.12 lyra2z (zcoin) modified for blocks after 8192 fixed scryptjane to support various N factors v3.4.11 groestl algo AES optimized +200% myr-gr algo AES optimized +100% v3.4.10 xevan AES optimized +35% v3.4.9 fixed zr5, broken in v3.4.8 added xevan algo (Bitsend, BSD) with 10% improvement added lyra2zoin (Zoin, ZOI) fully optimized but YMMV v3.4.8 added zcoin support, optimized for AVX2 but no increase in performance fixed API display of diff for cryptonight --show-diff is now the default, use "--hide-diff" to disable cleaned up some cpuminer-multi artifacts v3.4.7 fixed benchmark, except for x11evo added CPU temperature to share submission report (Linux only) v3.4.6 For users: - cryptolight algo is now supported with AES optimizations - display format changed for share submissions - colour keyed "Accepted" or "Rejected" status. - reject count and rate displayed when share is rejected. For developers: - code restructuring for detecting new work - cleaned up detection and handling of new work - removed call to stratum_gen_work from niner_thread. - eliminated gen_work_now gate function. - renamed gate function init_nonce to get_new_work. - renamed gate function alloc_scratchbuf to miner_thread_init, removed all scracthbuf references from miner_thread and moved implementation to the local algo files of those algos that need it. - moved most gate targets from algo-gate.c to cpu-miner.c removing most mining related code from algo-gate-api.c. v3.4.5 fixed stale share rejects mining cryptonight at Nicehash fixed compile error on Westmere CPUs v3.4.4 fixed compile errors on Westmere CPUs, this is an interim fix that will compile without AES on Westmere added support for cryptonight at Nicehash, some rejects may be produced at Nicehash only. v3.4.3 imported optimized m7m, +42% v3.4.2 added veltor algo tweaked lyra2 AVX/AVX2 code for small improvement. v3.4.1 big AVX2 optmizations for lyra2 +35%, lyra2v2 +11%, AVX also faster fixed hmq1725 v3.4.0 fixed Windows compile error introduced in v3.3.9 fixed x11gost, broken in v3.3.7 AVX2 optimizations improving many algos: - Lyra2RE +3% - Lyra2REv2 +19% - x11gost (sib) +6% - x11evo +2.4% - c11 +6.9% - x11 +5% - x13 +5% - x14 +3.6% - x15 +2.4% - x17 +2.8% - qubit +8.4%