diff --git a/README.md b/README.md index 7052f2cd..8e2a30bc 100644 --- a/README.md +++ b/README.md @@ -1,130 +1,149 @@ # UG-Miner UG-Miner monitors mining pools in real-time in order to find the most profitable algorithm +and runs the most profitable miner. Updated 2024/08/01 Copyright (c) 2018-2024 UselessGuru -This is free software, and you are welcome to redistribute it -under certain conditions. +This is free software, and you are welcome to redistribute it under certain conditions. https://github.com/UselessGuru/UG-Miner/blob/master/LICENSE -Updated & maintained by UselessGuru +This project is updated & maintained by UselessGuru. UG-Miner code is partly based on -- MultiPoolMiner which can be found here: https://github.com/MultiPoolMiner/MultiPoolMiner - (Project is no longer maintained) -- NPlusMiner which can be found here: https://github.com/MrPlusGH/NPlusMiner - (Project is no longer maintained) -- NemosMiner which can be found here: https://github.com/Minerx117/NemosMiner - (Project is no longer maintained) - -***** - -**Main features:** - - Web & legacy GUI - - Easy configuration - - Auto benchmark each algorithm to get optimal speeds - - Fully automated - - Auto downloads miner binaries - - Auto updates - - Earnings graph - - Low developer fee of 1% (can be set to 0) - - Calculate power cost (optional software installation required) - - Supports these pools: - - HashCryptos - - Hiveon - - MiningDutch - - MiningPoolHub (*) - - NiceHash - - ProHashing - - ZergPool - - ZPool - - (*) MiningPoolHub is no longer trustworthy. Outstanding balances will not get paid and support will not respond. Use at your own risk! - - -***** - +- MultiPoolMiner + https://github.com/MultiPoolMiner/MultiPoolMiner (Project is no longer maintained) + +- NPlusMiner + https://github.com/MrPlusGH/NPlusMiner (Project is no longer maintained) + +- NemosMiner + https://github.com/Minerx117/NemosMiner (Project is no longer maintained) + +## Main features: + +- Web & legacy GUI +- Easy configuration +- Auto benchmark each algorithm to get optimal speeds +- Fully automated +- Automatically downloads miner binaries +- Automatic updates +- Earnings graph & Balances tracker +- Low developer fee of 1% (can be set to 0) +- Calculate power cost + (optional installation of HWiNFO required, see ConfigHWinfo64.pdf) +- Miner switching log +- Supports these pools: + - [HashCryptos]() + - [Hiveon]() (1) + - [MiningDutch]() + - [MiningPoolHub]() (2) + - [NiceHash]() + - [ProHashing]() + - [ZergPool]() + - [ZPool]() + +(1) Pool does not support auto-exchange to other currencies. + You need to configure a wallet address for each currency you want to mine. + +(2) MiningPoolHub is no longer trustworthy. + Outstanding balances will not get paid and support will not respond. Use at your own risk! + +<<<<<<< HEAD **Easy configuration, easy start:** +======= +## Easy configuration, easy start +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 - Run UG-Miner.bat - 1. Edit configuration (http://localhost:3999/configedit.html) - 2. Set your Wallet address(es) and Username(s) - 3. Select your pool(s) - 4. Save configuration - 5. Start mining + Run UG-Miner.bat + 1. Edit configuration (http://localhost:3999/configedit.html) + 2. Set your wallet address(es) and username(s) + 3. Select your pool(s) + 4. Save configuration + 5. Start mining - Note: 2. you only need to change the username if you are using MiningDutch, MiningPoolhub or ProHashing + Note: 2. you only need to change the username if you are using MiningDutch, MiningPoolhub or ProHashing ![alt text](https://github.com/UselessGuru/UG-Miner-Extras/releases/download/Images/UG-Miner_FirstStart.png "UG-Miner Web GUI") - Algorithm selection / removal +### Pool Variants - +[algorithm] to enable algorithm - -[algorithm] to disable algorithm +#### Poolnames ending in *24h: - If '+' is used, then only the explicitly enabled algorithms are used - If '-' is used, then all algorithms except the disabled ones are used +* use calculations based on 24hr prices to get a more stable estimate +* are NOT sensible to spikes +* show less switching than following current or plus price estimate +* lower estimated profitability in exchange for less switching - Do not combine + and - for the same algorithm +#### Poolnames ending in *Plus: - Examples: - Algorithm list = '-ethash' - Will mine anything but ethash +* use calculations based on 24hr actual and current estimate prices to get a more realistic estimate +* include some trust index based on past 1hr current estimate variation from 24hr +* are NOT sensible to spikes +* show less switching than following current estimate and more switching than following the 24hr actual +* better estimated profitability - Algorithm list = '-ethash,-kawpow' - Will mine anything but ethash and kawpow +#### Poolnames without *24h/plus - Algorithm list = +ethash - Will mine only ethash +* use current price data in pool API to calculate profit (no estimates or advanced calculations) - Algorithm list = '+ethash,+kawpow' - Will mine only ethash and kawpow +### Algorithm selection / removal - Algorithm list blank - Will mine anything ++[algorithm] to enable algorithm +-[algorithm] to disable algorithm +If '+' is used, then only the explicitly enabled algorithms are used +If '-' is used, then all algorithms except the disabled ones are used - Currency selection / removal +Do not combine '+' and '-' for the same algorithm. - +[currency] to enable currency - -[currency] to disable currency +#### Examples: +Algorithm list = '-ethash' +Will mine anything but ethash - If '+' is used, then only the explicitly enabled currencies are used - If '-' is used, then all currencies except the disabled ones are used +Algorithm list = '-ethash,-kawpow' +Will mine anything but ethash and kawpow - Do not combine + and - for the same currency +Algorithm list = +ethash +Will mine only ethash - Examples: - Currency list = '-EVR' - Will mine anything but EVR +Algorithm list = '+ethash,+kawpow' +Will mine only ethash and kawpow - Currency list = '-EVR,-KIIRO' - Will mine anything but EVR and KIIRO +Algorithm list blank +Will mine anything - Currency list = '+EVR' - Will mine only EVR +### Currency selection / removal - Currency list = '+EVR,+KIIRO' - Will mine only EVR and KIIRO ++[currency] to enable currency +-[currency] to disable currency - Currency list blank - Will mine anything +If '+' is used, then only the explicitly enabled currencies are used +If '-' is used, then all currencies except the disabled ones are used +Do not combine '+' and '-' for the same currency. - Pools Variants +#### Examples: +Currency list = '-EVR' +Will mine anything but EVR - *24hr - uses last 24hour price data in pool API to calculate profit (no estimates or advanced calculations) +Currency list = '-EVR,-KIIRO' +Will mine anything but EVR and KIIRO - *Plus - uses advanced calculations to reduce uneeded switching +Currency list = '+EVR' +Will mine only EVR - normal - uses current price data in pool API to calculate profit (no estimates or advanced calculations) +Currency list = '+EVR,+KIIRO' +Will mine only EVR and KIIRO +Currency list blank +Will mine anything +<<<<<<< HEAD **Developer Donation** Donation fee is approx. 1% (15 minutes per day) and can be increased or decreased in the configuration editor. @@ -148,101 +167,103 @@ UG-Miner code is partly based on UG-Miner relies on config files. There is no need to edit bat files. Simply run UG-Miner.bat Set the config in the Web GUI (http://localhost:3999/configedit.html), apply & start mining. +======= +## Web & legacy GUI +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 +UG-Miner can be controlled & configured through the Web GUI. +For most scenarios there is no need to edit configration files manually. +Some settings can be configured per [advanced pool configuration](). ![alt text](https://github.com/UselessGuru/UG-Miner-Extras/releases/download/Images/UG-Miner_Dashboard.png "UG-Miner Web GUI Dashboard") +## Pause mining +<<<<<<< HEAD **Pause mining** +======= +Ability to pause miners while keeping other jobs running (pause button). This will stop mining activity. +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 - Ability to pause miners while keeping other jobs running (pause button). This will stop mining activity. - Brains will still run in the background avoiding the learning phase on resume. - BalancesTracker will still run in the background to keep the pool balances up to date. +Brains will still run in the background avoiding the learning phase on resume. +<<<<<<< HEAD **PreRun** +======= +BalancesTracker will still run in the background to keep the pool balances up to date. +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 - Ability to run a batch prior switching to a specific miner and/or algorithm. - The prerun scripts can be used to set per miner/algorithm OC via nvidiaInspector or OverdriveNTool. - Before starting a miner executable UG-Miner is trying to launch one of the following 3 prerun scripts (in this order): - 1. _.bat - Simply create a file named _.bat in prerun folder, e.g. 'MiniZ-v2.4.d-1xRadeonRX5808GB-EtcHash.bat' or 'Wildrig-v0.40.5-1xGTX10606GB_Ghostrider.bat' - 2. .bat - Simply create a file named .bat in prerun folder, e.g. 'Ethash.bat' - 3. default.bat - If neither of the two above exist, UG-Miner will try to launch 'prerun\default.bat' - Use overclock with caution +## PreRun +<<<<<<< HEAD **Per pool config (Advanced, see 'Data\PoolsConfig-Template.json')** +======= +Ability to run a batch script prior switching to a specific miner and/or algorithm. +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 - **This is for advanced users. Do not use if you do not know what you are doing.** +The prerun scripts can be used to apply per miner/algorithm overclocking settings via nvidiaInspector or OverdriveNTool. - The file 'Config\PoolsConfig.json' contains configuration details for the pools. - A separate section can be added for each pool base name. If a pool is listed in this file, - the specific settings will be taken into account. If not, the built in default values will be used. - See 'Data\PoolData.json' for the basic structure of the file 'Config\PoolsConfig.json' +Before starting a miner executable UG-Miner is trying to launch one of the following 3 prerun scripts (in this order): - You can set specific options per pool. For example, you can mine NiceHash on the internal wallet and other pools on a valid wallet. See 'PoolsConfig-Template.json' for some pool specific configuration options. +1. \\_\.bat + Create a file named \\_\.bat in the 'Utils\\prerun folder' + e.g. 'MiniZ-v2.4.d-1xRadeonRX5808GB-EtcHash.bat' or 'Wildrig-v0.40.5-1xGTX10606GB_Ghostrider.bat' - Available options: - - Wallets[Currency]: Your wallet address for [Currency]; some pools, e.g. Hiveon require wallets in each supported currency - - UserName: your MPH or ProHashing user name - - WorkerName: your worker name - - EarningsAdjustmentFactor: See explanation below - - Algorithm: List of included or excluded algorithms per pool - - Corrency: List of included or excluded currencies per pool - - PayoutThreshold[Currency]: pool will allow payout if this amount is reached +3. \.bat + Create a file named \.bat in the 'Utils\\prerun' folder + e.g. 'Ethash.bat' - Usage: - - Edit 'Config\PoolsConfig.json' - - Add an entry for the pool you want to customize - - The name must be the pool base name (omit *24hrs or *Plus), e.g ZergPool (even if you have configured ZergPoolPlus in the pool list) - - (**careful with json formatting ;)** +5. default.bat + If neither of the two above exist UG-Miner will try to launch 'Utils\prerun\default.bat' - Note that the GUI only updates default values (valid for ALL pools unless there is pool specific configuration setting defined in 'Config\PoolConfig.json'). Any other changes need to be done manually. +**Use overclock with caution!** - EarningsAdjustmentFactor +## Advanced per pool configuration - When using advanced per pool configuration, it is possible to add an earnings adjustment factor for a specific pool. This simply adds a multiplicator on estimations presented by the pool. +**This is for advanced users. Do not use if you do not know what you are doing.** - Example scenario: - - You feel that a pool is exaggerating its estimations by 10%: Set EarningsAdjustmentFactor to 0.9 +The file 'Config\PoolsConfig.json' contains configuration details for the pools. +A separate section can be added for each pool. If a pool is listed in this file, +the specific settings will be taken into account. If not, the built in default values will be used. +See 'Data\PoolData.json' for the basic structure of the file 'Config\PoolsConfig.json' +<<<<<<< HEAD **Pool Variants** +======= +You can set specific options per pool. For example, you can mine NiceHash on the internal wallet and other pools on a valid wallet. See 'Data\PoolsConfig-Template.json' for some pool specific configuration options. +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 - Poolnames ending in *24hr +**Available options:** - * use calculations based on 24hr prices to get a more stable estimate - * are NOT sensible to spikes - * show less switching than following current or plus price estimate - * lower estimated profitability in exchange for less switching +- Wallets[Currency]: Your wallet address for [Currency]; some pools, e.g. Hiveon require wallets in each supported currency +- UserName: your MPH or ProHashing user name +- WorkerName: your worker name +- EarningsAdjustmentFactor: This adds a multiplicator on estimations presented by the pool + (e.g. You feel that a pool is exaggerating its estimations by 10%: Set EarningsAdjustmentFactor to 0.9) +- Algorithm: List of included or excluded algorithms per pool +- Currency: List of included or excluded currencies per pool +- PayoutThreshold[Currency]: pool will allow payout if this amount is reached - Poolnames ending in *Plus +**Usage:** - * use calculations based on 24hr actual and current estimate prices to get a more realistic estimate - * include some trust index based on past 1hr current estimate variation from 24hr - * are NOT sensible to spikes - * show less switching than following current estimate and more switching than following the 24hr actual - * better estimated profitability +- Edit 'Config\PoolsConfig.json' (**careful with json formatting ;)** +- Add an entry for the pool you want to customize + The name must be the pool base name (omit *24hrs or *Plus), e.g ZergPool (even if you have configured ZergPoolPlus in the pool list) +<<<<<<< HEAD **Balances Tracking** +======= +Note that the GUI only updates default values (valid for ALL pools unless there is pool specific configuration setting defined in 'Config\PoolConfig.json'). +Any other changes need to be done manually. +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 - Displays available balances and an estimation of when the pool payment threshold will be reached. - Supported pools: - - HashCryptos - - Hiveon (*) - - MiningDutch - - MiningPoolHub - - NiceHash (internal & external wallet) - - ProHashing - - ZergPool - - Zpool - (*) Pool does not support auto-exchange to other currencies. +## Balances tracking - If mining more than one pool, UG-Miner shows stats for all supported pools. - Press key 'b' in the console window to show/hide earnings. +Displays available balances and an estimation of when the pool payment threshold will be reached. - Support for running multiple instances (not recommended) +Supported pools: +<<<<<<< HEAD **Experimental** More than one instance of UG-Miner can run on the same rig @@ -250,73 +271,126 @@ UG-Miner code is partly based on Must use non-overlapping port ranges (configuration item '$APIport') Do not use the same miner devices in more than one instance (this will give invalid hash rate & power consumption readings causing incorrect best miner selection) +======= + - HashCryptos + - Hiveon (1) + - MiningDutch + - MiningPoolHub + - NiceHash (internal & external wallet) + - ProHashing + - ZergPool + - Zpool + +(1) Pool does not support auto-exchange to other currencies. You need to configure a wallet address for each currency you want to mine. +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 + +UG-Miner shows stats for all supported pools. +Press key 'e' in the console window to show/hide earnings. + +## Miner switching log + +<<<<<<< HEAD +**Console Display Options** +======= +A simple miner switching log in csv format is written to '[UG-Miner directory]\Logs\SwitchingLog.csv'. +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 - Miner Switching Log - - A simple miner switching log in csv format is writte to '[UG-Miner directory]\Logs\SwitchingLog.csv'. +## Console display options -**Console Display Options** +UI style can be set to 'light' or 'full': - Use -UIStyle light or -UIStyle full in config.json - Full = Usual display (Default) - Light = Show only current mining info - UIStyle automatically switches to full during benchmarking. - - In session console the following hot keys are supported: - - 1: Toggle Listing pool balances (currently off) - 2: Toggle Listing all optimal miners (currently off) - 3: Toggle UI style [full or light] (currently light) - - a: Toggle 'Accuracy' column visibility (currently on) - c: Toggle 'PowerCost' column visibility (currently on) - e: Toggle 'Earnings' column visibility (currently off) - f: Toggle Pool 'Fees' column visibility (currently on) - i: Toggle 'EarningBias' column visibility (currently on) - m: Toggle Miner 'Fees' column visibility (currently on) - n: Toggle 'CoinName' column visibility (currently on) - p: Toggle 'Pool' column visibility (currently on) - r: Toggle 'ProfitBias' column visibility (currently on) - t: Toggle 'Profit' column visibility (currently off) - u: Toggle 'User' column visibility (currently on) - w: Toggle 'PowerConsumption' column visibility (currently on) - y: Toggle 'Currency' column visibility (currently on) +- Light (default) + Information about miners run in the past 24hrs, failed miners in the past 24hrs & watchdog timers will be not be shown +<<<<<<< HEAD **Requirements** +======= +- Full + Information about miners run in the past 24hrs, failed miners in the past 24hrs & watchdog timers will be shown + +UIStyle automatically switches to full during benchmarking. + +In the main text window (session console) the following hot keys are supported: + + 1: Toggle Listing pool balances (currently off) + 2: Toggle Listing all optimal miners (currently off) + 3: Toggle UI style [full or light] (currently light) + + a: Toggle 'Accuracy' column visibility (currently on) + c: Toggle 'PowerCost' column visibility (currently on) + e: Toggle 'Earnings' column visibility (currently off) + f: Toggle Pool 'Fees' column visibility (currently on) + i: Toggle 'EarningBias' column visibility (currently on) + m: Toggle Miner 'Fees' column visibility (currently on) + n: Toggle 'CoinName' column visibility (currently on) + p: Toggle 'Pool' column visibility (currently on) + r: Toggle 'ProfitBias' column visibility (currently on) + t: Toggle 'Profit' column visibility (currently off) + u: Toggle 'User' column visibility (currently on) + w: Toggle 'PowerConsumption' column visibility (currently on) + y: Toggle 'Currency' column visibility (currently on) + +## Requirements +>>>>>>> 276e906e63ab9ff43d00e598f4e210b02f8d8167 Windows 10.x and PowerShell Version 7.x is required. -UG-Miner works best with the latest PWSH version 7.4.4. - +UG-Miner works best with the latest PWSH version 7.4.4. [Download Installer for version 7.4.4](https://github.com/PowerShell/PowerShell/releases/download/v7.4.4/PowerShell-7.4.4-win-x64.msi) -**Some miners may need 'Visual C+ RunTimes download/extract, run install_all.bat file** +Some miners may need 'Visual C+ RunTimes. Download and extract +[Visual C+ RunTimes](https://github.com/UselessGuru/UG-Miner-Extras/releases/download/Visual-C-Runtimes-All-in-One-Sep-2019/Visual-C-Runtimes-All-in-One-Sep-2019.zip) +then run install_all.bat file. + +Virtual memory settings +When running multiple cards its recommended to increase Virtual Memory. 16GB is optimal. + +Recommended/optimal Windows Nvidia driver +[Windows Nvidia driver 537.42](https://us.download.nvidia.com/Windows/537.42/537.42-desktop-win10-win11-64bit-international-dch-whql.exe) +If you use older drivers some miners will not be available. + +Recommended/optimal Windows AMD driver +[Windows 10/11 AMD GPU Driver 7/25/2023](https://www.amd.com/en/support) -[Visual C+ RunTimes](https://github.com/UselessGuru/UG-Miner-Extras/releases/download/Visual-C-Runtimes-All-in-One-Sep-2019/Visual-C-Runtimes-All-in-One-Sep-2019.zip) +UG-Miner is currently tested on the following Rigs: -**Virtual memory settings** +- Windows11-1xGTX1030-2GB/1xRTX-3060-12GB/1xGTX750Ti-2GB/1xRX580-8GB/1xRX5700-8GB/Inteli5-8600K +- Windows11-1xMX250/Inteli10-10210u -When running multiple cards its recommended to increase Virtual Memory. 64GB is optimal. +## Developer donation -**Recommended/optimal Windows Nvidia driver** +Donation fee is approx. 1% (15 minutes per day) and can be increased or decreased in the configuration editor. -[Windows Nvidia driver 537.42](https://us.download.nvidia.com/Windows/537.42/537.42-desktop-win10-win11-64bit-international-dch-whql.exe) -If you use older drivers some miners will not be available. +Please help support the great team behind UG-Miner by leaving mining donations turned on. -**Recommended/optimal Windows AMD driver** +We want to stay completely transparent on the way fees are managed in the product. +Donation cycle occurs only once in 24hrs (or once until midnight if UG-Miner has been running less than 24hrs). +Donation start time is randomized each day. +It will then mine for UselessGuru for the configured duration. -[Windows 10/11 AMD GPU Driver 7/25/2023](https://www.amd.com/en/support) +Example for default parameters (15 minutes): + +- UG-Miner was started at 10:00h +- First donation cycle starts somewhen between 10:01h and 23:45h and will then donate for 15 minutes, then mine for you again until the next donation run. +- After 00:00h the donation start time is randomized again. +- When donation start time is reached it will then donate for 15 minutes, then mine for you again until the next donation run. + +The donation data is stored in 'Data\DonationData.json'. +All donation time and addresses are recorded in the donation log file 'Log\DonateLog.json'. - UG-Miner is currently tested on the following Rigs: +## Experimental support for running multiple instances (not recommended) - Windows11-1xGTX1030-2GB/1xRTX-3060-12GB/1xGTX750Ti-2GB/1xRX580-8GB/1xRX5700-8GB/Inteli5-8600K - Windows11-1xMX250/Inteli10-10210u +More than one instance of UG-Miner can run on the same rig. Each instance must be placed in its own directory. +Must use non-overlapping port ranges (configuration item '$APIport'). +Do not use the same miner devices in more than one instance (this will give invalid hash rate +& power consumption readings causing incorrect best miner selection). -***** +## Copyright & licenses -Licensed under the GNU General Public License v3.0 -Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. -Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. +Licensed under the GNU General Public License v3.0 +Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works +and modifications, which include larger works using a licensed work, under the same license. +Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. https://github.com/UselessGuru/UG-Miner/blob/master/LICENSE -Happy mining :-) +**Happy mining :-)**