Author

Topic: [ANN] cpuminer-gr-cmky v1.2.4.1 - open source Raptoreum miner (Read 381 times)

newbie
Activity: 27
Merit: 2
Added HiveOS Custom miner package and instructions
newbie
Activity: 27
Merit: 2
Looks promising, thanks for your effort.
It's a bit scary to be the first person to test it! Too bad your GitHub account has no public history, but at least it's been around since 2016.
Personally, I can't get a decent hashrate on ghostrider compared to randomx, so I'm not going to be the first tester.

Yes the Ghostrider hashrate fluctuates because it does algorithm switching and some of the algorithms are more CPU intensive. The last time I did the numbers it came out to be more profitable than mining RandomX. Quite a bit of people use the miner but I'm not sure if they are members of this forum or if they came from discord. Putting out a new miner these days is tough all you can do is put it out there, be as transparent as possible, and wait. For the first few weeks no one used it at all and now it starting to get foot traffic.
member
Activity: 113
Merit: 10
Looks promising, thanks for your effort.
It's a bit scary to be the first person to test it! Too bad your GitHub account has no public history, but at least it's been around since 2016.
Personally, I can't get a decent hashrate on ghostrider compared to randomx, so I'm not going to be the first tester.
newbie
Activity: 27
Merit: 2
-- reserved --
newbie
Activity: 27
Merit: 2
Introduction to cpuminer-gr-cmky - open source Raptoreum miner

cpuminer-gr-cmky is a fork of cpuminer-gr-avx2 which was initially created to be used in house and has been in use for several months on our cpu mining farm. The plan was to improve the logging system, due to the original printing
color codes within the output log. Since using the original logging system was painful a completely rewritten logging system was created.  Whilst updating the logging system we noticed places where improvements could be made.

For example, the original main function made unnecessary calls to the same function multiple times and was general sloppy compared to Jay D Dee's cpuminer-multi wich cpuminer-gr-avx2 is a fork of, with an outrageous fee of 1.75% with a 0.25% discount
if you mine to a specific pool. (The discount has resulted in one pool having 84.2 % of the Raptoreum hashing power. ) So we have removed the discount and lowed the base fee to 0.65%, due to the reduction in Raptoreum mining profitability, and in the hopes
that without the incentive to mine at a single pool, the hashing power will be redistributed to smaller pools witch is better for miner profitability and security of the network.

Download Links
Download Binaries at https://github.com/cmyk-B/cpuminer-gr-cmky/releases
Download Source at https://github.com/cmyk-B/cpuminer-gr-cmky

How to Hive custom miner:
https://github.com/cmyk-B/cpuminer-gr-cmky/wiki/HiveOS-Custom-Miner
https://hiveon.com/getting_started-start_custom_miner

Please audit our code
Since this is a new miner from an unknown person most people will be understandably skeptical.
If you would like to audit the code you can see a full list of commits at https://github.com/cmyk-B/cpuminer-gr-cmky/commits.
Since this is a fork of a trusted miner you may only interested in our commits witch start on Dec 23, 2021 and are commit numbers 9ade630, 390434a, d49a187 with the bulk of the changes being in the first commit.

How to build from source

Build Requirements:
GCC-11 for zen3 support (Required for Ryzen 9 optimizations)
MINGW-W64 v9.x for compiling windows binaries (only version that includes support for gcc11)
libcurl
openssl
libjansson
zlib
libnuma

Build Environment:
All development was done on Linux so these directions are Linux specific.
The scripts we used to setup our build environment are available at https://github.com/cmyk-B/cpuminer-gr-cmky-build-env.
build-gcc-11 - Builds gcc 11 for linux and installs it in /opt/gcc-11
load_gcc11.sh - Setup current session to use gcc 11 as default compiler
mingw-w64-build - A modified version of Kyle Schwarz mingw-w64 install script. original version did not build shared libraries
load_mingw64.sh - Add mingw-w64 to PATH for current session

Complete build directions:
Linux compile directions: https://github.com/cmyk-B/cpuminer-gr-cmky/blob/main/INSTALL_LINUX
Windows compile directions: https://github.com/cmyk-B/cpuminer-gr-cmky/blob/main/INSTALL_WINDOWS

Simple build scripts:
compiled binaries will be located under the bin/unix folder for linux and bin/win for windows if the simple scripts are used.
build-allarch.sh - compiles binaries for all architectures
build-zen3.sh - compiles the AMD Ryzen 9 linux binary only
winbuild-cross.sh - compiles windows binaries for all architectures


Todo:
  • Replace calls to sleep with conditional locks
  • additional  general cleanup of code
  • remove getwork (does not serve any purpose these days and will remove the libcurl requirement)


Configuration:

Tuning:
Tuning starts automaticaly with the start of the miner. If previous tuning file `tune_config`
exists (or `--tune-config=FILE` flag is used), it is used instead. This behavior
can be overridden by `--no-tune` or `--force-tune`.
On non-AVX2 CPUs default tuning process takes ~69 minutes to finish.
On AVX2 CPUs default tuning process takes ~155 minutes to finish.


To add or use options from the miner, use included config.json file.
All options should be presented in JSON format like:
"long-flag-name": "Some_value"

Some examples:
Code:
"tune-full": true
"tune-config": "tune_config"
"user": "YOUR_WALLET"

If using non-SSL stratum:
Code:
"url": "stratum+tcp://YOUR_POOL_ADDRESS:PORT"
If using SSL stratum:
"url": "stratum+tcps://YOUR_POOL_ADDRESS:PORT"

Help from the miner:
Code:
Options:
  -a, --algo=ALGO       specify the algorithm to use
                          gr            Ghost Rider - Raptoreum (RTM)
  -N, --param-n         N parameter for scrypt based algos
  -R, --param-r         R parameter for scrypt based algos
  -K, --param-key       Key (pers) parameter for algos that use it
  -o, --url=URL         URL of mining server
      --url-backup=URL  URL of backup mining server (experimental)
  -O, --userpass=U:P    username:password pair for mining server
  -u, --user=USERNAME   username for mining server
  -p, --pass=PASSWORD   password for mining server
      --cert=FILE       certificate for mining server using SSL
  -x, --proxy=[PROTOCOL://]HOST[:PORT]  connect through a proxy
  -t, --threads=N       number of miner threads (default: number of processors)
  -r, --retries=N       number of times to retry if a network call fails
                          (default: retry indefinitely)
      --retry-pause=N   time to pause between retries, in seconds (default: 30)
      --time-limit=N    maximum time [s] to mine before exiting the program.
  -T, --timeout=N       timeout for long poll and stratum (default: 300 seconds)
  -s, --scantime=N      upper bound on time spent scanning current work when
                          long polling is unavailable, in seconds (default: 5)
      --randomize       Randomize scan range start to reduce duplicates
  -f, --diff-factor     Divide req. difficulty by this factor (std is 1.0)
  -m, --diff-multiplier Multiply difficulty by this factor (std is 1.0)
      --hash-meter      Display thread hash rates
      --coinbase-addr=ADDR  payout address for solo mining
      --coinbase-sig=TEXT  data to insert in the coinbase when possible
      --no-longpoll     disable long polling support
      --no-getwork      disable getwork support
      --no-gbt          disable getblocktemplate support
      --no-stratum      disable X-Stratum support
      --no-extranonce   disable Stratum extranonce support
      --no-redirect     ignore requests to change the URL of the mining server
  -q, --quiet           enable less output
      --no-color        disable colored output
  -D, --debug           enable debug output
  -P, --protocol-dump   verbose dump of protocol-level activities
  -S, --syslog          use system log for output messages
  -B, --background      run the miner in the background
      --benchmark       run in offline benchmark mode
      --cpu-affinity    set process affinity to cpu core(s), mask 0x3 for cores 0 and 1
      --cpu-priority    set process priority (default: 0 idle, 2 normal to 5 highest)
  -b, --api-bind=address[:port]   IP address for the miner API, default port is 4048)
      --api-remote      Allow remote control
      --max-temp=N      Only mine if cpu temp is less than specified value (linux)
      --max-rate=N[KMG] Only mine if net hashrate is less than specified value
      --max-diff=N      Only mine if net difficulty is less than specified value
  -c, --config=FILE     load a JSON-format configuration file
      --data-file       path and name of data file
      --verify          enable additional time consuming start up tests
      --version         display version information and exit
      --log=FILE        path to the file that will include a copy of miner output. File is not cleared after restart.
  -d, --donation=VAL    donation value in %. Default is 0.65
  -y  --no-msr          disable application of MSR mod on the system
      --force-tune      Force tuning of the miner before mining even if tune config file exists.
      --no-tune         disable tuning of the miner before mining. Tuning takes ~69 (non-AVX2) or ~154 (AVX2+) minutes.
      --tune-full       enable full tuning. Include All 4way Cryptonight variants. Tuning takes ~222 minutes. Only available on AVX2+
      --tune-config=FILE  Point to the already created tune config. Default file created by the miner is tune_config
      --confirm-block   Enable miner to send additional data to the pool regarding sent shares.
      --temp-sensor=PATH  Set custom path to temperature sensor for the miner to use.
      --stress-test     Simple stress test using fast rotation of Ghost Rider.
      --ecores=N        Specify exact number of E cores on Alder Lake CPU. Defaults to autodetect that can be inaccurate.
      --disable-rot=LIST  Comma (,) separated number of rotations (3,10,16) to be skipped and not mined. For testing purposes.
  -h, --help            display this help text and exit

Information about different binaries and required Processor instructions.
Correct binaries should be selected automatically with the provided cpuminer.sh/cpuminer.bat scripts

Code:
# Compiled as AMD Zen1 AVX2 SHA
# AMD Zen & Zen+ - 1000 & 2000 series (3000 Mobile)
cpuminer-zen

Code:
# Compiled as AMD Zen2 AVX2 SHA
# AMD Zen2 - 3000 (Desktop) & 4000 series
cpuminer-zen2

Code:
# Compiled as AMD Zen3 AVX2 SHA VAES
# AMD Zen3 - 5000 series
cpuminer-zen3

Code:
# Alder Lake (12th gen, 12000 series) E cores limit to avx2 instead of avx512+
cpuminer-avx2-sha-vaes

Code:
# Compiled as Icelake AVX512 SHA VAES
# Ice Lake (10th gen, 10000 series Mobile)
# Rocket Lake (11th gen, 11000 series)
cpuminer-avx512-sha-vaes

Code:
# Compiled as Rocket Lake AVX512 SHA AES
cpuminer-avx512-sha

Code:
# Compiled as Skylake-X AVX512 AES
# Skylake-X/SP/W - HEDT 7000 & 9000 series, Xeon-W, Xeon Bronze/Silver/Gold/Platinum
# Tiger Lake (11th gen, 11000 series Mobile)
cpuminer-avx512

Code:
# Compiled as Haswell AVX2 AES
# Haswell (4th gen, 4000 series / 5000 HEDT) - All except i3-4000m, Pentium and Celeron
# Broadwell (5th gen, 5000 series / 6000 HEDT) - All except Pentium and Celeron
# Skylake (6th gen, 6000 series)
# Kaby Lake (7th gen, 7000 series)
# Coffee Lake (8 & 9th gen, 8000/9000 series)
# Cascade Lake / Cannon Lake (10th gen, 10000 series)
cpuminer-avx2

Code:
# Compiled as Sandybridge AVX AES
# Sandybridge (2nd gen, 2000 series / 3000 HEDT) - All i5, i7. Some i3. Xeon v1
# Ivy Bridge (3rd gen, 3000 series / 4000 HEDT) - All i5, i7, Xeon v2
cpuminer-avx

Code:
# Compiled as Westmere SSE4.2 AES
# Westmere-EP (1st gen) - Xeon 5600 series
# Clarkdale & Arrandale - All except Celeron, Pentium, i3 and i5-4XXM
cpuminer-aes-sse42

Code:
# Compiled as Nehalem SSE4.2
cpuminer-sse42

Code:
# Compiled as Core2 SSSE3
cpuminer-ssse3

Code:
# Compiled as Generic SSE2
cpuminer-sse2

Jump to: