Several version and lots of feedback later I've rebuilt the application into Miner Control. This has the same features from NiceHash Control plus many more. It now supports multiple services as well as manual configurations. It has failover support to move to other services when one becomes unavailable.
Here is a quick list of features:
- Supports multiple services which provide an API for pricing and payout in Bitcoin (more may be added if they are compatible).
- NiceHash
- WestHash
TradeMyBit- shut down on 17 December 2014YAAMP- goneWafflePool- gone- LTCRabbit
- WePayBTC
Hamsterpool- gone
- API call once per minute to each service to get the current prices.
- Manual configurations for last resort backup pool.
- Failover support when miner exits abnormally (such as when pool is down).
- Minimum time to mine on new algorithm to allow for spin up of the miner.
- Forced restart of miner after maximum amount of time to avoid stuck miners.
- Time before switch to new best algorithm to avoid flickering between algorithms with similar payout levels.
- Config parameter substitution for common values in miner configs.
- View output from multiple mining computers on one system with 'remote console'.
Full source code is available at my GitHub repository.
Legal disclaimer: This program is not created, supported, or endorsed by any of the mining pools or miner software makers. It is my own creation and you use it at your own risk.
Download: https://github.com/StuffOfInterest/MinerControl/releases
Screen shot:
Remote console:
Display details:
- Actions
- Auto - Put miner in automatic mode for switching between algorithms.
- Stop - Stop running miner.
- Times
- Running - How much total mining time has happened since the application started.
- Current - How long the current mining session has been running.
- Switch - How long before a switch occurs once a new entry is more profitable.
- Restart - How long until the current mining session is restarted if no more profitable entry happens first.
- Donation
- Time Until - How long until donation mining will take place
- Mining Time - How long donation mining will run for
- Currency
- Exchange - Exchange rate from local currency to Bitcoin.
- Balance - Sum balance of all services in local currency.
- Top grid columns
- Service - Which service provider this entry is for.
- Updated - When pricing for this service was last updated.
- Balance - Balance reported by the service.
- Running - Total time spent mining against this service.
- Bottom grid columns
- Service - Which service provider this entry is for.
- Algo - Algorithm used for calculating hashrate and power.
- Hash Rt - Hash rate for this algorithm for this machine.
- Price - How much this algorithm earns on this service in BTC/GH/Day.
- Earn - How much in BTC/Day this machine will earn.
- Fees - Fees taken from earnings.
- Power - Power cost per day in BTC.
- Net - Net earned from earnings (adjusted for weighting) minus fees and power.
- Balance - Balance at provider for this algorithm (only supported on NiceHash, WestHash, and WafflePool).
- Accept - Current accept rate (only supported on NiceHash, WestHash, YAAMP, and WafflePool).
- Reject - Current reject rate (only supported on NiceHash, WestHash, and WafflePool).
- Running - How long spent mining for this entry since application started.
- Status - Current status of the entry (only shows when miner is running).
- Running - Currently running entry.
- Pending - Entry that will start once switch time has been met.
- Dead - Miner exited abnormally and hasn't reached its dead time threshold yet.
- Action - Start an individual miner for testing (only shows when miner is stopped).
Configuration file:
{
"general": {
"power": 0.10,
"exchange": 500,
"currencycode": "USD",
"mintime": 4,
"maxtime": 30,
"switchtime": 3,
"deadtime": 10,
"logerrors": true,
"logactivity": true,
"gridsortmode": 1,
"minerkillmode": 1,
"traymode": 1,
"donationpercentage": 2,
"donationfrequency": 240,
"remotesend": true,
"remotereceive": true
},
"algorithms": [
{ "name": "x11", "hashrate": 5251, "power": 49, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a x11" },
{ "name": "x13", "hashrate": 4024, "power": 49, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a x13" },
{ "name": "x14", "hashrate": 4024, "power": 52, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a x14" },
{ "name": "x15", "hashrate": 3270, "power": 52, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a x15" },
{ "name": "quark", "hashrate": 7000, "power": 54, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a quark" },
{ "name": "nist5", "hashrate": 15682, "power": 54, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a nist5" },
{ "name": "neoscrypt", "hashrate": 80, "power": 54, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a neoscrypt" },
{ "name": "scrypt", "hashrate": 540, "power": 60, "aparam1": "c:\\windows\\system32", "aparam2": "cmd.exe", "aparam3": "/c test-run.bat -a scrypt -batch" },
{ "name": "scryptn", "hashrate": 253, "power": 60, "aparam1": "c:\\windows\\system32", "aparam2": "cmd.exe", "aparam3": "/c test-run.bat -a scryptn -batch" },
{ "name": "keccak", "hashrate": 34000, "power": 50, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a keccak" },
{ "name": "lyra2", "display": "Lyra2RE", "hashrate": 1216, "power": 50, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a lyra2re" },
{ "name": "whirlpoolx", "display": "WhirlpoolX", "hashrate": 152000, "power": 50, "aparam1": "", "aparam2": "TestMiner.exe", "aparam3": "-a whirlpoolx" },
{ "name": "sha256", "hashrate": 10000, "power": 50, "aparam1": "c:\\windows\\system32", "aparam2": "cmd.exe", "aparam3": "/c test-run.bat -a sha256 -batch" }
],
"nicehash": {
"account": "1PMj3nrVq5CH4TXdJSnHHLPdvcXinjG72y",
"worker": "1",
"sparam1": "-o stratum+tcp://stratum.nicehash.com",
"sparam2": "-p x",
"weight": 0.90,
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3336 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3337 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "x15", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3339 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3333 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "scryptn", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3335 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "keccak", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3338 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "nist5", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3340 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "neoscrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3341 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "lyra2", "priceid": "9", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3342 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "whirlpoolx", "priceid": "10", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3343 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "sha256", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3332 -u _ACCOUNT_._WORKER_ _SPARAM2_", "usewindow": true }
]
},
"westhash": {
"account": "1PMj3nrVq5CH4TXdJSnHHLPdvcXinjG72y",
"worker": "1",
"sparam1": "-o stratum+tcp://stratum.westhash.com",
"sparam2": "-p x",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3336 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3337 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "x15", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3339 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3333 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "scryptn", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3335 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "keccak", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3338 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "nist5", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3340 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "neoscrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3341 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "lyra2", "priceid": "9", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3342 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "whirlpoolx", "priceid": "10", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3343 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
]
},
"yaamp": {
"account": "1PMj3nrVq5CH4TXdJSnHHLPdvcXinjG72y",
"pricemode": 1,
"sparam1": "-o stratum+tcp://yaamp.com",
"sparam2": "-p x",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3533 -u _ACCOUNT_ _SPARAM2_" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3633 -u _ACCOUNT_ _SPARAM2_" },
{ "algo": "x14", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3933 -u _ACCOUNT_ _SPARAM2_" },
{ "algo": "x15", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3733 -u _ACCOUNT_ _SPARAM2_" },
{ "algo": "quark", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:4033 -u _ACCOUNT_ _SPARAM2_" },
{ "algo": "nist5", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3833 -u _ACCOUNT_ _SPARAM2_" },
{ "algo": "lyra2", "priceid": "lyra2", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:4433 -u _ACCOUNT_ _SPARAM2_" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3433 -u _ACCOUNT_ _SPARAM2_" }
]
},
"wafflepool": {
"account": "1PMj3nrVq5CH4TXdJSnHHLPdvcXinjG72y",
"worker": "1",
"sparam1": "-o stratum+tcp://useast.wafflepool.com",
"sparam2": "-p x",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3331 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3330 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3333 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "scryptn", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3332 -u _ACCOUNT_._WORKER_ _SPARAM2_" }
]
},
"ltcrabbit": {
"apikey": "mykey",
"account": "MinerControl",
"worker": "1",
"sparam2": "-p x",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ -o stratum+tcp://x11.ltcrabbit.com:3332 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ -o stratum+tcp://scrypt.ltcrabbit.com:3333 _ACCOUNT_._WORKER_ _SPARAM2_" }
]
},
"wepaybtc": {
"account": "1PMj3nrVq5CH4TXdJSnHHLPdvcXinjG72y",
"worker": "1",
"sparam1": "-o ny",
"sparam2": "-p [email protected]",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_ -u _ACCOUNT___WORKER_ _SPARAM2_" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_ -u _ACCOUNT___WORKER_ _SPARAM2_" },
{ "algo": "x15", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_ -u _ACCOUNT___WORKER_ _SPARAM2_" },
{ "algo": "nist5", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_ -u _ACCOUNT___WORKER_ _SPARAM2_" }
]
},
"hamsterpool": {
"apikey": "mykey",
"donation": 1.0,
"account": "MinerControl",
"worker": "1",
"sparam1": "-o stratum+tcp://eu.hamsterpool.com",
"sparam2": "-p x",
"algos": [
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7771 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "scryptn", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7772 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "sha256", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7774 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3508 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "qubit", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7776 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7773 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "neoscrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3650 -u _ACCOUNT_._WORKER_ _SPARAM2_" }
]
},
"manual": {
"account": "myaccount",
"algos": [
{ "algo": "scrypt", "price": 0.0100, "fee": 3.0, "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ -o manual.com:1 _ACCOUNT_ -p x" }
]
}
}
Legend:
- general - General configuration parameters
- power - Rate per KW/hour in your currency units
- exchange - Default Bitcoin price in your currency units for calculating power cost in Bitcoin (only used if unable to download exchange rate)
- currencycode - Three letter currency code to use for exchange rate (must be available in this list)
- mintime - Minimum time in minutes to mine on new algorithm before auto-switch is allowed
- maxtime - Maximum time in minutes to mine an algorithm under auto mode before a restart occurs
- switchtime - Time in minutes that the current algorithm has to no longer be the best before switching to a new one under auto mode
- deadtime - Time in minutes before an entry will be tried again after it fails and is marked as dead
- logerrors - Log errors in 'error.log' file any time an exception is caught in the controller
- logactivity - Log miner start and stop events in 'activity.log'
- gridsortmode - 0 = never sort price grid, 1 = sort when in auto mode, 2 = sort whenever prices update (default 1)
- minerkillmode - 0 = kill single process, 1 = kill process tree (default 1)
- traymode - 0 = don't minimize to tray, 1 = minimize to tray and hide miner after starting while minimized, 2 = minimize to tray and start miners hidden while minimized
- donationpercentage - Percentage of time to spend doing donation mining to support development of Miner Control (default 2)
- donationfrequency - How often, in minutes, to do donation mining (default 240, or 4 hours)
- remotesend - Send console output to remote receiver (default false)
- remotereceive - Receive console output from remote senders (default false)
- algorithms - List of supported algorithms
- name - Name of supported algorithm (only listed names are currently supported)
- display - What to display in the 'Algo' column in the prices grid
- hashrate - Your hashrate in kHash/sec
- power - Watts your GPU pulls when mining an algorithm
- aparam1, aparam2, aparam3 - algorithm based substitution value for use in folder, command, and arguments
- nicehash - Config section for NiceHash, ommit to not use this service
- account - Bitcoin address to mine against
- worker - worker ID
- weight - multiplier to adjust price if you don't fully trust the reported numbers
- sparam1, sparam2, sparam3 - service based substitution value for use in folder, command, and arguments
- algo - algorithm name from algorithms section above
- priceid - value pricing API will use to distinguish an algorithm
- folder - Folder where mining app is located, blank if same as the NiceHash.exe file
- command - Command to execute
- arguments - Arguments to include with the command
- usewindow - Run miner in separate window from controller (default false)
- westhash - Config section for WestHash, ommit to not use this service
- (settings are the same as nicehash)
- trademybit - Config section for TradeMyBit, ommit to not use this service
- (settings are the same as nicehash)
- apikey - your API key to use in gathering prices
- yaamp - Config section for YAAMP, ommit to not use this service
- (settings are the same as nicehash)
- pricemode - 0 = current estimate, 1 = 24hr estimate, 2 = 24hr actual
- wafflepool - Config section for WafflePool, ommit to not use this service
- (settings are the same as nicehash)
- ltcrabbit - Config section for LTCRabbit, ommit to not use this service
- (settings are the same as nicehash)
- apikey - your API key to use in gathering prices
- wepaybtc - Config section for WePayBTC, ommit to not use this service
- (settings are the same as nicehash)
- hamsterpool - Config section for HamsterPool, ommit to not use this service
- (settings are the same as nicehash)
- apikey - your API key to use in gathering prices
- donation - percentage to donate back to HamsterPool
- manual - Config section for manual miners, ommit to not use this service
- (settings are the same as nicehash)
- price - price to use for calculating earnings
- fee - percentage fee to deduct from price
Substitution identifiers for command, folder, and argument parameters:
- _ADDRESS_ - Substitutes the above address if specified
- _WORKER_ - Substitutes the above worker if specified
- _APARAM1_ - Substitutes the above aparam1 if specified
- _APARAM2_ - Substitutes the above aparam2 if specified
- _APARAM3_ - Substitutes the above aparam3 if specified
- _SPARAM1_ - Substitutes the above sparam1 if specified
- _SPARAM2_ - Substitutes the above sparam2 if specified
- _SPARAM3_ - Substitutes the above sparam3 if specified
Instructions:
- Download into a folder on your Windows computer
- Make sure .NET Framework 4.0 is installed
- Modify MinerControl.conf with the settings for your own mining applications
- Start MinerControl.exe
- Click "Start" for each miner to confirm it launches and does not require confirmation each time it is opened
- Click "Auto" to change over to auto selection mode
- Profit!!
Command line arguments:
- -a | --auto-start Start mining in automatic mode as soon as the application starts.
- -m | --minimize Minimize application on startup.
- -t | --minimize-to-tray Minimize to the tool tray and hide miner when minimize icon is clicked. This option is obsolete and the config setting "traymode" should be used instead. If "traymode" is set to "0" then this option will switch it to "2".
Q & A:
- Q: How can I start mining automatically when MinerControl starts? A: Launch with "MinerControl.exe --auto-start".
- Q: Miner Control starts to display, freezes for a second, and then crashes. What is happening? A: Most likely there is an error in the config file. Miner Control is sensitive to the formatting of this file and will crash badly if there is an error. Make sure your "key":"value" pairs are all correctly named and that any path backslashes are created as double-backslash ("\\"). Consider using a validator just as JSON Lint to verify your config file structure.
- Q: Will Miner Control work on Windows XP? A: Yes, just make sure you have .NET Framework 4.0 installed.
- Q: What does donation mining do? A: Donation mining will mine to the MinerControl author's address or account for a percentage of time. Default setting is for 2% of the time over four hours which works out to just under five minutes spent donation mining every four hours. If the percentage is set to 0 then no donation mining will occur.
Here is the configuration file I'm currently using to show how both ccminer and cudaminer can be invoked.
{
"general": {
"power": 0.10,
"exchange": 500,
"currencycode": "USD",
"mintime": 4,
"maxtime": 180,
"switchtime": 3,
"deadtime": 10,
"logerrors": true,
"logactivity": true,
"gridsortmode": 1,
"minerkillmode": 0,
"traymode": 1,
"donationpercentage": 5,
"donationfrequency": 120
},
"algorithms": [
{ "name": "x11", "hashrate": 5435, "power": 49, "aparam1": "C:\\CryptoMining\\ccminer-maxwell-optimized-1.47.sp", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a x11 --no-color -o" },
{ "name": "x13", "hashrate": 4112, "power": 49, "aparam1": "C:\\CryptoMining\\ccminer-maxwell-optimized-1.47.sp", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a x13 --no-color -o" },
{ "name": "x14", "hashrate": 4000, "power": 52, "aparam1": "C:\\CryptoMining\\ccminer-maxwell-optimized-1.47.sp", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a x14 --no-color -o" },
{ "name": "x15", "hashrate": 3635, "power": 52, "aparam1": "C:\\CryptoMining\\ccminer-maxwell-optimized-1.47.sp", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a x15 --no-color -o" },
{ "name": "quark", "hashrate": 7000, "power": 54, "aparam1": "C:\\CryptoMining\\ccminer-maxwell-optimized-1.47.sp", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a quark --no-color -o" },
{ "name": "nist5", "hashrate": 15682, "power": 54, "aparam1": "C:\\CryptoMining\\ccminer-maxwell-optimized-1.47.sp", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a nist5 --no-color -o" },
{ "name": "keccak", "hashrate": 34000, "power": 50, "aparam1": "C:\\CryptoMining\\ccminer-maxwell-optimized-1.47.sp", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a keccak --no-color -o" },
{ "name": "qubit", "hashrate": 7500, "power": 50, "aparam1": "C:\\CryptoMining\\ccminer-maxwell-optimized-1.47.sp", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a qubit --no-color -o" },
{ "name": "neoscrypt", "hashrate": 83, "power": 60, "aparam1": "C:\\CryptoMining\\sgminer-5-dev-neoscrypt-windows", "aparam2": "sgminer.exe", "aparam3": "-k neoscrypt -I 14 -T -o" },
{ "name": "lyra2", "display": "Lyra2RE", "hashrate": 1216, "power": 50, "aparam1": "C:\\CryptoMining\\ccminer-1.5.1-git-tpruvot-lyra2", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a lyra2 --no-color -o" },
{ "name": "whirlpoolx", "display": "WhirlpoolX", "hashrate": 152000, "power": 54, "aparam1": "C:\\CryptoMining\\ccminer-41", "aparam2": "ccminer.exe", "aparam3": "-q -r 3 -R 10 -a whirlpoolx --no-color -o" },
{ "name": "scrypt", "hashrate": 540, "power": 60, "aparam1": "C:\\CryptoMining\\cudaminer-20140415test-x64", "aparam2": "cudaminer.exe", "aparam3": "-a scrypt -d 0,1 -i 1,0 -l T5x24,T5x24 -q -o" },
{ "name": "scryptn", "hashrate": 253, "power": 60, "aparam1": "C:\\CryptoMining\\cudaminer-20140415test-x64", "aparam2": "cudaminer.exe", "aparam3": "-a scrypt:2048 -d 0,1 -i 1,0 -q -o" },
{ "name": "sha256", "hashrate": 0, "power": 0 }
],
"nicehash": {
"account": "1PMj3nrVq5CH4TXdJSnHHLPdvcXinjG72y",
"worker": "1",
"weight": 0.90,
"sparam1": "stratum+tcp://stratum.nicehash.com",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3336 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3337 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "x15", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3339 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "nist5", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3340 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3333 -u _ACCOUNT_._WORKER_ -p d=256" },
{ "algo": "scryptn", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3335 -u _ACCOUNT_._WORKER_ -p d=128" },
{ "algo": "keccak", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3338 -u _ACCOUNT_._WORKER_ -p d=8192" },
{ "algo": "neoscrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3341 -u _ACCOUNT_._WORKER_ -p d=32", "usewindow": true },
{ "algo": "lyra2", "priceid": "9", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3342 -u _ACCOUNT_._WORKER_ -p x" },
{ "algo": "whirlpoolx", "priceid": "10", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3343 -u _ACCOUNT_._WORKER_ -p x" }
]
},
"westhash": {
"account": "1PMj3nrVq5CH4TXdJSnHHLPdvcXinjG72y",
"worker": "1",
"sparam1": "stratum+tcp://stratum.westhash.com",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3336 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3337 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "x15", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3339 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "nist5", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3340 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3333 -u _ACCOUNT_._WORKER_ -p d=256" },
{ "algo": "scryptn", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3335 -u _ACCOUNT_._WORKER_ -p d=128" },
{ "algo": "keccak", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3338 -u _ACCOUNT_._WORKER_ -p d=8192" },
{ "algo": "neoscrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3341 -u _ACCOUNT_._WORKER_ -p d=32", "usewindow": true },
{ "algo": "lyra2", "priceid": "9", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3342 -u _ACCOUNT_._WORKER_ -p x" },
{ "algo": "whirlpoolx", "priceid": "10", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3343 -u _ACCOUNT_._WORKER_ -p x" }
]
},
"yaamp": {
"account": "1PMj3nrVq5CH4TXdJSnHHLPdvcXinjG72y",
"worker": "1",
"sparam1": "stratum+tcp://yaamp.com",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3533 -u _ACCOUNT_ -p _WORKER_" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3633 -u _ACCOUNT_ -p _WORKER_" },
{ "algo": "x15", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3733 -u _ACCOUNT_ -p _WORKER_" },
{ "algo": "nist5", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3833 -u _ACCOUNT_ -p _WORKER_" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3433 -u _ACCOUNT_ -p _WORKER_" },
{ "algo": "lyra2", "priceid": "lyra2", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:4433 -u _ACCOUNT_ -p _WORKER_" }
]
},
"wafflepool": {
"account": "1PMj3nrVq5CH4TXdJSnHHLPdvcXinjG72y",
"worker": "1",
"sparam1": "stratum+tcp://useast.wafflepool.com",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3331 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3330 -u _ACCOUNT_._WORKER_ -p d=0.08" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3333 -u _ACCOUNT_._WORKER_ -p x" },
{ "algo": "scryptn", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3332 -u _ACCOUNT_._WORKER_ -p x" }
]
},
"ltcrabbit": {
"apikey": "mykey",
"account": "MinerControl",
"worker": "1",
"algos": [
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ stratum+tcp://x11.ltcrabbit.com:3332 -u _ACCOUNT_._WORKER_ -p d=x" },
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ stratum+tcp://scrypt.ltcrabbit.com:3333 -u _ACCOUNT_._WORKER_ -p x" }
]
},
"hamsterpool": {
"apikey": "mykey",
"donation": 1.0,
"account": "MinerControl",
"worker": "1",
"sparam1": "-o stratum+tcp://eu.hamsterpool.com",
"sparam2": "-p x",
"algos": [
{ "algo": "scrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7771 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "scryptn", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7772 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "sha256", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7774 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "x11", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3508 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "qubit", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7776 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "x13", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:7773 -u _ACCOUNT_._WORKER_ _SPARAM2_" },
{ "algo": "neoscrypt", "folder": "_APARAM1_", "command": "_APARAM2_", "arguments": "_APARAM3_ _SPARAM1_:3650 -u _ACCOUNT_._WORKER_ _SPARAM2_" }
]
}
}
Release history:
- 29-December-2014: Version 1.6.1 - Option to selection price type for YAAMP (current est, 24hr est, or 24hr actual).
- 15-December-2014: Version 1.6.0 - Configure new algorithms, including API identifiers, via the conf file.
- 9-December-2014: Version 1.5.6 - Add support for HamsterPool.
- 21-November-2014: Version 1.5.5 - Add support for WePayBTC.
- 13-November-2014: Version 1.5.4 - Option to minimize application on startup.
- 6-November-2014: Version 1.5.3 - NeoScrypt support for NiceHash, WestHash, and TradeMyBit.
- 30-October-2014: Version 1.5.2 - Fix for Windows XP multicast sender.
- 30-October-2014: Version 1.5.1 - Move to different multicast address.
- 29-October-2014: Version 1.5.0 - Send console output to a remote receiver, display console output from remote senders.
- 26-October-2014: Version 1.4.5 - Bug fix for freeze when invalid miner program specified in the config file.
- 25-October-2014: Version 1.4.4 - Bug fixes and examples in config file.
- 21-October-2014: Version 1.4.3 - Algorithm level substitutions.
- 20-October-2014: Version 1.4.2 - Add support for LTCRabbit.
- 19-October-2014: Version 1.4.1 - Fix for issue launching cudaminer for display in console.
- 18-October-2014: Version 1.4.0 - Run miner inside of program, no separate window anymore.
- 17-October-2014: Version 1.3.1 - Add activity log.
- 8-October-2014: Version 1.3.0 - Download exchange rate for local currency.
- 7-October-2014: Version 1.2.1 - Fix service level running time display.
- 6-October-2014: Version 1.2.1 - Add WafflePool.
- 5-October-2014: Version 1.2.0 - Add donation mining.
- 29-September-2014: Version 1.1.2 - Add minimize to tray modes in config file and more grid sorting UI improvement.
- 25-September-2014: Version 1.1.1 - Hopefully fix a stack overflow bug related to price sorting.
- 23-September-2014: Version 1.1.0 - Top level service summary and more config options.
- 14-September-2014: Version 1.0.3 - Option to create 'error.log' file when exceptions occur in the controlller.
- 5-September-2014: Version 1.0.2 - Fix TradeMyBit parsing error.
- 4-September-2014: Version 1.0.1 - Fix autostart bug and do price loads asynchronously.
- 4-September-2014: Version 1.0.0 of Miner Control.
- 13-July-2014: Version 1.1.1 (final release) of NiceHash Control.
- 16-June-2014: Version 1.0.0 of NiceHash Control.
Donation addresses: