https://github.com/RainbowMiner/RainbowMiner/releases
RELEASES:Developer Version master.zip
Actual master.zip:https://rbminer.net
Central monitoring for all of your rigs:https://discord.gg/znzQpJWWQH
Discord:INTRODUCTION
GPU/CPU Mining script with intelligent auto-switching between different miningpools, algorithm, miner programs using all possible combinations of devices (NVIDIA, AMD and CPU), optionally including cost of electricity into profit calculations and stop mining, if no longer profitable. Features: easy setup wizard with adhoc working default (no editing of files needed), GUI-webinterface, selection of devices to be used, very low CPU usage.
FEATURE SUMMARY
- Multi-Platform (AMD, NVIDIA, CPU) on Windows and Linux
- Profit auto-switch between mining programs and algorithm for GPUs & CPUs (optimized one for each vendor vs. one for each possible device combination)
- Profit auto-switch between pools (2Miners, 666Pool, 6Block, Acepool, AHashPool, BaikalMiner, BeePool, Binance, BlockCruncher, BlockMasters, Bsod, BtcPrivate, Cortexmint, EthashPool, Ethermine, ezil.me, F2pool, FairPool, FlexPool, FluxPools, FlyPool, GosCx, GrinMint, Hashcryptos, Hashpool, HashVault, HeroMiners, Hiveon, Icemining, LeafPool, LuckPool, LuckyPool, MinerRocks, MiningDutch, MiningPoolHub, MiningPoolOvh, MiningRigRentals, Mintpond, MoneroOcean, Nanopool, Nicehash, Poolin, Poolium, Ravenminer, SoloPool, SparkPool, Sunpool, SuprNova, unMineable, UUpool, WoolyPooly, Zergpool and Zpool)
- Integrate own and custom pools
- Profit calculation, including real cost of electricity per miner
- Uses the top actual available miner programs (Bminer, Ccminer, Claymore, CryptoDredge, Dstm, EnemyZ, Ewbf, Gminer, NBminer, Sgminer, SrbMiner, T-Rex, Xmrig and many more)
- Easy setup wizard with adhoc working default - click Start.bat and off you go (RainbowMiner will ask for your credentials, no hassle with editing configuration files)
- CLient/Server networking for multiple rigs, to minimize internet traffic and avoid pool bans
- Scheduler for different power prices and/or pause during specific timespans
- Built-in automatic update
- Mining devices freely selectable
- Finetune miner- and pool-configuration during runtime
- Bind/exclude devices to/from specific algorithm and miners
- Define pool's algorithms and coins
- Use unlimited custom overclocking profiles per miner/algorithm
- Easy overclocking of gpus (memory, core, powerlimit and voltage)
- Switch MSI Afterburner profiles per miner/algorithm
- Includes OhGodAnETHlargementPill
- Very low CPU usage to increase CPU mining profit
- Pause mining without exiting the RainbowMiner
- Full automatic update
- Easy replication and setup configuration
- Live monitoring web-interface at localhost:4000
- Central monitoring of all your rigs at https://rbminer.net
- Offline notifications via email and/or https://pushover.net
REQUIRED PRE-REQUISITES
Windows 7/8.1/10 pre-requisites
- Install PowerShell 7: Download Installer for version 7.1.3
- Install Microsoft .NET Framework 4.7.2 or later: Web Installer
- Recommended GPU drivers (note: the latest drivers aren't always the best to use):
- Nvidia official downloads:
- AMD: AMD Adrenalin 2020 Edition 20.3.1 - if you run into trouble, try older versions.
- If your rig contains AMD graphic cards, RainbowMiner's overclocking features rely on MSI Afterburner, you should install and run it: Download
Finally: check, if Powershell 7 is in your PATH, because RainbowMiner will not run correctly, if the path to powershell is missing. Sometimes "C:\Program Files\PowerShell\6" has to be added manually to the PATH environement variable after installing Powershell 6. Here is a nice tutorial, how to add to PATH environment variable https://www.howtogeek.com/118594/how-to-edit-your-system-path-for-easy-command-line-access/amp/
A note on Windows Nvidia drivers. Recommended lite-packed versions are available for direct download:
Ubuntu 18.x Pre-requisites
(This section is WIP! Want to help? Make an issue or a PR))
Debian-based distros will be more-or-less the same as these instructions.
Other distros will have settings in different places (hugepages) and the software install commands will be differen (dnf, yum, pacman, nix, pkg, etc.) It is assumed you are clever enough to sort out the differences on your own if you choose a different distribution. BUT! As noted above, feel free to edit this page and make a pull request.
Huge Pages
By default, linux sets memory-chunk size fairly small. This is to save RAM useage for low-requirement sofware (ie: most programs running in system-space, rather than user-space.) Scrypt^N (Verium) and the CryptoNight family (Monero, etc.) algorithms need a large memory-chunk allocation, and many benefit from it even if they don't need it. In linux, this is call 'hugepages'. For Ubuntu-based distributions, you can set this manually on each boot with sudo sysctl -w vm.nr_hugepages=XXX
where XXX is a how many megabytes to assign per page-chunk. This can be made persistent across reboots by editing the value in /proc/sys/vm/nr_hugepages
and you need to be root do it (ie: sudo emacs -wm /proc/sys/vm/nr_hugepages
(substitue 'emacs -wm' with your editor of choice - nano, vi, joe, etc.)
On newer Ubuntu distros (Ubuntu 18.04 - Bionic Beaver and up), the value can be added to /etc/sysctl.conf
and you need to be root do it (ie: sudo emacs -wm /etc/sysctl.conf
(substitue 'emacs -wm' with your editor of choice - nano, vi, joe, etc.) The system will need to be rebooted to load the new kernel parameters or you can run sudo sysctl -p
to load any new or changed parameters at runtime.
On my system (@ParalegicRacehorse), xmr-stak will not run with hugepages<1024. Setting it to 2048 did gain me anything more than 1024, but experience in the verium/vericoin community have shown hugepages as large as 4096 can be beneficial. YMMV. Tuning is left to the rig operator, but I recommend keeping it as low as you can get away with so your other programs can run lean.
Video Cards
Nvidia
Nvidia has kindly supplied a ppa for their official drivers.
- install some needed packages and add the drivers repository:
sudo apt update
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt -y install dkms build-essential
sudo apt update
- optionally, uninstall any existing Nvidia driver:
sudo apt-get -y purge nvidia-*
sudo apt-get -y autoremove --purge
- now install the new Nvidia driver and reboot
sudo apt -y install nvidia-headless-450 nvidia-driver-450 nvidia-compute-utils-450 nvidia-cuda-toolkit
sudo reboot
Important: check which version of the Nvidia driver you need (i.e. which is compatible with your graphics card) You can check on the Nvidia website which products are supported by each driver (the latest one is usually the best if you have a recent graphics card). Not doing so can cause black screen on reboot. Only the main version is needed (don't bother about the number after the point, so if latest driver is 430.24, just write 430).
Optional Overclocking for Nvidia:
sudo nvidia-xconfig -a --cool-bits=31 --allow-empty-initial-configuration
sudo reboot
Reboot after setting cool bits.
AMD Drivers
Download and extract the latest driver for your cards from the AMD support site
After the archive is downloaded, extract the contents to a temporary location from which you can install it.
Run the following to install it "headless" (this is nessecary for Ubuntu Desktop installations and possibly some other configurations. Read more here) and with ROCm support.
./amdgpu-pro-install -y --opencl=pal,legacy,rocm --headless
Reboot and you should be good to go!
Important: Some algorithms, on some miner-software, will not hash with a kernel version greater than 4.2. You may have to downgrade your OS to Ubuntu 16.04 since more recent editions will not run kernel numbers lower than 4.8. This has everything to do with a mismatch between OpenCL versions provided by recent drivers and those supported by the mining software. Yes, that means you will be running older drivers. If you want the newer drivers, with newer versions of OpenCL to work, feel free to provide assistance to the affected mining softwares by fixing their code and sending pull-requests.
INSTALLATION
Important: Add the RainbowMiner directory to the exceptions of your antivirus program. Otherwise, some miner will cause false virus alerts.
On Linux, you may use git for a shortcut:
sudo apt-get update
sudo apt-get install git
git clone https://github.com/rainbowminer/RainbowMiner
2. Run the RainbowMiner installer
On Windows:
- open RainbowMiner folder with Explorer
- right-click "Install.bat" and choose "Run as administrator"
On Linux, cd into your RainbowMiner folder, change the attributes of install.sh, start.sh and others and run the Installer as root (sudo):
cd RainbowMiner
chmod +x *.sh
sudo ./install.sh
At the end of the install, you will be asked to start RainbowMiner.
If the installer fails to install PowerShell, this is the way to install it manually:
Find the matching version of Powershell Core v7.1.3 for your system from here and download it to your machine.
On Windows, just run the Installer
On Linux: either use the GUI installer to install the package or do it manually, e.g. for Ubuntu:
# if not already done, download the package, change the ubuntu distro version number!
wget https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell_7.1.3-1.ubuntu.18.04_amd64.deb
# install powershell package
dpkg -i powershell_7.1.3-1.ubuntu.18.04_amd64.deb
# install powershell dependecies
apt install -f
3. Start it (if not yet running)
On Windows:
- open RainbowMiner folder with Explorer
- right-click "Start.bat" and choose "Run as administrator"
On Linux:
./start.sh
Alternative: start as Linux screen
:
./start-screen.sh
- press
Ctrl+A
, thend
to detach from screen (imagine you want to disconnect your ssh session) - enter
screen -R RainbowMiner
to reconnect to screen
4. Enter basic information
- choose your rig's WorkerName [default=rainbowminer]
- choose your RunMode:
- standalone = all config locally and direct connect to pool APIs
- server = act as server for many Clients, may also run as mining rig
- client = opionally use server's config files, connect to server for pool API data
- enter API port for webinterface at http://localhost:
- optionally protect access to the webinterface with username and password
- for client-mode:
- enter the server's name (or IP)
- enter the server's API port
- optionally enter username and password, if you have protected the access to the servers's webinterface
5. Enter your credentials:
- your btc-wallet address (one for general use, and one for NiceHash)
- your MiningPoolHub credentials, if you plan to use this pool
- your MiningRigRentals credentials, if you plan to use this pool
- your region. Valid names are: US, Europe, Asia
- your currencies. Valid currencies are: BTC, USD, EUR, GBP, ETH, ..
- the pools, you want to mine as comma separated list.
- the algorithm, you want to mine as comma separated list.
- the devices, you want to use for mining. Valid descriptors are: gpu, cpu, nvidia, amd (RainbowMiner will show you, which devices are available on your machine) or use your device names (without spaces, without leading geforce): gtx1070, gtx1080ti ..
6. Let the downloads and benchmarking finish
- be patient! This might take a while
- Anyway: it will already mine to your wallets
Done!
Valid poolnames
2Miners, 2MinersSolo, 666Pool, 6Block, Acepool, AHashPool, Aionmine, BaikalMine, BaikalMineSolo, BeePool, Binance, BlockMasters, BlockMastersCoins, Bsod, BsodParty, BsodSolo, BtcPrivate, Cortexmint, CpuPool, EthashPool, Ethermine, Ezil, F2pool, FairPool, FlexPool, FluxPools, FlyPool, GosCx, GosCxParty, GosCxSolo, Grinmint, Hashcryptos, Hashpool, HashVault, HeroMiners, Hiveon, Icemining, LeafPool, LuckPool, LuckyPool, Luxor, MinerRocks, Minexmr, MiningDutch, MiningDutchCoins, MiningPoolHub, MiningPoolHubCoins, MiningPoolOvh, MiningRigRentals, Mintpond, MoneroOcean, Nanopool, NiceHash, NLpool, Poolin, Poolium, PoolSexy, ProHashing, Ravenminer, RPlant, SoloPool, SparkPool, Sunpool, SuprNova, Tecracoin, unMineable, UUpool, WhatToMine, WoolyPooly, WoolyPoolySolo, ZergPool, ZergPoolCoins, ZergPoolCoinsParty, ZergPoolCoinsSolo, ZergPoolParty, ZergPoolSolo, Zpool, ZpoolCoinsValid algorithms
Balloon, Bitcore, Blakecoin, Blake2s, BlakeVanilla, C11, Cortex, CryptoNightV8, Cuckaroo29, Cuckaroo29s, Ethash, X11, Decred, Equihash, Equihash144, Equihash192, Equihash-BTG, Groestl, Hex, HMQ1725, HSR, JHA, Keccak, Lbry, Lyra2RE2, Lyra2z, MyriadGroestl, NeoScrypt, Pascal, Phi, Phi2, Polytimos, Quark, Qubit, Scrypt, SHA256, Sib, Skunk, Skein, Tensority, Timetravel, Tribus, Veltor, X11, X12, X11evo, X16R, X16S, X17, X18, X21s, X22i, Yescrypt and many more: https://rbminer.net/algorithms/HOTKEYS
You can press the follwing keys, while RainbowMiner is waiting for the next run.
- E[x]it Miningscript = stop all running miner and exit RainbowMiner
- [S]kip switching prevention = immediately start the most profitable miner, without waiting for the switching prevention
- start [D]ownloader = start the downloader manually (only needed, if you manually updated a miner)
- [C]onfiguration = goto the configuration setup (after setup all miner will be restarted)
- [V]erbose off/on = switch the user interface from lite(=off) to full(=on)
- [P]ause = stop all running miner and wait until user presses P again
- [U]pdate = if a new release of RainbowMiner is available, this option will show up. Pressing this key will start the automatic update.
RECOMMENDATIONS & HELPERS
- Set your Windows virtual memory size to a fixed size, to the sum of your GPU memories x 1.1, e.g. if you have 6x GTX1070 8GB installed, use at least 53000 (Computer Properties->Advanced System Settings->Performance->Advanced->Virtual Memory)
- Submit bugs and feature requests here: https://github.com/RainbowMiner/RainbowMiner/issues
- if mining on GeForce GTX 1070/GTX 1070Ti/GTX 1080/GTX 1080Ti, it is recommended to set "Force P2-State" to "Off", so that the card will always operate in P0 state. How to set P0 state for my GTX1070 and GTX1080
- Important: NEVER EDIT THE "Start.bat" ! It will break the autoupdate. If you want to add commands to the start, edit .\Config\autoexec.txt
- the root directory of RainbowMiner contains the following, additional batch files:
Windows | Linux | Description |
---|---|---|
Start.bat |
./start.sh |
start RainbowMiner |
- | ./start-screen.sh |
start as Linux screen , Ctrl+A then d to detach, screen -r to reconnect |
- | ./start-nohup.sh |
start as background job, run ./stopp.sh to stop rainbowminer, run ./rbmlog.sh to follow the Rainbowminer logfile, run ./minerlog.sh to follow the miner log files |
Setup.bat |
./setup.sh |
start RainbowMiner configuration |
Install.bat |
./install.sh |
install pre-requisites + on linux: update powershell to the newest release with ./install.sh -pu |
InitServer.bat |
sudo ./initserver.sh |
make this rig a server |
InitClient.bat |
sudo ./initclient.sh |
make this rig a client |
InitStandalone.bat |
sudo ./initstandalone.sh |
make this rig a standalone machine |
GPUtest.bat |
sudo ./gputest.sh |
create gputestresults.txt with tech details |
Updater.bat |
./updater.sh |
manually update to newest release of RainbowMiner. Make sure, you stop RainbowMiner before running this helper |
ListDevices.bat |
- | list all available devices |
MinerLog.bat |
./minerlog.sh |
follow the output of the miners |
- | ./rbmlog.sh |
follow the RainbowMiner log (useful if RainbowMiner is running as background job) |
RemoveLogs.bat |
- | delete all log files to save some disk space |
RemovePresets.bat |
- | block presets from being written to miners.config.txt (see section MINERS) |
ResetBenchmark.bat |
- | reset all benchmarks |
ResetBenchmarkAMD.bat |
- | reset all AMD benchmarks |
ResetBenchmarkCPU.bat |
- | reset all CPU benchmarks |
ResetBenchmarkNVIDIA.bat |
- | reset all NVIDIA benchmarks |
ResetProfit.bat |
- | reset RainbowMiner's profit calculation |
TouchBenchmark.bat |
- | avoid benchmark of new miners, will set the timestamp of all miner stat files to now |
Stopp.bat |
./stopp.sh |
halt RainbowMiner at once |
WEB-INTERFACE
For your convenience, you can monitor and setup RainbowMiner using your web browser. The web interface very prominently shows RainbowMiner's live profitability and the current BTC exchange rates. To start the web interface, simply open the URL localhost:4000 in a new browser tab.
- Dashboard: shows the live running miners & pool balances, click the Pause/Restart button to halt and restart RainbowMiner. It will take up to 20 seconds, until the miner script finalizes the pause/restart procedure, so give it some time.
- Selected Devices: lists the preselected devices
- All Devices: lists all available devices in your rig
- Best Pools: lists the best possible pool for every algorithm
- All Pools: lists all pools available vs. all algorithms
- Miners: lists all miners vs. all algorithms
- Active Miners: lists the best possible miners for each algorithm
- Benchmarks: monitor and reset benchmarks of failed and updated miners, reset all benchmarks
CLIENT/SERVER NETWORKING
Choose one PC to be the Server (it may be a dusty old notebook). No need to let it mine, just let RainbowMiner start in paused mode. Select all other Rigs to act as Clients. All pool API communication will then be managed by the server: no more being blocked by the pools due to excessive use of their API
There is a Network setup built-in the configuration (press [C], then enter [N]) to help with the setup.
If you want it quicker, just run one of the following init scripts for very convenient pre-setup:
Windows | Linux | Description |
---|---|---|
InitServer.bat |
sudo ./initserver.sh |
make this rig a server |
InitClient.bat |
sudo ./initclient.sh |
make this rig a client |
InitStandalone.bat |
sudo ./initstandalone.sh |
make this rig a standalone machine |
Of course, you may also edit the Config\config.txt
directly.
If you change the RunMode of a rig, RainbowMiner needs to be restarted.
Setup as Server
- one PC takes the role as Server
- it will act as gateway to the pool APIs for all Clients
- enable auth: choose an username and a password.
- the server will be running on the API port
These are the server-fields to fill in the config.txt (or use the initscripts or the built-in config)
"RunMode": "server",
"APIport": 4000,
"APIauth": "1",
"APIuser": "serverusername",
"APIpassword": "serverpassword",
Setup as Client
- all other Rigs shall be clients
- if you have enable auth at the server: set the username and password.
- the RainbowMiner running on the server will tell you the machinename, ip address and port
- use either the machinename or the ip address of the server as servername
These are the client-fields to fill in the config.txt (or use the initscripts or the built-in config)
"RunMode": "client",
"ServerName": "machinenameofserver",
"ServerPort": 4000,
"ServerUser": "serverusername",
"ServerPassword": "serverpassword",
"EnableServerConfig": "1",
"EnableServerPools": "1",
"ServerConfigName": "config,coins,pools",
"EnableServerExcludeList": "0",
"ExcludeServerConfigVars": "WorkerName,DeviceName,ExcludeDeviceName,Proxy,APIPort,APIUser,APIPassword,APIAuth,MSIApath,NVSMIpath,CPUMiningThreads,CPUMiningAffinity,GPUMiningAffinity,ServerName,Serve
rPort,ServerUser,ServerPassword,EnableServerConfig,ServerConfigName,ExcludeServerConfigVars,RunMode,StartPaused",
If "EnableServerConfig" is set to "1", the client will try to download the config files specified with "ServerConfigName" from the server. If you want to provide the individual rig with specific config files, put them into a subdirectory .\Config\<workername>
(linux: ./Config/<workername>
) . Use lowercase letters for the subdirectoy <workername>
.
Setting the field "EnableServerExcludeList" to "1" lets your client use the servers "ExcludeServerConfigVars" field, instead of the local one in config.txt.
All variables defined in "ExcludeServerConfig" will not be overwritten by the server's values.
If "EnableServerPools" is set to "1", the client will download the server's pool and balance statistics and mine to exactly those pools (except for MiningRigRentals, which will always be handled locally).
POOLS
2Miners
https://www.2miners.com/ no auto-exchange, a separate wallet address is needed for each coin (ETH, XZC and more) you want to mine. Set in pools configuration or edit pools.config.txt2MinersSolo
https://www.2miners.com/ no auto-exchange, a separate wallet address is needed for each coin (ETH, XZC and more) you want to mine solo. Set in pools configuration or edit pools.config.txt666Pool
https://www.666pool.cn/ no auto-exchange, enter wallet address for each coin you want to mine. All coins mined with PPLNS - if you want PPS, add '@pps' to your wallet-address. Set in pools configuration or edit pools.config.txt6Block
https://6block.com/ HNS (Handshake) pool, registration mandatory. Create a mining account and enter this account name as wallet in pools configuration or edit pools.config.txtAcepool
https://acepool.top/ Equihash-pool in eu region for BEAM and XGM(Defis), set your acepool public key (can be created on their website) as wallet in pools configuration or edit pools.config.txtAHashPool
https://www.ahashpool.com/ auto-exchange and payout in BTCAionmine
https://aionmine.org/ AION/Equihash210,9-pool, pays in AION, enter your Aion wallet address in pools configuration or edit pools.config.txtBaikalMine
https://baikalmine.com/ no auto-exchange, enter wallet address for each coin you want to mine. Set in pools configuration or edit pools.config.txtBaikalMineSolo
https://baikalmine.com/ no auto-exchange, solo mining, only. Enter wallet address for each coin you want to mine. Set in pools configuration or edit pools.config.txtBeePool
https://www.beepool.com/ no auto-exchange, enter wallet address for each coin you want to mine. Set in pools configuration or edit pools.config.txtBinance
https://pool.binance.com/ no auto-exchange, ETH mining, instead of wallet, setup and use a miner name. Set in pools configuration or edit pools.config.txtBlockMasters
https://www.blockmasters.co/ auto-exchange and payout in BTC, mine most profitable algorithm. Pool chooses coin or merged mining benefitsBlockMastersCoins
https://www.blockmasters.co/ auto-exchange and payout in BTC, mine most profitable coin. Either with auto-exchange to a currency of wish, or mine directly to individual coin wallets. If you setup RainbowMiner with many algorithm, expect a lot of switching.Bsod
https://bsod.pw/ no auto-exchange, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtBsodParty
https://bsod.pw/ no auto-exchange, a separate wallet address is needed for each coin you want to mine solo together with others. Set in pools configuration or edit pools.config.txt. Set "PartyPassword" in pools.config.txt for your groupBsodSolo
https://bsod.pw/ no auto-exchange, a separate wallet address is needed for each coin you want to mine solo. Set in pools configuration or edit pools.config.txtBtcPrivate
https://pool.btcprivate.org/ no auto-exchange, dedicated to BitcoinPrivate BTCP mining, a wallet address is needed. Set in pools configuration or edit pools.config.txtCortexmint
http://cortexmint.com/ CTXC/Cortex-pool, pays in CTXC, enter your Cortex wallet address in pools configuration or edit pools.config.txtCpuPool
http://cpu-pool.com/ specialized on CPU mining, no auto-exchange, a separate wallet is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtEthashPool
https://ethashpool.com/ auto-exchange to ETH and BTC, registration is mandatory for autoexchange to work. Either set wallet address or username (autoexchange) in pools configuration or edit pools.config.txtEthermine
https://ethermine.org/ no auto-exchange, a separate wallet address is needed for each coin (ETH, ETC) you want to mine. Set in pools configuration or edit pools.config.txtEthermine
[https://ezil.me](https://ezil.me/?p=dcf9) no auto-exchange, a ZIL wallet plus either an ETH or an ETC wallet is needed. For more info on dual mining ZIL, see the FAQ below. Set in pools configuration or edit pools.config.txtF2Pool
https://www.f2pool.com/ no auto-exchange, either enter your f2pool username as wallet address, or a real wallet address for each coin you want to mine. Set in pools configuration or edit pools.config.txtFairPool
https://fairpool.xyz/ no auto-exchange, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtFlexPool
https://flexpool.io/ no auto-exchange, pays in ETH. Set wallet in pools configuration or edit pools.config.txtFluxPools
https://fluxpools.net/ no auto-exchange, mining TCR, FIRO and FLUX, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtFlypool
https://flypool.org/ no auto-exchange, a separate wallet address is needed for each coin (ZEC, YEC) you want to mine. Set in pools configuration or edit pools.config.txtGosCx
https://gos.cx/ no auto-exchange, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtGosCxParty
https://gos.cx/ no auto-exchange, a separate wallet address is needed for each coin you want to mine solo together with others. Set in pools configuration or edit pools.config.txt. Set "PartyPassword" in pools.config.txt for your groupGosCxSolo
https://gos.cx/ no auto-exchange, a separate wallet address is needed for each coin you want to mine solo. Set in pools configuration or edit pools.config.txtGrinmint
https://grinmint.com/ GRIN/Cuckaroo29-pool, pays in GRIN, set your GRIN-eMail-address as wallet and enter your Grinmint password in pools configuration or edit pools.config.txtHashCity
https://hashcity.org/ no auto-exchange, a separate wallet address is needed for each coin you want to mine. Site registration and username required. Set in pools configuration or edit pools.config.txt, first.Hashcryptos
https://www.hashcryptos.com/ auto-exchange and payout in BTC and other currencies. To mine, you need to "activate" your wallet address on their website, first.Hashpool
https://hashpool.com/ no auto-exchange, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtHashVault
https://hashvault.pro/ no auto-exchange, dedicated to cryptonight mining, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtHellominer
https://hellominer.com/ no auto-exchange, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtHeroMiners
https://herominers.com/ no auto-exchange, a separate wallet address is needed for each coin (ETH, ETC, BEAM, GRIN, Monero, Haven, Conceal, Cortex and more) you want to mine. Set in pools configuration or edit pools.config.txtHiveon
https://hiveon.net/ no auto-exchange, a separate wallet address is needed for each coin (ETH, ETC) you want to mine. Set in pools configuration or edit pools.config.txtIcemining
https://icemining.ca/ no auto-exchange, very good BCD (BitcoinDiamond) performance, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtLeafPool
https://www.leafpool.com/ no auto-exchange, mainly BEAM mining, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtLuckPool
https://luckpool.net/ no auto-exchange, mining VRSC and YEC, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtLuckyPool
https://luckypool.io/ no auto-exchange, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtLuxor
https://mining.luxor.tech/ no auto-exchange, small pool with hand picked coins, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtMinerRocks
https://miner.rocks/ no auto-exchange, dedicated to cryptonight mining, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtMinexmr
https://minexmr.com/ if you are totally in Monero, then this pool might be the best choice: it's monero and no autoexchange, only. A monero XMR wallet address is needed. Set in pools configuration or edit pools.config.txtMiningDutch
https://mining-dutch.nl/ auto-exchange and paymout in various currencies, username required. Mining by algorithm profitabilityMiningDutchCoins
https://mining-dutch.nl/ auto-exchange and paymout in various currencies, username required. Mining by coin profitabilityMiningPoolHub
https://miningpoolhub.com/ auto-exchange and paymout in BTC, username required. Parameter uses the 17xxx ports therefore allows the pool to decide on which coin is mined of a specific algorithmMiningPooHubCoins
https://miningpoolhub.com/ auto-exchange and paymout in BTC, username required. Allows for RainbowMiner to calculate and determine what is mined from all of the available coins (20xxx ports).MiningPoolOvh
https://www.mining-pool.ovh/ no auto-exchange registration is mandatory, mines VRM (VeriumReserve). Set Mining-Pool.ovh user plus worker (e.g. "miner.001") as wallet address and your worker password in pools configuration or edit pools.config.txtMiningRigRentals
[https://www.miningrigrentals.com/](https://www.miningrigrentals.com/?ref=2598069) rent your complete rig to interested users in exchange for BTC, ETC, LTC or DASH. See extra section for more detailsMintpond
https://mintpond.com/ if you are totally in Zcoin, then this pool might be the best choice. A separate wallet address is needed for XZC. Set in pools configuration or edit pools.config.txtMoneroOcean
https://moneroocean.stream/ auto-exchange and payout in XMR, enter your Monero wallet address and a password (either a real password or your email-address) into pools.config.txt to start miningNanoPool
https://nanopool.org/ no auto-exchange, a separate wallet address is needed for each coin (ETH, ETC, ZEC, ETN, SIA, PASC) you want to mine. Set in pools configuration or edit pools.config.txtNicehash
[https://www.nicehash.com/](https://www.nicehash.com/?refby=c402ea4d-9203-414c-b96e-526e34ad20e1) auto-exchange and payout in BTC, use of Nicehash wallet is recommended, see note belowNLpool
https://www.nlpool.nl/ auto-exchange and payout in BTC, LTC or any coin, that is listed at the poolPoolin
https://www.poolin.com/ no auto-exchange registration is mandatory, mines ETH and RVN. Set Poolin subaccount-worker plus minerid (e.g. "miner.001") as wallet address in pools configuration or edit pools.config.txtPoolium
https://www.poolium.com/ no auto-exchange registration is mandatory, mines VRM. Set Poolium user plus worker (e.g. "miner.001") as wallet address and your worker password in pools configuration or edit pools.config.txtPoolSexy
https://pool.sexy/ no auto-exchange, mostly DaggerHashimoto (ethash) mined coins, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtProHashing
[https://prohashing.com/](https://prohashing.com?r=nmn8AAb5) auto-exchange and payout in over 200 coins possible. Pool will automatically select the most profitable coin. Switching will be by algorithm. Put your ProHashing username into parameter "User" in pools.config.txtRavenminer
https://www.ravenminer.com/ ravencoin-pool for us region, pays in RVN, set your RVN-address in pools configuration or edit pools.config.txtRplant
https://pool.rplant.xyz/ specialized on CPU mining, no auto-exchange, a separate wallet is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtSoloPool
https://solopool.org/ no auto-exchange, solo mining, only. A separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtSparkPool
https://sparkpool.com/ no auto-exchange, a separate wallet address is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtSunpool
https://sunpool.top/ Equihash-pool in eu region for BEAM, GRIMM, XGM(Defis) and ATOMI, set your sunpool public key (can be created on their website) as wallet in pools configuration or edit pools.config.txtSuprNova
https://suprnova.cc/ no auto-exchange, enter your SuprNova username as wallet address for each coin you want to mine. Make sure, that your workername on SuprNova matches your rig's name and the SuprNova worker password is "x". Set in pools configuration or edit pools.config.txtTecracoin
https:/pool.tecracoin.io/ no auto-exchange, a separate wallet is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtunMineable
https://unmineable.com/ auto-exchange and payout in over 50 non-mineable coins like [XTZ](https://unmineable.com/?ref=c4qu-cls0), [UNI](https://unmineable.com/?ref=klty-w0jc), [SUSHI](https://unmineable.com/?ref=vzm5-yhp6), [YFI](https://unmineable.com/?ref=gsx6-01j1), [TRX](https://unmineable.com/?ref=zxih-o6yi) etc. mined with Ethash, Etchash, RandomX or KawPow. Put your coin wallet addresses into pools.config.txtUUPool
https://www.uupool.com/ no auto-exchange, a separate wallet is needed for each coin you want to mine. Set in pools configuration or edit pools.config.txtWoolyPooly
https://www.woolypooly.com/ no auto-exchange, a separate wallet address is needed for each coin (ETH, CFX, VEIL and more) you want to mine. Set in pools configuration or edit pools.config.txtWoolyPoolySolo
https://www.woolypooly.com/ no auto-exchange, a separate wallet address is needed for each coin (ETH, CFX, VEIL and more) you want to mine solo. Set in pools configuration or edit pools.config.txtZergPool
https://www.zergpool.com/ auto-exchange and payout in BTC, LTC or any coin, that is listed at the pool. Pool will automatically select the most profitable coin. Switching will be by algorithm.ZergPoolParty
https://www.zergpool.com/ auto-exchange and payout in BTC, LTC or any coin, that is listed at the pool. Pool will automatically select the most profitable coin. Switching will be by algorithm. Set "PartyPassword" in pools.config.txt for your groupZergPoolSolo
https://www.zergpool.com/ auto-exchange and payout in BTC, LTC or any coin, that is listed at the pool. Pool will automatically select the most profitable coin. Switching will be by algorithm. Solo mining!ZergPoolCoins
https://www.zergpool.com/ auto-exchange and payout in BTC, LTC or any other coin. Mine most profitable coin, either with auto-exchange to a currency of wish, or mine directly to individual coin wallets. If you setup RainbowMiner with many algorithm, expect a lot of switching. Switching will be by coin.ZergPoolCoinsParty
https://www.zergpool.com/ auto-exchange and payout in BTC, LTC or any other coin. Mine most profitable coin, either with auto-exchange to a currency of wish, or mine directly to individual coin wallets. If you setup RainbowMiner with many algorithm, expect a lot of switching. Switching will be by coin. Set "PartyPassword" in pools.config.txt for your groupZergPoolCoinsSolo
https://www.zergpool.com/ auto-exchange and payout in BTC, LTC or any other coin. Mine most profitable coin, either with auto-exchange to a currency of wish, or mine directly to individual coin wallets. If you setup RainbowMiner with many algorithm, expect a lot of switching. Switching will be by coin. Solo mining!Zpool
https://www.zpool.ca/ auto-exchange and payout in BTC, DASH, XVG, DGB and KMD or any other cointhat is listed at the pool. Pool will automatically select the most profitable coin. Switching will be by algorithm.ZpoolCoins
https://www.zpool.ca/ auto-exchange and payout in BTC, DASH, XVG, DGB and KMD or any other cointhat is listed at the pool. Mine most profitable coin, either with auto-exchange to a currency of wish, or mine directly to individual coin wallets. If you setup RainbowMiner with many algorithm, expect a lot of switching. Switching will be by coin.Notes for [NiceHash](https://www.nicehash.com/?refby=c402ea4d-9203-414c-b96e-526e34ad20e1)
If you plan to mine through Nicehash, I strongly recommend, that you register an account with them (https://www.nicehash.com/register). In this case, NiceHash will provide you with an extra NiceHash wallet/bitcoin address (RainbowMiner will ask for this address during the setup or configuration process). This lowers the minimum payout sum from 0.1BTC (for external wallet) to a very low 0.001BTC (for Nicehash wallet). An additional benefit for Coinbase users: sending BTC from the NiceHash wallet to your Coinbase account is free of charge.
Notes for the pools BlockCruncher, BlockMasters, Bsod, CryptoKnight, GosCx, Hashcryptos, HashPool, Icemining, MinerRocks, NLpool, PocketWhale, ProHashing, Ravenminer, YiiMP and Zpool
The miner can be setup to mine any coin or currency, that is listed at the respective pool. The pool will then payout to the given non-BTC wallet address. Take into account, that non-BTC payouts depend heavily on that coin being mined. If the pool has not or is not mining that currency, the payouts will be delayed until the pool has mined the blocks. Read the pools websites, about the mineability and reliability of a currency. It's recommended to use BTC as any other coin could be removed at anytime and payouts will not occur. The pools Bsod, CryptoKnight, GosCx, Icemining, MinerRocks, PocketWhale, Ravenminer and Yiimp do not have auto-exchange to BTC. Please be careful, what you choose to mine.
Notes for Solo- and Party-mining
Bsod.pw, Gos.cx and ZergPool allow solo mining and party mining. This is achieved by adding parameters "m=solo" or "m=party.yourpassword" to the password of the pool. There are two ways to achieve this with RainbowMiner:
- either supply
"BTC-Params": "m=solo",
/"BTC-Params": "m=party.password",
in pools.config.txt and use the standard pools modules "Bsod", "GosCx", "Zergpool", "ZergpoolCoins" - or use the special pool modules "BsodSolo", "BsodParty", "GosCxSolo", "GosCxParty", "ZergpoolSolo", "ZergpoolParty", "ZergpoolCoinsSolo", "ZergpoolCoinsParty" - in case of party mining, these pool modules come with an extra parameter "PartyPassword" in pools.config.txt
MINERS
- The RainbowMiner contains a list of well approved miners in the directory "Miners"
- The miner Excavator mines on NiceHash pool, only
- Miners Excavator & Excavator1.4.4 run in their own miner window, even if you select to hide miner windows.
- Each miner's algorithm can be fine tuned for each device in your mining rig
Special finetuning
The following miners can be fine tuned, using config files. Most of the config files are being generated upon the first start of the miner. All config files will be written once, only, and kept through miner updates. To let RainbowMiner recreate those files, they will have to be deleted.
Minername | Type | Path | Configfile(s) | Documentation Link |
---|---|---|---|---|
FireIce/XMR-Stak | AMD | Bin\Cryptonight-FireIce | amd.txt | https://github.com/fireice-uk/xmr-stak/blob/master/doc/tuning.md |
FireIce/XMR-Stak | CPU | Bin\Cryptonight-FireIce | cpu.txt | https://github.com/fireice-uk/xmr-stak/blob/master/doc/tuning.md |
FireIce/XMR-Stak | NVIDIA | Bin\Cryptonight-FireIce | nvidia.txt | https://github.com/fireice-uk/xmr-stak/blob/master/doc/tuning.md |
JceminerCpu | CPU | Bin\CPU-Jceminer | config_[algorithm]-CPU.txt | https://bitcointalk.org/index.php?topic=3281187.0 |
SrbMiner | AMD | Bin\Cryptonight-Srbminer | config_[algorithm]-[devicemodel].txt | https://bitcointalk.org/index.php?topic=3167363.0 |
ALGORITHMS
RainbowMiner uses a built-in hash table to convert different algorithmnames to unique and beautified, internal representations. Because of this, you do not have to care too much about how to write an algorithm, when directly editing the "Config\config.txt" or using command line parameters. E.g. cryptonight-v7, cryptonight/1, cryptonightv7 would all be converted to CryptonightV7.
Special notes for Equihash
The different Equihash algorithms are distinguished using the following Parameters: (n, k). For example, the classic Equihash first used by Zcash used n = 200 and k = 9, so it became Equihash (200, 9). For BEAM and ZEL a new variant EquihashR has been introduced. These add an extra paramter (r).
The n, k and r values create enormous differences in the minimum memory requirement, and create enormous differences in how the actual mining software is coded in order to do the mining.
RainbowMiner uses the following nameing convention:
- Equihash16x5 = Equihash (96, 5)
- Equihash20x9 = Equihash (200, 9)
- Equihash21x9 = Equihash (210, 9)
- Equihash24x5 = Equihash (144,5), e.g. BTG
- Equihash24x7 = Equihash (192,7), e.g. ZEROcoin
- EquihashR25x4 = Equihash (125,4), e.g. ZelHash
- EquihashR25x5 = Equihash (150,5), e.g. GRIMM
- EquihashR25x5x3 = Equihash (150,5,3), e.g. BEAM
The new numbers (16x5, 20x9, ..) describe the number of bits matched in each round for the algorithm, and provide a relative measure of the “hardness” of the algorithm (the numbers can be calculated, using n and k: n/(k+1) ) For EquihashR the parameter (r) will be added to the algorithm name. For r=0, nothing will be added.
RainbowMiner's built-in hash table makes it possible for you, to use many different algorithmnames. E.g. equihash-144_5, equihash1445, equihash-btg, equihash144btg will all be represented by Equihash24x5. BeamHash will be represented by EquihashR25x5x3
OVERCLOCKING OVERVIEW
There are two ways to adjust overclocking values in RainbowMiner:
- Option1: MSI Afterburner profiles
- recommended for mining rigs with max. 6 identical GPUs
- to enable, set "MSIAprofile" to the number of your default AB profile ([C]onfiguration->[C]ommon)
- MSI Afterburner profiles are addressed by number 1-5
- Option2: custom overclocking profiles
- recommended for mining rigs with more than 6 or mixed GPUs
- to enable, set "EnableOCProfiles" to "1" ([C]onfiguration->[C]ommon)
- custom profiles have freely defined names (it differs from option 1!)
- important: set a default profile for each GPU group ([C]onfiguration->[D]evices). Use the name of the profiles (look into ocprofiles.config.txt, if in doubt)
- independant of MSI Afterburner
If you do not want to use the overclocking features in RainbowMiner: set both, "EnableOCProfiles" and "MSIAprofile", to "0" ([C]onfiguration->[C]ommon)
Frequently asked questions
Just wondering what would happen if in miners.config I set the ocprofile to a clock and then set it different within AF under the same profile number. Would one trump the other? If so which one would override?
Only one of the two OC options can be enabled at a time:
config.txt | MSIAprofile | EnableOCprofiles |
---|---|---|
Use ocprofiles.config.txt | whatever | 1 |
Use Afterburner profiles | 1-5 | 0 |
No OC switching at all | 0 | 0 |
The differences:
MSIAprofiles | ocprofiles | |
---|---|---|
Can handle parallel miners on different GPUs | no | yes |
Depends on Afterburner | yes | no |
Depends on nvidiaInspector | no | yes |
Speed with more than 6 GPU | slow | fast |
Works for Nvidia | yes | yes |
Works for AMD | yes | no |
max. number of profiles | 5 | unlimited |
Individual profile names | no | yes |
I set the ocprofile to a clock and then set it different within AF under the same profile number
- MSI Afterburner profiles are fixed to a maximum of five and is being selected by their number 1 to 5 in parameter "MSIprofile" in miners.config.txt"
- ocprofiles are unlimited in ammount, you decide what their names are. RainbowMiner comes with an example ocprofiles.config.txt, where the profiles are named "Profile1", "Profile", .. "Profile9". The profile is being selected by the full name in parameter "OCprofile" in miners.config.txt (for example "Profile2")
My overclocking settings do not work on Linux
- check config.txt, if "EnableOCProfiles" is set to 1
- are you running a headless system (without monitor), then set "EnableLinuxHeadless" to "1"
- open a linux shell and start
ocdaemon status
- it should reportRunning
. If not, run./install.sh
again. - open a linux shell and cd to IncludesLinux/bash within your RainbowMiner folder - start
./getxauth.sh
and see, if the XAUTHORITY path matches your system's. If not, enter your system's path into parameter "LinuxXAuthority" in config.txt.
"EnableOCProfiles": "1",
"EnableLinuxHeadless": "1",
OC OPTION1: MSI AFTERBURNER PROFILES
Overclocking option, recommended for unique GPU mining rigs with maximum 6 GPU
Introduction
MSI Afterburner allows to configure up to five profiles. Each of which defines the exact overclocking parameters for any number of GPU. RainbowMiner will never change these values, but it can be defined for miners/algorithms/devices, that another profile than the default should be used during mining (miners.config.txt, fields "MSIAprofile"). RainbowMiner comes with some miner/algorithm presets, already.
Enable Profile Switching
By default, the profile switching is disabled. To enable MSI Afterburner profile switching:
- check or set the path to MSIA (config.txt, field "MSIApath")
- set the profile number, you want to be used as default (config.txt, field "MSIAprofile")
Explanation of operation
RainbowMiner's default setup has already preset some Profile fields for the following algorithms (miners.config.txt, fields "MSIAprofile"):
- ClaymoreEthash-Keccak, NeoScrypt => Profile 3
- Lyra2Re2, Lyra2z, X16r, X16s => Profile 4
- ClaymoreEthash-Blake2s, ClaymoreEthash-Pascal => Profile 5
Remember: no overclocking values will be changed by RainbowMiner! It will switch your preset profiles, only.
I recommend you set the following profile setup in MSI Afterburner, so that you can use the default setup of RainbowMiner. The overclocking values in brackets (core clock/memory clock) are those I use for my GTX 1070 and are only for illustration.
- Profile 1: no oc (e.g. +0/+0)
- Profile 2: max. core / max. memory oc (e.g. +100/+400), good for most miners
- Profile 3: max. core / half memory oc (e.g. +100/+200), recm. for claymore ethash-keccak, neoscrypt
- Profile 4: max. core / low memory oc (e.g. +100/-500), recm. for lyra2re2, lyra2z, x16r, x16s
- Profile 5: max. core / reduced memory oc (e.g. +100/+350), recm. for claymore ethash-blake2s, claymore ethash-pascal
Be careful when playing with OC, since this can damage your devices. RainbowMiner will not be responsible, if you kill your devices.
OC OPTION2: CUSTOM OVERCLOCKING PROFILES
Recommended for mining rigs with more than 6 GPU or different GPU
Introduction
Each miner/device/algorithm combination can have it's own overclocking values set by RainbowMiner. To enable: set "EnableOCProfiles" to "1" in your config.txt or use the [C]onfiguration->[C]ommon.
!! It is important, that you coose a default profile for each GPU device in your devices.config.txt !!
You can edit the file directly: put the name of your custom default profile into field "DefaultOCprofile" Alternatively, the devices can be changed using [C]onfiguration->[D]evices
1. setup overclocking profiles
Use [C]onfiguration->[O]C-Profiles to edit, create and delete overclocking profiles. Values for PowerLimit (%), ThermalLimit (�C), MemoryClockBoost (MHz), CoreClockBoost (MHz) and LockVoltagePoint (�V) (see hint below) can be defined. You may name the profiles like you want. Hint: Use the complete profile's names, when editing the config files directly. Of course you may also edit the ocprofiles.config.txt file directly.
Hint: LockVoltagePoint can only be set, if EnableOCvoltage is set to 1 in your config.txt (or use [C]onfiguration->[C]ommon to change)
2. set one default profile for each GPU group
With the help of [C]onfiguration->[D]evices it is very easy to choose a default profile for each GPU group used. The values can be edited directly in file devices.config.txt, too. Put the names of the default profiles into the property "DefaultOCprofile".
3. assign profiles to miner-device-algorithms
The assignment is done, using either [C]onfiguration->[M]iners or directly edited into the miners.config.txt file. Find your miner, the device it will use, plus the algorithm and put the profile's name into the field "OCprofile"
COPY CURRENT CONFIGURATION TO NEW RIGS
RainbowMiner comes with an easy setup configuration.
1. get a setup.json
Open http://localhost:4000 on your current rig and click "Get setup.json" (or directly enter http://localhost:4000/setup.json into your internet browser) and you will get a setup.json file, containing your current rig's configuration files.
2. install RainbowMiner
Extract a current RainbowMiner zip onto your new mining rig and copy the setup.json into the RainbowMiner folder. Run install.bat/install.sh to get missing system libraries, then run Start.bat/start.sh.
Now RainbowMiner will ask, if it should import the data from the setup.json. That's it!
Hint: the setup.json contains an autostart section.
Change this to control the setup behavior.
"Autostart": {
"Enable": "0",
"ConfigName": "All",
"DeviceName": "GPU",
"WorkerName": ""
},
Settings of the "Autostart"
section explained:
"Enable"
setting this to "1" will force RainbowMiner to skip the import questionaire during start. It will import all data and begin mining at once."ConfigName"
define which of the config file's should be imported. A well approved combination would be"Config,Coins,Pools"
."All"
will import all possible modules."DeviceName"
define which devices RainbowMiner should use. Possible values are CPU, GPU, NVIDIA, AMD (and even GPU#00, GPU#01, ..). Leave empty to start without devices."WorkerName"
define the workername of the new rig. If left empty, the rig's machinename will be used as workername, automatically.
ADVANCED CONFIGURATION
RainbowMiner has a configuration function built-in: to change any parameter of the script, press key "C", while the script is running. There is no more need to edit the following config files directly.
Config files are found in directory "Config"
- config.txt = general settings, wallet, etc.
- pools.config.txt = pool setup, set a different wallet, workername for each pool and coin
- miners.config.txt = individually add arguments to miner (selected by name and device names and algorithm)
- devices.config.txt = control algorithms and miners to be used by specific devices
- algorithms.config.txt = globally adjust algorithms, like min. hashrate, timetofind etc.
- coins.config.txt = globally adjust specific coins, like min. hashrate, timetofind etc.
- ocprofiles.confit.txt = setup custom overclocking profiles
- autoexec.config.txt = add executables/commands to be executed when RainbowMiner starts
Note: if you have not started the Start.bat yet, there will be no config files! Start it first! Config files are in JSON format. Look here for to get an idea, how they work: https://www.tutorialspoint.com/json/index.htm Be careful, when editing these files. Every comma counts!
Config\config.txt
The config file will contain variables to reflect default values. You can safely replace those variables with values.
An example:
"StartPaused": "$StartPaused",
"Interval": "$Interval",
You may replace $StartPaused and $Interval with your MiningPoolHub USER ID/API KEY
"StartPaused": "0",
"Interval": "90",
Basic setup
- Wallet = your general BTC wallet address
- WorkerName = your desired worker name
- Currency = currencies, you want to be shown [default=BTC,USD,EUR]
- Region = your region, [default=US]
- UIstyle = set to "full" for complete listing, set to "lite" for reduced listing [default=full]
- UIsorting = set to "profit" in order to force UI sorting by profit, set to "biased" for internal biased profits [default=biased]
- APIPort = enter a free web-interface port localhost: [default=4000]
- APIThreads = Enter number of possible, parallel API threads (0=automatic, see notes) [default=0]
- EnableAutoUpdate = set to 1 if you want RainbowMiner to be updated automatically [default=1]
- EnableUpdateDuringPause = set to 1 if you want RainbowMiner to be updated automatically, even if it is paused [default=1]
- EnableUpdateWhenScheduled = set to 1 if the automatic updates should be scheduled: set EnableUpdate to 1 for a schedule in scheduler.config.txt (also, EnableAutoUpdate must be set to 1) [default=0]
- EnableAutoAlgorithmAdd = set to 1 if Rainbowminer should add all newly added algorithms to your config.txt, during (automatic) update
- EnableMinerStatus = set to 1 to enable central monitoring
- MinerStatusURL = url to central monitoring server [default=https://rbminer.net]
- MinerStatusKey = your unique miner status key (get one at https://rbminer.net, you can reuse MPM keys)
- MinerStatusEmail = if your miningrig goes offline at https://rbminer.net/monitoring, a warning will be sent to this email-address. Leave empty, if you do not want notifications.
- PushOverUserKey = if your miningrig goes offline at https://rbminer.net/monitoring, a notification will be sent via https://pushover.net, using your pushover user key. Leave empty, if you do not want this.
- MinerStatusMaxTemp = maximum allowed GPU temperature, triggers push message, if above [default=90]
- MinerStatusMaxCrashesPerHour = maximum allowed crashes per hour, triggers push message, if above [default=5]
- DiskMinGB = minimum free disk space in GB, triggers push message, if below [default=5]
Notes for the automatic values for APIThreads:
- if the RunMode is set to "Server", the thread count will be set to the number of CPU threads (with a maximum of 8)
- otherwise, the thread count will be set to the number of CPU cores (with a maximum of 2)
Select devices
- DeviceName = list of device descriptors, with which you want to mine [default=gpu]
- click ListDevices.bat to find out which devices are availabe
- out of this table, models, vendors and names can be used to select
- for mining on all GPUs, use "gpu"
- for mining on all Nvidia GPUs use "nvidia"
- for mining on all AMD GPUs use "amd"
- for mining on CPU, use "cpu"
- examples:
- "nvidia"
- "gtx1070,gtx1080,cpu"
- "cpu,gpu"
- "gpu#01,gpu#03"
- ExcludeDeviceName = list of device descriptors to exclude from mining (see DeviceName for explanation)
- CPUMiningThreads = enter the number of softwarethreads being used by CPU miners. Adds "-t [threads]" to commandline of cpuminer forks
- CPUMiningAffinity = enter a hex number to define CPU mining core affinity (e.g. 0xAAAA). Adds "--cpu-affinity [affinity]" to commandline of cpuminer forks
- GPUMiningAffinity = enter a hex number to define GPU miner's CPU core affinity for validating results (e.g. 0xAAAA). Especially useful, when mining CPU and GPU in parallel.
If you defined CPUMiningThreads or CPUMiningAffinity, you may override the values for single miner, by adding your own "-t" and "--cpu-affinity" to the field Params in miners.config.txt. ClaymoreCPU, FireIce and JceminerCpu are not affected by these settings. They can be finetuned by editing config files (see section MINERS)
The affinity values define bitmasks, bit 0 = Core 0, bit 1 = Core 1, etc. The bitmasks are built from right to left.
Some examples:
0 or 1 - 1 CPU/Core on or off.
10 - Core/CPU 2 On, 1 Off.
100 - Core/CPU 3 On, 1 and 2 off.
101010 - Odd cores on, even off, 6 core.
10101010 - Odd cores on, even off, 8 core.
10101010101 - Even cores on, Odds off, 12 core.
To convert those binary 0/1 values into a hex number, you may use this Bin/Hex Converter.
Select algorithms
- Algorithm = list of algorithms, you want to mine [default=bitcore,blake2s,c11,cryptonightheavy,cryptonightv7,ethash,equihash,hmq1725,hsr,keccak,keccakc,lyra2re2,lyra2z,neoscrypt,pascal,phi,skein,skunk,timetravel,tribus,x16r,x16s,x17,vit,xevan,yescrypt,yescryptr16]
- ExcludeAlgorithm = list of algorithms, you want to exclude from mining
- ExcludeCoin = list of coins, you want to exclude from mining
- ExcludeFromWatchdog = list of algorithms or miner, you want to exclude from the watchdog
- DisableUnprofitableAlgolist = set to "1" if you do not want to use the list of unprofitable algorithms, provided live by RainbowMiner. [default=0]
- DisableUnprofitableCpuAlgolist = set to "1" if you do not want to use the list of unprofitable CPU algorithms, provided live by RainbowMiner (if you want to mine all possible GPU algorithms on your CPU). [default=0]
Note: RainbowMiner uses two list of unprofitable algorithms. The lists are both maintained actively online and updated every hour. Both lists are active, by default. This avoids running benchmarks for algorithms, that normally don't turn into good profit.
- unprofitable.json = contains mostly ASIC algorithms with very low GPU mining profitability. This list is also in use as emergency switch-off for coins/algorithms, for which the pools fail to provide valid numbers. This avoids mining to rogue coins/algorithms.
- unprofitable-cpu.json = contains mostly GPU algorithms, with very low CPU mining profitability. If you like and want to mine one of these algorithms on your CPU, set
"DisableUnprofitableCpuAlgolist": "1",
in config.txt. There is no drawback, just low profits :)
Select miners
- MinerName = list of miner, you want to use for mining (see directory Miners, without .ps1, e.g. CcminerAlexis78.ps1 -> CcminerAlexis78)
- ExcludeMinerName = list of miner names, you want to exclude from mining
- ExcludeMinersWithFee = exclude all miners, that have a developer fee built-in [default=0]
- PreferMinerName = list of miner names, that you prefer (see PreferMinerMargin)
- PreferMinerMargin = Choose one of your preferred miners, if it's hashrate is not lower than xx% of the top miner's (in percent) [default=5]
- EnableCheckMiningConflict = Enable conflict check if running CPU hungry GPU miners (for weak CPUs) [default=0]
- EnableEthashZombieMode = Enable Ethash mining with slower hashrate, even if the current DAG size doesn't fit into the GPU memory [default=0]
- DisableDualMining = set to 1, if you want to disable all dual mining [default=0]
- IgnoreFees = set to 1, if you do not want RainbowMiner to account the pool- and miner fees [default=0]
- ShowMinerWindow = show (1) or do not show (0) miner windows. Note: excavator will always run in an extra window [default=0]
- FastestMinerOnly = set to 1 to reduce list by only showing the fastest miner [default=1]
- DisableExtendInterval = during benchmark, some miners will run longer to find an accurate hashrate. Set to 1 to disable the extended times (this is not recommended, as it may result in inaccurate hashrates or failed some miners) [default=0]
Select pools
- PoolName = list of pool names, you want to use for mining [default=nicehash,miningpoolhub]
- ExcludePoolName = list of pool names, you want to exclude from mining
- ShowPoolBalances = set to 1 to let RainbowMiner show your current pool balances [default=1]
- ShowPoolBalancesDetails = set to 0 if coin balances at a pool should be added up to BTC [default=1]
- ShowPoolBalancesExcludedPools = set to 1 to let RainbowMiner try to fetch balances from not used pools in addition to the currently activated pools [default=0]
- ExcludeCoinsymbolBalances = Exclude coinsymbols from balances. Leave empty for none [default=MAX,MUSIC]
- ShowWalletBalances = set to 1 to let RainbowMiner fetch and show available wallet balances [default=1]
- WalletBalances = enter list of which coin's wallets should be listed. Leave empty for all [default=]
- PoolDataWindow = set global default for all pool data windows [default=estimate_current]
- PoolStatAverage = set global default for all pool moving average live price trend [default=Minute_10]
- PoolStatAverageStable = set global default for all pool moving average stable price trend [default=Week]
- EnableErrorRatio = Enable yiimp pool price auto-correction [default=1]
- MaxErrorRatio = Maxium error ratio for yiimp pool price auto-correction [default=1.5]
Select mining mode
- MiningMode = possible values are "legacy", "device" and "combo", see explanation below
- "legacy": one miner will handle all devices of one vendor together. Only NVIDIA, AMD, CPU are possible to select.
- "device" (default): each device group (e.g. GTX1070, RX570, CPU..) will get the most profitable miner to work on the different algorithm. If you have three different device groups, there will be three miners launched.
- "combo": in addition to "device" mode, all possible combinations of device groups are taken into account. E.g. if all device types are considered most profitable for one specific miner, only one instance of the miner will be launched. Device types will only be combined for specific algorithm, if they have exactly equal params configured in miners.config.txt (the strings have to match). The combination of devices will be monitored seperatly: if the combo is less efficient than single miners, it will be deactivated automatically.
- EnableResetVega = set to 1 to always reset Vega Gpus before mining
Setup network operations
- RunMode = possible values are "standalone", "server", "client"
- "standalone": this mining rig will handle everything on it's own
- "server": this mining rig will act as server in a multiple rig setup
- "client": this mining rig will not create network traffic but pull the data from the server rig
For Client (Runmode=client) setup:
- ServerName = enter the server's machinename or ip
- ServerPort = enter the server's ports
- ServerUser = enter the server's username (if auth)
- ServerPassword = enter the server's password
- EnableServerConfig = set to "1" to use the server's config files on this rig
- EnableServerPools = set to "1" to use the server's pool/coins/balance statistics and mine exactly to those pools (except for MiningRigRentals) Note: With this setting, it is possible to let the server rig control pools/coins/balance data of the client. This reduces network traffic significantly, but overrides the local pool setup. MiningRigRentals is exluded - this pool always runs locally.
- ServerConfigName = list of config files to be downloaded if "EnableServerConfig" is set to "1". Possible values are "algorithms","coins","config","miners","ocprofiles","pools"
- ExcludeServerConfigVars = list of parameter names in config.txt or pools.config.txt, that should -not- be overwritten with server values (best is to leave it as is).
For pools.config.txt:
pools:<poolname>
= protect all values of pool "poolname"pools:<poolname>:<variablename>
= protect "variablename" in pool "poolname"
- EnableServerExcludeList = set to "1" to always use the server's "ExcludeServerConfigVars", instead of the local one in config.txt
For Server (Runmode=server) setup:
- APIport = enter a free web-interface port localhost: [default=4000]
- APIauth = set to "1" for username/password auth on localhost [default=0]
- APIuser = enter an username for localhost accessability
- APIpassword = enter a password for localhost accessability
Set electricity cost handling
-
PowerPrice = price of 1kW/h (kilowatt per hour) that your electricity supplier charges [default=0]
-
PowerOffset = power offset to allow consideration for overhead power [default=0]
-
PowerPriceCurrency = currency of your PowerPrice [default=USD]
-
UsePowerPrice = set to (1), if electricity cost should be substracted from profits [default=0]
-
CheckProfitability = if no more miners are profitable and this is set to (1), RainbowMiner will idle, until profitability returns. UsePowerPrice needs to be (1) and a PowerPrice greater than zero must be set for this function to work. [default=0]
-
EnableMiningHeatControl = set to (1), if the mining heat control should be enabled [default=0]
-
MiningHeatControl = set to a value 0..5 in steps of 0.1, to control heat over profit (2=default, 0=max.profit, 5=max.heat). A "PowerPrice" must be set for this function to work. [default=2]
If "EnableMiningHeatControl" is enabled, the following formula is being used to calculate:
Heat value=revenue-miner fee-powercost*(3 - MiningHeatControl)
- "0" = min. heat
- "2" = max. profit
- "3" = max. revenue, best heat efficiency
- "5" = max. heat
A good start is to try values in the range of 2 to 3
Technical/Other
- Interval = timing interval in seconds of RainbowMiner [default=60]
- BenchmarkInterval = timing interval in seconds, used for benchmarks [default=60]
- MinimumMiningIntervals = minimum number of intervals a miner will run, before switching will be allowed [default=1]
- SSL = set to 1, if only ssl connections wanted
- Proxy = set your proxy address here, if you are using one
- Delay = extra delay in secondes, between switching to avoid blue screen [default=0]
- Watchdog = use (1) or do not use (0) watchdog [default=1]
- UseTimeSync = set to 1, if RainbowMiner should adjust the windows clock by rtp [default=1]
- SwitchingPrevention = finetune the switching prevention algorithm. Set to zero to disable [default=2]
- PoolSwitchingHysteresis = prevention of pool-to-pool hopping: the higher, the less switching (in %, 0 to disable, can be overwritten per pool) [default=3]
- MinerSwitchingHysteresis = prevention of on-pool miner-to-miner hopping: the higher, the less switching (in %, 0 to disable) [default=3]
- MaxRejectedShareRatio = set max. allowed ratio "bad shares/found shares" until a miner gets disabled [default=0.3]
- EnableFastSwitching = set to 1 to remove switching prevention completly. Expect a lot of switching [default=0]
- HashrateWeight = adjust weight of pool hashrates on the profit comparison in % (0..100, 0=disable) [default=20]
- HashrateWeightStrength = adjust the strength of the weight (integer, 0=no weight, 100=linear, 200=square) [default=50]
- PoolAccuracyWeight = adjust weight of pool accuracy on the profit comparison in % (0..100, 0=disable) [default=15]
- MinerFaultToleranceGPU = set the GPU miner fault tolerance in % (10..100) [default=10]
- MinerFaultToleranceCPU = set the CPU miner fault tolerance in % (10..100) [default=25]
- MaxAllowedLuck = if luck (= time_since_last_block / time_to_find_one_block) is greater than that number, increase the penalty up to 100% (0=disable, inactive for solo pools) [default=3]
- MaxTimeSinceLastBlock = if time_since_last_block is greater than that number, increase the penalty up to 100% (0=disable, time-units allowed in input, inactive for solo pools) [default=12h]
- ProfitSpikeProtection = prevent profit files to be updated, if the actual value is greater than the avg. profit x this factor (0 to disable) [default=0]
- RebootOnGPUFailure = (currently disabled)
- EnableOCProfiles = set to 1, if you plan to use custom overclocking profiles [default=0]
- EnableOCVoltage = set to 1, if you plan to set voltage for overclocking [default=0]
- EnableOCLinuxForcePState = set to 1, to force all GPU into their workload powerstate to avoid crashes due to P2-P0 switching [default=1]
- EnableOCLinuxSetAllPStates = set to 1, to set mem/core clock offsets to all PStates, instead to the highest, only [default=0]
- MaxActivityDays = set max. days for localhost's Activity history [default=2]
- MSIApath = absolute windows path to MSI Afterburner executable [default=c:\Program Files (x86)\MSI Afterburner\MSIAfterburner.exe]
- MSIAprofile = default MSI Afterburner profile (1-5), set to 0 to disable [default=2]
- NVSMIpath = absolute windows path to Nvidia smi tools [default=c:\Program Files\NVIDIA Corporation\NVSMI]
- EnableLinuxHeadless = if set to 1, miner-startscripts and overclocking-scripts will include DISPLAY+XAUTHORITY settings
- LinuxDisplay = default Linux DISPLAY for headless operation [default=:0]
- LinuxXAuthority = default Linux XAUTHORITY for headless operation (needed for overclocking). [default=RainbowMiner will guess]
- MiningPriorityCPU = process priority for CPU miners (-2..2) [default=-2]
- MiningPriorityGPU = process priority for GPU miners (-2..2) [default=-1]
- AutoexecPriority = process priority for commands started via autoexec.txt (-2..2) [default=0]
- EthPillEnable = set to "revA" or "revB" (read Wiki for more information on revA/revB), or "disable" to stop using the EthPill for Ethereum mining [default=disable]
- RemoteAPI = set to 1 to enable accessability of API within your network [default=0]
- Donate = set the minutes, you want RainbowMiner to work for the developer (min. is 10 minutes, equals to 0.7%) [default=24]
- EnableAutoMinerPorts = set to 1, if miners get into conflict with the ports in use
- StaticCPUMinerPort = enter a static API port number for all CPU miners (0=use default ports) [default=0]
- StaticGPUMinerPort = enter a static API port number for all GPU miners (0=use default ports) [default=0]
- DisableAPI = set to 1, if no localhost API is needed
- DisableAsyncLoader = set to 1, if all net access should happen synchronous (used for debugging)
- DisableMSIAmonitor = set to 1, to fully disable MSI Afterburner monitoring (if more than six AMD GPU are used for mining)
- Quickstart = set to 1 to read all pool data from cache during startup (speeds up first start, but balance data may be out of date)
- StartPaused = set to 1 to start RainbowMiner in pause mode (no mining, you will have to press "P" to enable mining)
- EnablePauseOnActivity = set to 1 to automatically send RainbowMiner into pause mode, if user input is detected (also see ResumeOnInactivitySeconds)
- ResumeOnInactivitySeconds = seconds of no user input, until RainbowMiner leaves pause-on-activity mode (0 = never, default = 300)
- EnableMinersAsRoot = set to 0, if you do not want to run miners as root, using the OCDaemon (linux only) [default=1]
Maintenance
- MaxLogfileDays = max. days to keep logfiles in Logs folder [default=5]
- MaxDownloadfileDays = max. days to keep downloaded files in Downloads folder [default=14]
- MaxCachefileDays = max. days to keep cache files in Cache folder [default=14]
- EnableMinerBackups = keep backups of updated miners in Bin folder, set to 0, if you have limited space [default=1]
- EnableKeepDownloads = keep downloaded miners in Downloads folder, set to 0, if you have limited space [default=1]
Notes for HashrateWeight
The comparison prices of the pools will be scaled with the following formula:
compare price = price x (1-(HashrateWeight/100)x(1-(rel. hashrate)^(HashrateWeightStrength/100))
Config\pools.config.txt
Each pool has it's own section, in the pools.config.txt
Change payout currency of a pool / add more wallets (e.g. Ravenminer uses RVN)
The default pool config look like this:
"Zpool": {
"BTC": "$Wallet",
"Worker": "$WorkerName",
"Penalty": "0"
}
The line "BTC": "$Wallet" defines the payout wallet address. $Wallet uses the value in your config.txt, $ uses the value, defined for the corresponding currency in coins.config.txt If you want to change it to LTC, for example, you have to change this line like this:
"Zpool": {
"LTC": "<YOUR_LITECOIN_ADDRESS>",
"Worker": "$WorkerName",
"Penalty": "0"
}
Or like this, if you setup a global wallet address in coins.config.txt
"Zpool": {
"LTC": "$LTC",
"Worker": "$WorkerName",
"Penalty": "0"
}
For non-autoexchange pools, you may define multiple wallets. The wallets define, which coins may be mined at a pool. In the following example, Rainbowminer will mine RVN and SUQA on Icemining, hereby using the default RVN wallet in the coins.config.txt.
"Icemining": {
"RVN": "$RVN",
"SUQA": "<YOUR_SUQA_ADDRESS>"
"Worker": "$WorkerName",
"Penalty": "0"
}
Alternatively you may instruct RainbowMiner to automatically use every currency defined in coins.config.txt (which is enabled by adding a wallet address and setting parameter "EnableAutoPool" to "1") for a certain pool. To do so, set paremeter "EnableAutoCoin" to "1". Example:
"Icemining": {
"Worker": "$WorkerName",
"Penalty": 0,
"EnableAutoCoin": "1"
}
Add additional password parameters for YiiMP based pools
Many of our pools are based on the open-source YiiMP pool (e.g. AHashpool,Blockmaster,Hashcryptos,ZergPool,ZPool etc.). Some of these pools accept additional parameters. A prominent example is the setting of a custom payout limit at ZergPool (pl=x.xx). To add a password parameter, add one line to pools.config.txt in the form "CURRENCY-Params": "parameters",
. In fact, all parameters will be added to the preset password contents, using a comma.
Example 1:
"ZergPool": {
"LTC": "<YOUR_LTC_ADDRESS>",
"LTC-Params": "pl=1.5",
"Worker": "$WorkerName",
"Penalty": "0"
}
In this example, if mining Zergpool, it will autoexchange everything into LTC. The parameter string "pl=1.5" will be added to the password, that is passed to the pool. In the case of ZergPool it will define a payout limit of 1.5 LTC. Of course any parameters can be added here, depending on the pool's options.
For ZergPoolCoins pools, extra password parameters can be assigned per coin, even when using autoexchange to a certain currency:
Example 2:
"ZergPoolCoins": {
"BTC": "<YOUR_BTC_ADDRESS>",
"BTC-Params": "pl=0.001",
"BTC-MBC-Params": "d=0.1",
"Worker": "$WorkerName",
"Penalty": "0"
}
In example 2, when mining for some MBC on ZergPoolCoins, the difficulty will be set to 0.1 by adding ",d=0.1" to the miner's password parameter. "CURRENCY-COIN-Params" has priority over "CURRENCY-Params"
Change a pool's penalty
If you feel like a pool tends to exagerate it's results, you can set a penalty in % through the field "Penalty":
"Ravenminer": {
"RVN": "<YOUR_RAVENCOIN_ADDRESS>",
"Worker": "$WorkerName",
"Penalty": "5"
}
This would reduce the hashrate-results from the pool Ravenminer by 5%
Override default dynamic penalties
All pool's penalties will be adjusted upwards, if either the current luck is greater than "MaxAllowedLuck" or the actual time to find a block is greater than "MaxTimeSinceLastBlock". Both values are defined in the global config.txt. If you want to override the defaults for a specific pool, give the corresponding parameters a value.
"Zpool": {
"BTC": "<YOUR_BTC_ADDRESS>",
"Worker": "$WorkerName",
"MaxAllowedLuck": "2",
"MaxTimeSinceLastBlock": "2h"
}
This would set the MaxAllowedLuck to 2 (=200% luck) and 2h (=7200 seconds). Leaving the parameter(s) empty (as ""), will have this pool using the default values in config.txt Set the parameter(s) to "0", to disable the feature(s) for that pool.
Change a pool's time frame (data window)
To override the default data window "average2e" of the YiiMP based pools (AHashPool,BlockMasters,Hashcryptos,ZergPool,Zpool) the parameter "DataWindow" can be added to the pool's configuration record. Possible values are:
- estimate_current (=default): the pool's current calculated profitability-estimation (more switching, relies on the honesty of the pool)
- estimate_last24h: the pool's calculated profitability-estimation for the past 24 hours (less switching, relies on the honesty of the pool)
- actual_last24h: the actual profitability over the past 24 hours (less switching)
- minimum2: the minimum value of estimate_current and actual_last24h will be used
- maximum2: the maximum value of estimate_current and actual_last24h will be used
- average2: the calculated average of estimate_current and actual_last24h will be used
- mininum2e: the minimum value of estimate_current and estimate_last24h will be used
- maximum2e: the maximum value of estimate_current and estimate_last24h will be used
- average2e: the calculated average of estimate_current and estimate_last24h will be used
- minimum2h: the minimum value of estimate_last24h and actual_last24h will be used
- maximum2h: the maximum value of estimate_last24h and actual_last24h will be used
- average2h: the calculated average of estimate_last24h and actual_last24h will be used
- mininum3: the minimum value of the above three values will be used
- maximum3: the maximum value of the above three values will be used
- average3: the calculated average of the above three values will be used
Example:
"Zpool": {
"LTC": "<YOUR_LITECOIN_ADDRESS>",
"Worker": "$WorkerName",
"Penalty": "0",
"DataWindow": "minimum3"
}
Change a pool's moving average (stat average for live and stable price)
The price pulled from the pool's API is being averaged down with a defined moving average trend line. The averaging time can be defined:
- for live price: using the parameter "StatAverage". It overrides the global default set by the config.txt parameter "PoolStatAverage" [default=Minute_10]
- for stable price: using the parameter "StatAverageStabe". It overrides the global default set by the config.txt parameter "PoolStatAverageStable" [default=Week]
Possible values are:
- Live: the live price
- Minute_5: five minutes moving average
- Minute_10: ten minutes moving average
- Hour: one hour moving average
- Day: one day moving average
- ThreeDay: three day moving average
- Week: one week moving average
Example:
"Zpool": {
"LTC": "<YOUR_LITECOIN_ADDRESS>",
"Worker": "$WorkerName",
"Penalty": "0",
"DataWindow": "minimum3",
"StatAverage": "Hour",
"StatAverageStable": "ThreeDay"
}
Define the algorithms and coins of a pool
Per default all algorithms of a pool will be used. To define your own set of algorithm, there are two additional fields:
- Algorithm: a comma separated list of all pool's algorithm, you want RainbowMiner to use (leave empty for all)
- ExcludeAlgorithm: a comma separated list of all pool's algorithm, you explicitly do not want RainbowMiner to use (leave empty for no exception)
- CoinName: a comma separated list of coin names, you want RainbowMiner to use (leave empty for all). The coin's name must be spelled exactly like it is used at the corresponding pool. It applies to the pools, that transmit the coin names, only.
- ExcludeCoin: a comma separated list of coin names, you explicitly do not want RainbowMiner to use (leave empty for all coins). The coin's name must be spelled exactly like it is used at the corresponding pool. It applies to the pools, that transmit the coin names, only.
- CoinSymbol: a comma separated list of coin symbols, you want RainbowMiner to use (leave empty for all). Better alternative to "CoinName"
- ExcludeCoinSymbol: a comma separated list of coin's, you want RainbowMiner to use (leave empty for all). Better alternative to "ExcludeCoin"
- EnablePostBlockMining: set to "1" to allow forced mining a specific currency for a timespan (defined in coins.config.txt), after a block has been found.
- CoinSymbolPBM: if EnablePostBlockMining is set to "1", specify which currency is taken into account for post block mining. Leave empty for all.
Example:
"MiningPoolHub": {
"User": "$UserName",
"Worker": "$WorkerName",
"API_ID": "$API_ID",
"API_Key": "$API_Key",
"Algorithm": "lyra2z,skein,myriadgroestl,groestl,neoscrypt,equihash-btg",
"ExcludeAlgorithm": "",
"CoinName": "",
"ExcludeCoin": "",
"CoinSymbol": "",
"ExcludeCoinSymbol": "BTG,XTC",
"FocusWallet": "",
"EnablePostBlockMining": "0",
"CoinSymbolPBM": ""
}
Force mining to a pool's wallet
To force mining to pool's wallets, you may add the wallet's currencies to field "FocusWallet". RainbowMiner will mine into the the focused pool/wallets, only.
Example:
"Ethermine": {
"ETH": "0x012031012301230123012301230",
"ZEC": "$ZEC",
"User": "$UserName",
"Worker": "$WorkerName",
"Algorithm": "",
"ExcludeAlgorithm": "",
"CoinName": "",
"ExcludeCoin": "",
"CoinSymbol": "",
"ExcludeCoinSymbol": "",
"FocusWallet": "ETH,ZEC"
}
This example will focus mining operations to pool Ethermine, comparing this pool's profitability of ETH and ZEC, only. No other pool will be mined.
Allow mining algorithm when pool hashrate equals to 0
All pool modules contain a check for an algorithm hashrate to be greater than 0. If you want to mine a special currency, even if you are the only miner (e.g. solo mining on BsodSolo), set field "AllowZero" to "1":
Example:
"BsodSolo": {
"SUQA": "<YOUR_SUQA_ADDRESS>",
"Worker": "$WorkerName",
"FocusWallet": "SUQA",
"AllowZero": "1"
}
Change switching prevention
To avoid rapid pool-to-pool hopping, the global config.txt parameter "PoolSwitchingHysteresis" can already be set.
If needed, the global value can be overwritten with the pools.config.txt parameter "SwitchingHysteresis".
Set if to a value of "0"
-"100"
or leave it empty ""
to use the global "PoolSWitchingHysteresis"
Example:
"ZergPool": {
"BTC": "<YOUR_BTC_ADDRESS>",
"Worker": "$WorkerName",
"SwitchingHysteresis": "5"
},
"ZergPoolCoins": {
"BTC": "<YOUR_BTC_ADDRESS>",
"Worker": "$WorkerName",
"SwitchingHysteresis": "0"
}
In this example, the switching hysteresis would be set to 5% (another pool with the same algorithm would need at least a 5% higher price to be accepted) and switched off completely for ZergPoolCoins.
Force a specific region's stratum
All region stratums are chosen automatically, depending on your "Region" setting in config.txt. For some cases, you might want to select a specific region stratum for a pool.
Example:
"Nicehash": {
"BTC": "<YOUR_BTC_ADDRESS>",
"Worker": "$WorkerName",
"Region": "US"
},
In this example, only the US stratum will be used for Nicehash. Make sure, that the pool supports a stratum for the selected region. If it doesn't, the pool will not show up anymore.
Config\userpools.config.txt
Integrate your own pool or other pools of choice via .\Config\userpools.config.txt
.
Notes:
- Each Currency/Coin/Algorithm/Region combination needs an own entry
- Every unique pool name will automatically get an config entry in pools.config.txt
- Price and profit calculations will be done via WhatToMine
- Hashrate/Workers/Blocktimes are currently not supported
- Don't forget to add your custom pool's name to
"PoolName"
in config.txt!
Example for flexpool.io:
add in pools.config.txt
{
"Enable": "1",
"Name": "Flexpool",
"PoolFee": "0",
"Algorithm": "",
"CoinName": "",
"CoinSymbol": "ETH",
"Currency": "ETH",
"Protocol": "stratum+tcp",
"Host": "eu.flexpool.io",
"Port": "4444",
"User": "$Wallet.$WorkerName",
"Pass": "x",
"Region": "EU",
"SSL": "0",
"EthMode": ""
},
in config.txt, add the Flexpool to the "PoolName" list:
"PoolName": "Nicehash,ZergPoolCoins,Flexpool",
Mandatory parameters:
- Enable = set to "1", to enable your new entry [default=0]
- Name = name of the pool, every unique name will automatically get an own entry in pools.config.txt
- CoinSymbol = coin, that will be mined
- Currency = coin, that will be payed, determines the wallet address. Each currency will have an entry in pools.config.txt
- Host = stratum server address, without
stratum+tcp://
, just my.server.name - Port = stratum server port
Remark: if CoinSymbol equals Currency, only one of the two needs to be set.
Optional parameters:
- User = exact syntax for the user parameter for the miners, variables possible, see remarks below [default=$Wallet.$WorkerName]
- Pass = specific pool password, variables possible, see remarks below [default=x]
- Protocol = setup your own protocol, if it differs from the default [default=stratum+tcp / stratum+ssl]
- PoolFee = pool fee in percent (e.g. 1 for one percent) [default=0]
- SSL = set to "1" if the stratum wants SSL [default=0]
- Algorithm = if your coin is not in our database, explicitly setup the algorithm here.
- CoinName = if your coin is not in our database, explicitly setup the coin's name here.
- Region = setup the stratum server's home region [default=US]
-
EthMode = setup the stratum/proxy mining mode for Ethash, Kawpow, Progpow pools [default=ethproxy for Ethash, stratum for KawPow]
- "ethproxy"
- "ethstratumnh"
- "qtminer"
- "minerproxy"
- "stratum"
Remark: the following variables will be automatically replaced in parameters User and Pass:
-
$Wallet
will be replaced with your currency's wallet (as defined in pools.config.txt) -
$WorkerName
will be replaced with your rig's workername (or the value in pools.config.txt) -
$CoinSymbol
will be replaced with the CoinSymbol -
$Currency
will be replaced with the Currency
Config\miners.config.txt
Each miner can be configured by it's own section, in the miners.config.txt
Example:
{
"CcminerAlexis78-NVIDIA": [
{
"MainAlgorithm": "c11",
"SecondaryAlgorithm": "",
"Params": "-i 21",
"MSIAprofile": "",
"OCprofile": "",
"Difficulty": ""
},
{
"MainAlgorithm": "keccak",
"SecondaryAlgorithm": "",
"Params": "-m 2 -i 19,29",
"MSIAprofile": "",
"OCprofile": "",
"Difficulty": ""
}
],
"CcminerAlexis78-GTX1070": [
{
"MainAlgorithm": "c11",
"SecondaryAlgorithm": "",
"Params": "-i 21",
"MSIAprofile": "",
"OCprofile": "Profile1",
"Difficulty": ""
},
{
"MainAlgorithm": "keccak",
"SecondaryAlgorithm": "",
"Params": "-m 2 -i 19,29",
"MSIAprofile": "",
"OCprofile": "",
"Difficulty": ""
}
],
"Sgminer-AMD": [
{
"MainAlgorithm": "lyra2rev2",
"SecondaryAlgorithm": "",
"Params": "--gpu-threads 2 --worksize 128 --intensity d",
"MSIAprofile": "",
"OCprofile": "",
"Difficulty": ""
},
{
"MainAlgorithm": "neoscrypt",
"SecondaryAlgorithm": "",
"Params": "--gpu-threads 1 --worksize 64 --intensity 15",
"MSIAprofile": "",
"OCprofile": "",
"Difficulty": "1000"
}
],
"Trex": [
{
"MainAlgorithm": "\*",
"SecondaryAlgorithm": "",
"Params": "",
"MSIAprofile": "",
"Penalty": "12.5",
"Difficulty": ""
}
]
}
.. this adds extra command line parameters "-i 21" and "-m 2 -i 19,29" to
- "CcminerAlexis78-NVIDIA": miner CcminerAlexis78 in LegacyMining mode, mine on all selected nvidia GPU, Algorithms c11 and keccak
- "CcminerAlexis78-GTX1070": miner CcminerAlexis78 in non-LegacyMining mode on selected GPU devices with model name GTX1070, Algorithms c11 and keccak
- "CcminerAlexis78-GTX1070": miner will use custom overclocking profile "Profile1"
- "Sgminer-AMD": miner Sgminer in LegacyMining mode, mine on all selected amd GPU, Algorithms c11 and keccak
- "MainAlgorithm": alogrithm, for which the extra configuration will be used
- "SecondaryAlgorithm": secondary alogrithm, for which the extra configuration will be used (used for dual-mining Claymore, Excavator)
- "Params": these are the extra parameters, that will be added to the miner call
- "MSIAprofile": desired MSI Afterburner profile
.. this adds a Penalty of 12.5% to all algorithms used by Trex
.. this adds a static pool difficulty of 1000 to Sgminer's Neoscrypt
Config\devices.config.txt
Each device group can be bound to/excluded from specific algorithm and miners by editing this config file.
Example:
{
"GTX1050Ti": [
{
"Algorithm": "Ethash,x16r",
"ExcludeAlgorithm": "",
"MinerName": "",
"ExcludeMinerName": "ClaymoreEthash",
"DisableDualMining": "1",
"DefaultOCprofile": "Profile1",
"PowerAdjust": "100",
"Worker": "my1050"
}
],
"R290X": [
{
"Algorithm": "",
"ExcludeAlgorithm": "",
"MinerName": "",
"ExcludeMinerName": "",
"DisableDualMining": "1",
"DefaultOCprofile": "Profile1",
"PowerAdjust": "87.5",
"Worker": ""
}
]
}
This configuration would:
- bind all GTX1050Ti in the system to Ethash and X16R mining, only, excluding the ClaymoreEthash miner
- setting the flag "DisableDualMining" to "1", all dual-algorithm miners will be removed from this device's list.
- for custom overclocking Profile1 is used as default for this GPU type
- set a power adjust factor of 87.5% to the Radeon R290X (if RainbowMiner reported 250W with factor 100%, it will now show 250W x 87.5 / 100 = 175W)
- the pool worker name for the GTX1050Ti will be set to "my1050". If used in combos, the individual worker names will be combined with _ (underscore)
Config\gpugroups.config.txt
Under some circumstances you might want to divide GPUs with unique model name into multiple groups (e.g. mining on different pools). For this case, all GPUs may be grouped, using group names, to be setup in gpugroups.config.txt. To find out the GPU numbers in your system, start ListDevices.bat
Example: Assumed four GTX1070 GPUs running in this rig.
{
"GPU#00": "A",
"GPU#01": "A",
"GPU#02": "Zerg",
"GPU#03": ""
}
Using this setup, RainbowMiner will use the following model names:
- GPU#00 and GPU#01 will get name "GTX1070A"
- GPU#02 will get name "GTX1070ZERG"
- GPU#03 will keep name "GTX1070"
This will result in three separate GPU groups. Be aware, that for each device group a new entry in devices.config.txt will be created. Also, all different device group combinations will be added to miners.config.txt.
Config\algorithms.config.txt
Globally define parameters for algorithms:
Example:
{
"X17": {
"Penalty": "10",
"MinHashrate": "50GH",
"MinWorkers": "300",
"MaxTimeToFind": "1.5h",
"MSIAprofile": 4,
"OCprofile": "Profile4",
"MRRPriceModifierPercent": "-10"
}
}
This configuration would:
- reduce all X17 pool prices by a "Penalty" of 10%
- set a minimum X17 pool hashrate of 50 GH/s for a pool to be selected (units allowed: k=kilo, M=Mega, G=Giga, T=Tera, P=Peta)
- set the mimimum pool workers mining X17 to 300 for a pool to be selected
- set a maximum time to find for the next block of 1.5 hours (units allowed: s=seconds, m=minutes, h=hours)
- set the MSI Afterburner overclocking profile to 4 (if MSIA is used)
- set the overclocking profile to "Profile4" (if the RainbowMiner oc is used)
- the overclocking profiles define the default for a specific algorithm
- the OCprofile hierarchy: miners.config.txt over algorithms.config.txt over devices.config.txt
- if pool MiningRigRentals is in use, the X17 mining rig will use a price modifier of -10% (relative to suggested price)
Config\coins.config.txt
Globally define parameters for coins:
Example:
{
"RVN": {
"Penalty": "10",
"MinHashrate": "50GH",
"MinWorkers": "300",
"MaxTimeToFind": "1.5h",
"Wallet": "<YOUR_RAVENCOIN_ADDRESS>",
"EnableAutoPool": "1",
"PostBlockMining": "5m",
"MinProfitPercent": "80"
}
}
This configuration would:
- reduce all RVN pool coin prices by a "Penalty" of 10%
- set a minimum RVN pool hashrate of 50 GH/s for a pool to be selected (units allowed: k=kilo, M=Mega, G=Giga, T=Tera, P=Peta)
- set the mimimum pool workers mining RVN to 300 for a pool to be selected
- set a maximum time to find for the next block of 1.5 hours (units allowed: s=seconds, m=minutes, h=hours)
- define a global RVN wallet with value <YOUR_RAVENCOIN_ADDRESS>. Every occurence of "$RVN" in pools.config.txt will be automatically substituted with this wallet.
- each pool, that has it's parameter "EnableAutoCoin" set to "1" will use this RVN wallet
- if a RVN block has been found within the timespan of 5 minutes (PostBlockMining) at a pool that has "EnablePostBlockMining" set to "1", RainbowMiner will force mining RVN on this pool
- switching to postblock mining only, if the post block miner's profit is at least 80% of the best miner's profit (field "MinProfitPercent")
Config\ocprofiles.config.txt
This file contains all custom overclocking profiles. These profiles can be assigned by name to miners in file Config\miners.config.txt or to algorithms in file Config\algorithms.config.txt, field "OCprofile".
To make it easy to handle names, profiles may be assigned to devices. Just add the device model (see file Config\devices.config.txt for all model names), a specific device's name ("GPU#00","GPU#01",..) or PCI bus id ("00:02","00:03",..) with "-" to the profile name. With this feature, it is very easy to use different overclocking rules for devices under one name.
Example (this is the setup for one of my GTX1070 rigs, basicly substituting the MSI Afterburner profiles I recommended above)
{
"Profile1-GTX1070": {
"PowerLimit": 80,
"ThermalLimit": 0,
"MemoryClockBoost": "0",
"CoreClockBoost": "0",
"LockVoltagePoint": "*",
"PreCmd": "",
"PreCmdArguments": "",
"PostCmd": "",
"PostCmdArguments": ""
},
"Profile2-GTX1070": {
"PowerLimit": 80,
"ThermalLimit": 0,
"MemoryClockBoost": "400",
"CoreClockBoost": "100",
"LockVoltagePoint": "*",
"PreCmd": "",
"PreCmdArguments": "",
"PostCmd": "",
"PostCmdArguments": ""
},
"Profile3-GTX1070": {
"PowerLimit": 80,
"ThermalLimit": 0,
"MemoryClockBoost": "200",
"CoreClockBoost": "100",
"LockVoltagePoint": "*",
"PreCmd": "",
"PreCmdArguments": "",
"PostCmd": "",
"PostCmdArguments": ""
},
"Profile4-GTX1070": {
"PowerLimit": 80,
"ThermalLimit": 0,
"MemoryClockBoost": "-500",
"CoreClockBoost": "100",
"LockVoltagePoint": "*",
"PreCmd": "",
"PreCmdArguments": "",
"PostCmd": "",
"PostCmdArguments": ""
},
"Profile5-GTX1070": {
"PowerLimit": 80,
"ThermalLimit": 0,
"MemoryClockBoost": "350",
"CoreClockBoost": "100",
"LockVoltagePoint": "*",
"PreCmd": "",
"PreCmdArguments": "",
"PostCmd": "",
"PostCmdArguments": ""
},
"Profile2-GPU#02": {
"PowerLimit": 85,
"ThermalLimit": 0,
"MemoryClockBoost": "500",
"CoreClockBoost": "150",
"LockVoltagePoint": "*",
"PreCmd": "",
"PreCmdArguments": "",
"PostCmd": "",
"PostCmdArguments": ""
}
}
- PowerLimit: in percent, set to 0, if you do not want this to be changed
- ThermalLimit: in �C, set to 0, if you do not want this to be changed
- MemoryClockBoost: in MHz, set to "*", if you do not want this to be changed
- CoreClockBoost: in MHz, set to "*", if you do not want this to be changed
- LockVoltagePoint: in �V set to "*", if you do not want this to be changed or "0", if voltagePoint should be unlocked
- PreCmd/PreCmdArguments: define a command to be executed before the miner starts. PreCmd is the path to the binary, PreCmdArguments are optional arguments for that command.
- PostCmd/PostCmdArguments: define a command to be executed after the miner has finished. PostCmd is the path to the binary, PostCmdArguments are optional arguments for that command.
Note the last entry: "Profile-GPU#02" Imagine a rig with multiple GTX1070 from the same manufacturer, except GPU#02, which is from a different manufacturer. This one GPU might need slightly different overclocking for Profile2. Adding the GPU's name or PCI bus id has priority over the model name selection.
Config\scheduler.config.txt
Define different power prices and/or pause miners for different timespans.
- DayOfWeek: *=all 0=Sunday 1=Monday 2=Tuesday 3=Wednesday 4=Thursday 5=Friday 6=Saturday
- From: start of timespan, 24h notation HH:MM, e.g. 15:30
- To: end of timespan, 24h notation HH:MM, e.g. 22:45
- PowerPrice: power price for this timespan, leave empty for default powerprice
- Pause: if set to "1", miners will be paused during this timespan
- Enable: if set to "1", this timespan will be used
- EnableUpdate: set to "1" to allow automatic updates during this timespan (and if EnableUpdateWhenScheduled is set to 1 in config.txt) [default=0]
- EnableMiningHeatControl: set to "1" to allow mining heat control during this timespan (and if EnableMiningHeatControl is set to 1 in config.txt) [default=0]
- MiningHeatControl: set specific mining heat control value, during that timespan
- Algorithm: restrict mining to specific algorithms, during that timespan
- ExcludeAlgorithm: disallow mining to specific algorithms, during that timespan
- CoinSymbol: restrict mining to specific coin symbols, during that timespan
- ExcludeCoinSymbol: disallow mining to specific coin symbols, during that timespan
Example
[
{
"DayOfWeek": "*",
"From": "01:15",
"To": "07:30",
"PowerPrice": "0.15",
"Pause": "0",
"Enable": "1"
},
{
"DayOfWeek": "0",
"From": "00:00",
"To": "23:59",
"PowerPrice": "",
"Pause": "0",
"Enable": "1"
},
{
"DayOfWeek": "1",
"From": "15:00",
"To": "16:30",
"PowerPrice": "",
"Pause": "1",
"Enable": "1"
}
]
- On sunday (dow=0), the default power price from config.txt will be used for the whole day
- On monday (dow=1), the miners will be paused during 3pm - 4:30pm
- On all other weekdays (dow=*), a power price of 0.15 will be used during 1am - 7:30am
- During all other times, the default power price from config.txt will be used
Config\autoexec.config.txt
If you want RainbowMiner to start other commands before the mining begins, you may add them to file Config\autoexec.config.txt by following the following rules:
- one line, one command
- command and path must be enclosed with doublequotes (")
- arguments (if any) must follow after the closing doublequote if the command
- a hashtag (#) marks the beginning of a comment, everything behind this within the line, will be ignored
Example:
#
# RainbowMiner autoexec
# =====================
#
"C:\Qbundle\BlagoMiner\Blagominer_avx.exe" --argument1 whatsoever1
.. would start Blagominer_avx.exe with commands ""--argument1 whatsoever1", setting the working directory to "C:\Qbundle\BlagoMiner"
FAQ
How do I add RainbowMiner's Start.bat to the windows task sheduler for autostart?
Press windows key and type shedule
, click on Task Sheduler
Create a basic task
Tab "General":
- check
Run only when user is logged in
- check
Run with highest privileges
- Configure for:
Windows Vista, Windows Server 2008
Tab "Trigger":
- check
When I log in
Tab "Actions":
- Action=
Start a program
- Program/Script=
cmd
- Add Arguments=
/c "C:\Users\RainbowMiner\Desktop\current-version\Start.bat"
- Start In=
C:\Users\RainbowMiner\Desktop\current-version\
How do I add RainbowMiner's start script to crontab on Linux for autostart?
As the user that will be running RainbowMiner, edit the crontab file using crontab -e
.
You will be promped to select the editor you want to use (emacs, vi, etc.)
Add one of the following lines to the end of the file and save:
@reboot /PATH_TO_RAINBOWMINER/start-screen.sh
If you want RainbowMiner to start in a separate screen@reboot /PATH_TO_RAINBOWMINER/start-nohup.sh
If you want RainbowMiner to run as a background process
Where PATH_TO_RAINBOWMINER
is the RainbowMiner installation directory.
MiningRigRentals.com?
How can I rent my rig to someone at1. Signup and create a rig for rent
- signup at https://www.miningrigrentals.com
- create API keys with permission "Balance/Withdraw" = "Read-Only" and "Manage Rigs" = "Yes" (Hint: if you have multiple RainbowMiner rigs, create new keys for each of it!)
- create a rig for at least one algorithm that you want to rent to an interested renter at the "MyRigs" section of the website
- optional: add pools on the "Pool Configuration" tab of the rig
- set your rig's rentable status to "available"
- edit your rig's description and add your RainbowMiner workername, enclosed with square brackets, somewhere into the text, e.g.
[rbm]
. This is important, otherwise Rainbowminer will not find your rig, later.
2. Setup Rainbowminer
-
add "MiningRigRentals" to the PoolName list and make sure it is not in the ExcludePoolName list (config.txt or [C]onfiguration->[S]elections)
-
edit "Config\pools.config.txt", find the MiningRigRentals section and add (API_Secret, User) or edit the following data:
"API_Key": "", "API_Secret": "", "User": "", "Worker": "<put your RainbowMiner workername here or leave $WorkerName>", "EnableMining": "0",
All rigs will be automatically set to status "online", at MiningRigRentals and rest idle within RainbowMiner. If someone starts a rental, RainbowMiner will detect this and run the respective miner exclusively, until the rental ends. All other rigs on MiningRigRentals will be deactivated, for that time.
If you want to include MiningRigRentals into RainbowMiner's profitability checks and switching operation, so that it behaves just like a normal pool, set "EnableMining" to "1". Only do this, if MiningRigRentals is your only pool, because the mining prices (these are the prices setup at MiningRigRentals), will not reflect the real market prices.
RainbowMiner can create and update your MRR rigs fully automatic!
The following are the pool parameters:
- User: Enter your MiningRigRentals username [default=]
- API_Key: Enter your MiningRigRentals API key [default=]
- API_Secret: Enter your MiningRigRentals API secret key [default=]
- UseWorkerName: Enter list of workernames that should be explicitly used for MRR (leave empty for all) [default=]
- ExcludeWorkerName: Enter list of workernames that should explicitly excluded from the use with MRR (leave empty for none) [default=]
- EnableMining: Enable switching to MiningRigRentals, even it is not rentend (not recommended) [default=0]
- EnableAutoCreate: Automatically create MRR-rigs [default=0]
- EnableAutoUpdate: Automatically update MRR-rigs [default=0]
- EnableAutoExtend: Automatically extend MRR rentals, when low average hashrate [default=0]
- EnableAutoBenchmark: Enable benchmark of missing algorithms (it will mine to RainbowMiner wallets during benchmark, only) [default=0]
- AutoExtendTargetPercent: Extend rentals time, so that the total average hashrate is near this value in percent of advertised hashrate [default=100]
- AutoExtendMaximumPercent: Extend rentals maximum to this value in percent of the rental time [default=100]
- AutoBonusExtendForHours: Enter amount of hours, that you want to reward with an automatic bonus extension (e.g. 24) [default=0]
- AutoBonusExtendByHours: Enter bonus extension in hours per each fully rented AutoBonusExtendForHours (e.g. 1) [default=0]
- AutoBonusExtendTimes: Limit the maximum extensions by AutoBonusExtendByHours to a specific number of times (e.g. 1), 0=unlimited [default=0]
- AutoCreateMinProfitPercent: Enter minimum profitability in percent compared to current best profit, for full rigs to be autocreated on MRR [defau lt=50]
- AutoCreateMinCPUProfitBTC: Enter minimum one-day revenue in BTC, for a CPU-only rig to be autocreated on MRR [default=0.00001]
- AutoCreateMaxMinHours: Enter the maximum hours for minimum rental time, for a rig to be autocreated on MRR [default=24]
- AutoCreateAlgorithm: Algorithms that should always be autocreated on MRR, even if below the other limits [default=]
- AutoUpdateMinPriceChangePercent: Enter minimum price change in percent, for a rig's price to be updated on MRR [default=3]
- EnableAutoPrice: Enable MRR automatic prices [default=1]
- EnableMinimumPrice: Set MRR automatic minimum price [default=1]
- EnableUpdateTitle: Enable automatic updating of rig titles (disable, if you prefer to edit your rig titles online at MRR) [default=1]
- EnableUpdateDescription: Enable automatic updating of rig descriptions (disable, if you prefer to edit your rig descriptions online at MRR) [default=1]
- EnableUpdatePriceModifier: Enable automatic update of price modifier (disable, if you prefer to edit your modifiers online at MRR). Can be set globally in pools.config.txt (parameter AutoPriceModifierPercent) and specific for each algorithm in algorithms.config.txt (parameter MRRPriceModifierPercent) [default=0]
- AutoPriceModifierPercent: Autoprice modifier in percent (e.g. +10 will increase all suggested prices by 10%, valid range is -30 .. 30) [default=0]
- **UpdateInterval"*: Enter the interval time for create and update rigs on MRR (in seconds, verbose allowed, e.g. 1.5h = 1.5 hours, 30m = 30 minutes) [default=1h]
- PriceBTC: Fixed price in BTC (used, if EnableAutoPrice=0 or if the value is greater than the PriceFactor x revenue) [default=0]
- PriceFactor: Enter profit multiplicator: minimum price = rig's average revenue x this multiplicator [default=1.8]
- PriceFactorMin: Minimum profit multiplicator (only of use, if PriceFactorDecayPercent is greater than 0) [default=1.2]
- PriceFactorDecayPercent: Enter percentage for decay of the profit multiplicator over time (0 = disable) [default=0]
- PriceFactorDecayTime: Enter the profit multiplicator decay interval (in seconds, verbose allowed, e.g. 1.5h = 1.5 hours, 30m = 30 minutes) [default=4h]
- PowerDrawFactor: Enter powerdraw multiplicator (only if UsePowerPrice is enabled): minimum price = minimum price + (miner's power draw - rig's average power draw) 24 / 1000 x powerdrawprice x this multiplicator [default=1.0]
- EnablePowerDrawAddOnly: Add the powerdraw cost difference only, if it is greater than 0 [default=0]
- MinHours: Minimum rental time in hours (min. 3) [default=3]
- MaxHours: Maximum rental time in hours (min. 3) [default=168]
- AllowExtensions: Allow renters to buy extensions for their rentals [default=1]
- PriceCurrencies: List of accepted currencies (must contain BTC) [default=BTC]
- Title: Title for autocreate, make sure it contains %algorithm% or %algorithmex% or %display%, and %rigid% (values will be substituted like that: %algorithm% with algorithm, %algorithmex% with algorithm plus coin info if needed, %coininfo% with eventual coin info, %display% with MRR specific display title, %rigid% with an unique rigid, %workername% with the workername, %type% with either CPU or GPU, %typecpu% with CPU or empty, %typegpu% with GPU or empty)";Description="Description for autocreate, %workername% will be substituted with rig's workername. Make sure you add [%workername%] (including the square brackets!) [default=%algorithmex% mining with RainbowMiner rig %rigid%]
- Description: Description for autocreate, %workername% will be substituted with rig's workername. Make sure you add [%workername%] (including the square brackets!) [default=Autostart mining with RainbowMiner (https://rbminer.net) on Windows. This rig is idle and will activate itself, as soon, as you rent it. [%workername%]]
- ExtensionMessageTime: Send the ExtensionMessage to the renter, when the remaining rental time drops below this value (in seconds, verbose allowed, e.g. 1.5h = 1.5 hours, 30m = 30 minutes, set to 0 or empty to disable) [default=2h]
- ExtensionMessage: Message, that will be sent to the renter, when remaining rental time drops below ExtensionMessageTime
- ProfitAverageTime: Enter the device profit moving average time period (Minute,Minute_5,Minute_10,Hour,Day,ThreeDay,Week), [default=Day]
- PauseBetweenRentals: Disable rigs on MRR after a rental for some time (in seconds, verbose allowed, e.g. 1.5h = 1.5 hours, 30m = 30 minutes) [default=10m]
Hints:
- set
"EnableAutoUpdate": "1",
, to enable automatic updates of price/hash and minhours - set
"EnableAutoCreate": "1",
, to enable automatic creation of profitable rigs on MRR - the MRR suggested prices will be enabled, if
"EnableAutoPrice": "1",
- the MRR adjust % value is set by
"AutoPriceModifierPercent": "-10",
, (in this example it's -10%) - extensions can be (dis-)allowed per algorithm in algorithms.config.txt
"MRRAllowExtensions": "0",
(leave empty for the default in pools.config.txt) - the price adjust % can be set per algorithm in algorithms.config.txt
"MRRPriceModifierPercent": "-10",
- the MRR minimum price will be automatically set, if
"EnableMinimumPrice": "1",
(recommended!) - if MRR suggested prices are disabled (
"EnableAutoPrice": "0",
)- either the rig's price will set to your rig's average profit x
"PriceFactor"
- or the rig's price will be set to
"PriceBTC"
, if it is greater than 0
- either the rig's price will set to your rig's average profit x
- if MRR suggested prices are enabled (
"EnableAutoPrice": "1",
)- either the rig's minimum price will be set to your rig's average profit x
"PriceFactor"
- or the rig's minimum price will be set to
"PriceBTC"
, if it is greater than your rig's average profit x"PriceFactor"
- either the rig's minimum price will be set to your rig's average profit x
Remark:
- to (dis-)allow the CPU rigs: add
<yourrigworkername>cpu
, e.g. if your workername is "RainbowMiner", use "RainbowMinercpu" - to (dis-)allow the all-GPU rig: add
<yourrigworkername>
, e.g. if your workername is "RainbowMiner", use it :) - to (dis-)allow device groups: add the workername(s), that you have given your device groups in devices.config.txt (parameter
"Worker"
) - to avoid miners crashing at the end of a rental, the MRR pools will be preset with my default donation pools. These will be used for some seconds at the end of the rentals, when the renter's pool finally goes offline, before the current RainbowMiner round is finished. You may change these to your likes, or leave them like they are and support my work with some seconds of your rig's time.
How can I quickly copy my current configuration to a new rig?
RainbowMiner comes with easy setup configuration. Download a setup.json at http://localhost:4000/setup.json from your current rig, copy it into the new rig's RainbowMiner folder before first start (you may easily reset RainbowMiner by simply deleting the complete ".\Config"
folder). Now answer two inputs and off you go.
More info can be found here.
How can I dual mine ETH/ETC with ZIL?
Most info can be found on the FAQ page at https://ezil.me. But there is more.
- first of all, get a ZIL wallet address.
- set your wallet address(es) in pools.config.txt section "Ezil"
- add "Ezil" to the "PoolName" list in config.txt
- if you want to mine ETC/ETH + ZIL on https://ezil.me only, you are done. You will mine ETH/ETC most of the time and the pool will switch to ZIL mining every 1,5h for a short period of time. ZIL uses the same Ethash algorithm.
- here is the extra: it is possible to mine ZIL only on ezil.me pool and with other algorithms on other pools with miner Nanominer (currently Autolycos2, Etchash, Ethash, KawPow and Octopus):
- set the ZIL wallet in pools.config.txt, only. No ETH nor ETC.
- set
"EnableNanominerDual": "1",
in pools.config.txt - done. Now Nanominer will switch to Ezil.me just in time to catch the next ZIL mining rounds and switch back, afterwards.
- it will use the dummy ETH address 0xffffffffffffffffffffffffffffffffffffffff to auth on Ezil.me
How does the profit switcher work and how can I change it's behavior?
The Profit Switcher Beast
The profit switcher can be controlled like follows. To be able to compare the pools (a "pool" is basically each available PoolName+Algorithm+CoinSymbol), an internal comparison price is being calculated.
-
all available config parameters are marked as bold in the following
-
the profit switcher uses two different price moving averages:
- StablePrice: stable price, the moving average time defaults to 1 week. It can be changed for all pools in config.txt, with parameter PoolStatAverageStable, or per pool in pools.config.txt with parameter StatAverageStable
- Price: live price, the moving average time defaults to 10 minutes. It can be changed for all pools in config.txt, with parameter PoolStatAverage, or per pool in pools.config.txt with parameter StatAverage
-
PfC is the price for comparison. It starts at either the pool's StablePrice or Price:
- PfC = StablePrice: if EnableFastSwitching is "0" (=disabled) and either ForceStablePrice is "1" (=enabled) or the pool isn't internally marked as PaysLive (like Nicehash is)
- PfC = Price: all other cases (especially NiceHash)
-
if EnableFastSwitching is set to "0" (=disabled) in config.txt:
- for Pools, that aren't currently being mined, comparison prices will be decreased
- PfC = PfC x ( 1 - ErrorMargin(%)/100 x DecayFactor(t) x PoolAccuracyWeight(%)/100 )
- for Pools, that are currently being mined, comparison prices will be increased
- if SwitchingHysteresis is set in pools.config.txt
- PfC = PfC x ( 1 + SwitchingHysteresis(%)/100 )
- else if PoolSwitchingHysteresis is set in config.txt
- PfC = PfC x ( 1 + PoolSwitchingHysteresis(%)/100 )
- if SwitchingHysteresis is set in pools.config.txt
- for Pools, that aren't currently being mined, comparison prices will be decreased
-
all prices will be decreased by a reverse exponential function, that will set hashrates into comparison to the maximum possible Algorithm+CoinSymbol hashrates PfC = PfC x ( 1 - (1 - (Hashrate/MaximumHashrate(Algorithm+CoinSymbol))^(HashrateWeightStrength(%)/100)) x (HashrateWeight(%)/100) )
-
if MaxAllowedLuck is set to a value greater than 0 (floating point, 1 equals to 100%, 1.2 equals to 120% ...)
-
if MaxTimeSinceLastBlock is greater than 0 (in seconds) and the pool's time since last block is greater than MaxTimeSinceLastBlock, the comparison price will be decreased:
-
all prices will be decreased by an inverse logarithmic function, depending on how far a pool is out of sync (current-time minus last-price-or-hashrate-update time)
How can I make sure, my hand tuned config files in the Bin folders, will not be deleted during miner updates?
-
RainbowMiner has a built-in list of protected files, that will be kept during updates:
config.txt nvidia.txt amd.txt config_*.txt
-
If you want to add your own userdefined files, that should be kept from update to update, edit the file
Config\minerconfigfiles.txt
and add your files (wildcards are allowed), one at each row. -
if the automatic fails: when updating, RainbowMiner creates a backup folder that contains the full contents of the original. It is named like the original miner's folder, but date/time added with a dot (e.g. CryptoNight-SrbMiner.20181202_174533). A maximum of three backups is kept.
CREDITS
The miner script has initially been forked from MultiPoolMiner, for my private use, only. Since I changed and optimized the script a lot to suit my needs, I decided to make the source code public, so that others can profit from my optimizations.
If you are happy with the script, crypto donations are greatly appreciated:
- BTC: 3P7pVVNpExuuHL9wjWKAo7jzQsb9ZziUFC
- BTC: bc1q6h7k2ul4a4rtmrlaemlxd9kmhtf89nlg6s4ydu (bech32 native segwit)
- BCH: 1MGRzyaLjQ67ZwwL9QTbXzwLxa8x1qSTBD
- ETH: 0x3084A8657ccF9d21575e5dD8357A2DEAf1904ef6