Skip to content

Commit

Permalink
Alpha release
Browse files Browse the repository at this point in the history
  • Loading branch information
fiorinin committed Jan 2, 2018
1 parent 4a5e929 commit f324b0e
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 18 deletions.
27 changes: 14 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Hasher
A simple yet comprehensive interface that benchmarks your hardware, downloads and run miners for you to effectively mine the most profitable coin on the most profitable pool.
A simple yet comprehensive interface that benchmarks your hardware, downloads and run miners for you to effectively mine the most profitable coin on the most profitable pool. Nvidia only for now.

###### Licence GNU GPL 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.

Expand All @@ -11,8 +11,8 @@ A simple yet comprehensive interface that benchmarks your hardware, downloads an
* Benchmarking and miner comparison to pick the best one for each algo
* More customization options (e.g., intensity) while still keeping it simple
* Robust profit calculation - i.e. even when pool APIs are having troubles
* Automatic update checks
* BTC address validation in setup
* Automatic updates: when a new version is released, it will be downloaded when you launch Hasher and installed when you quit it. No more time spent to check updates and copying files!
* BTC address validation in setup, you can't enter a wrong address (because of your cat) anymore
* It's free! There is a default donation of 1% - 14mins a day - that you can void (or increase...!)

*This is a free project I developed for myself out of entertainment, new technology enthusiasm and personal needs. While I plan to improve this project, I greatly appreciate bitcoin donations to support the project: **14t4EkREaQfsbwngtLS7KJx7d1ADiWuB9c***
Expand All @@ -23,7 +23,7 @@ MultiPoolMiner: 1MsrCoAt8qM53HUMsUxvy9gMj3QVbHLazH*


## Installation
1. Download the latest version at https://github.com/Johy/Hasher/releases
1. Download the [latest `.exe` release](https://github.com/Johy/Hasher/releases)
2. Hasher has a few dependencies (listed below) that you need to make sure to have
4. Double-click on the `.exe` application. A quick install will start, create a shortcut on your Desktop and launch it
5. Follow the introductory setup in Hasher, and enjoy!
Expand All @@ -32,33 +32,34 @@ MultiPoolMiner: 1MsrCoAt8qM53HUMsUxvy9gMj3QVbHLazH*

## Dependencies
* CUDA 9 binaries require Nvidia drivers 384.xx or more recent
* ccminer (Nvidia) may need [MSVCR120.dll](https://www.microsoft.com/en-gb/download/details.aspx?id=40784)
* ccminer (Nvidia) may need [VCRUNTIME140.DLL](https://www.microsoft.com/en-us/download/details.aspx?id=48145)
* ccminer may need [MSVCR120.dll](https://www.microsoft.com/en-gb/download/details.aspx?id=40784)
* ccminer may need [VCRUNTIME140.DLL](https://www.microsoft.com/en-us/download/details.aspx?id=48145)
* If you have multiple GPUs, it is recommended to set Virtual Memory size in Windows to at least 16 GB. To this end, go to Computer Properties -> Advanced System Settings -> Performance -> Advanced -> Virtual Memory

## Known issues
* Hasher is still extremely recent, so do not expect complete stability over 1 month without rebooting, for example (although it might just work!). Bugs are to be expected but at this point, I need actual users to report them so that I can fix them. Note that Hasher does nothing else than running miners. It's not overclocking your hardware or anything.
* Following on this, I am not an AMD user, therefore **I can't test anything related to AMD cards and AMD miners have not be tested**. I'd be very happy if some people reported their experience with AMD but in the meantime, consider AMD will be less stable. And CPU is not implemented either but it might integrate it if there's demand.
* I am working on a logging system so that users can better share their issues if any. This will help me to be more responsive to fix these issues.
* Hasher is still extremely recent, so do not expect complete stability over 1 month without rebooting, for example (although it might just work!). Bugs are to be expected but at this point, I need actual users to report them so that I can fix them. My tests of simulated edge cases and longer runs have all passed, which is why I can now release.
* Following on this, I am not an AMD user, therefore **I can't test anything related to AMD cards**. I'd be very happy if some people would be willing to advise me regarding algorithms/settings as I'd like to support AMD but I don't want to release anything that hasn't been tested. CPU is not implemented either but I might integrate it if there's demand.
* I am working on a logging system so that users can better share their issues if any. This will help me to be more responsive to fix them.
* While auto-update is here, Hasher does not yet auto-update miners. I'm working on it as I think it's a critical feature to always be up-to-date in the CC world.

## Frequently Asked Questions
###### What's this naming convention for miners and algorithms?
Since Hasher allows you to use multiple miners on the same algorithm, I used the following naming convention `<algo>-<miner_fork>` for clarity. In the performance tab, you can reorder all pairs by hashrate, profit, etc. So the naming shouldn't bother you much as you can very quickly see which algorithms/miners are the best fit for you. This strategy guarantees that virtually any hardware gets the best hashrate, compared to forcing you to use a given miner for a given algorithm.

###### I experience slowdowns, shutdowns or crashes, what's going on?
Hasher is not really resource hungry, but it _is_ by definition heavier than a `.bat` command. If you experience slowdowns, you might want to minimize the app - it has been effective when the display runs on the mining GPU since it gets rid of animations. Note however that I could not see any impact of Hasher on the mining speed at all (minimized or not), you just might get a better experience using your PC in the meantime (similar to when you mine with `.bat`).
Hasher is not really resource hungry, but it _is_ by definition heavier than a `.bat` command. If you experience slowdowns, you might want to minimize the app - it has been effective when the display runs on a mining GPU since it gets rid of animations. Note however that I could not see any impact of Hasher on the mining speed at all (minimized or not), you just might get a better experience using your PC in the meantime if you minimize (close to when you mine with `.bat` files).

###### Mining doesn't work, what should I do?
A lot of things could have gone wrong. You could be trying to run Nvidia miners on AMD hardware, picked only algorithms that the pool(s) you selected don't support, etc. I am currently working on integrating logging, so that you will be able to share what Hasher has to say about your issues. In the meantime, you can [report an issue](https://github.com/Johy/Hasher/issues) by being as comprehensive as you can and explaining how to reproduce the error. If some specific algorithms don't work, try reducing their intensity in the advanced settings, or simply deselect them for Hasher to stop trying to mine with it.
A lot of things could have gone wrong. You could be trying to run non-benchmarked algorithms, have picked only algorithms that the pool(s) you selected don't support, or that your hardware is not compatible with. I am currently working on integrating logging, so that you will be able to share what Hasher has to say about your issues. In the meantime, you can [report an issue](https://github.com/Johy/Hasher/issues) by being as comprehensive as you can and explaining how to reproduce the error and I will do my best to assist you. If some specific algorithms don't work, try reducing their intensity in the advanced settings (by default they're on auto which for Alexis78 miner crashes my 1070 for instance and I need to set it at 16), or simply deselect them for Hasher to stop trying to mine with it.

###### How long does benchmarking take? Can I speed it up?
This depends heavily on you, actually. Benchmarking is simple: Hasher runs algorithms (you pick) on compatible pools (you selected) for a given amount of time (that you set) and stores the average hashrate(s) reported by the miner(s). You can choose among 3 benchmarking speeds (30s, 2mins or 3mins), and longer benchmarks will be more robust for estimating profits. Feel free to adapt your strategy to fit your needs by (de)selecting algorithms, changing speed, etc. I personally recommend running a quick benchmark first with everything by default, and then fine tune it by adjusting intensities and running longer benchmarks on algorithms that performed well and those that failed - sometimes, a too short benchmark prevents Hasher to get any speed data. Note that all mining done while benchmarking is credited to your wallet in the respective pool(s).
This depends heavily on you, actually. Benchmarking is simple: Hasher runs algorithms (you pick) on compatible pools (you selected) for a given amount of time (that you set) and stores the average hashrate(s) reported by the miner(s). You can choose among 3 benchmarking speeds (30s, 2mins or 3mins), and longer benchmarks will be more robust for estimating profits. Feel free to adapt your strategy to fit your needs by (de)selecting algorithms, changing speed, etc. I personally recommend running a quick benchmark first with everything by default, and then fine tune it by adjusting intensities and running longer benchmarks on algorithms that performed well and those that failed - sometimes, a too short benchmark prevents Hasher to get any speed data. Note that all mining done while benchmarking is credited to your wallet in the respective pool(s) you selected.

###### My balance is different from the pool value, why?
The balance displayed is **shared across all selected pools**. If you are using a single pool and the value is different, there is likely a network error (check for the warning symbol in the balance box) and Hasher could not update this value. The pool website will always display the correct value.

###### How is the profit estimated?
For each algorithm-miner pair you have benchmarked, Hasher will search eligible pools among those you have selected. It will compare their potential profit by using their API, and using the `actual_last24h` field. This has proven to be the most reliable estimate, but I do plan to allow users to switch it to `current_estimate` or `estimate_last24h`. Then, it will select the algorithm-miner pair that would yield the maximum profit given the pool estimates.
For each algorithm-miner pair you have benchmarked, Hasher will search eligible pools among those you have selected. It will compare their potential profit by using their API, and using the `actual_last24h` field. This has proven to be the most reliable estimate, but I do plan to allow users to switch it to `current_estimate` or `estimate_last24h`. Then, Hasher selects the algorithm-miner pair that would yield the maximum profit given the pool estimates.

###### How is the hashrate calculated?
The hashrate is always the one provided by the miner. In `Performance` section, it is the average hashrate for the benchmark period (see above). When you mine, it is the average of the last 5 values reported by the miner.
Expand Down
10 changes: 9 additions & 1 deletion config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var config = {}

config.debug = true;
config.debug = false;

// Given how frequently pools fail, we need at least some caching...
config.cache = {
Expand Down Expand Up @@ -111,6 +111,14 @@ config.miners = [
"folder": "ccminerXevan/",
"algos": ["xevan"]
}
// {
// "name": "sgminer",
// "alias": "sgminer",
// "hardware": "amd",
// "URL": "https://github.com/nicehash/sgminer/releases/download/5.6.1/sgminer-5.6.1-nicehash-51-windows-amd64.zip",
// "folder": "sgminer-nicehash/",
// "algos": ["xevan"]
// }
]

// Supported pools
Expand Down
2 changes: 1 addition & 1 deletion controls/miningutils.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ module.exports = class MiningUtils {

__retryStrategy(err, response, body) {
if(err !== undefined || body.length == 2) {
$("#error").text("Error in contacting pool. Retrying...");
// $("#error").text("Error in contacting pool. Retrying...");
return true;
}
}
Expand Down
4 changes: 4 additions & 0 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@ if (typeof store.get('langPools') === 'undefined') {
}
store.set("langPools", langPools);
}
// Force Nvidia for now
if (typeof store.get('hardware') === 'undefined') {
store.set("hardware", "nvidia");
}
store.set("config", config);
////////////

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Hasher",
"version": "0.1.6",
"version": "0.1.8-alpha.1",
"description": "A simple yet comprehensive interface that benchmarks your hardware, downloads and run miners for you to effectively mine the most profitable coin on the most profitable pool.",
"main": "main.js",
"scripts": {
Expand Down
3 changes: 2 additions & 1 deletion template/css/hasher.css
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ body {
height: 20px;
line-height:20px;
background-color: #dfdce3;
font-family: "rawline", sans-serif;
}

#version {
Expand Down Expand Up @@ -120,7 +121,7 @@ a.list-group-item.active, a.list-group-item.active:hover, a.list-group-item.acti
left:0;
position: fixed;
width: 600px;
height: 434px;
height: 444px;
background-color: #ffffff;
z-index:10;
overflow: auto;
Expand Down
2 changes: 1 addition & 1 deletion template/options.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ <h4>What do you run?</h4>
</div>
</div>
<div class="amd pretty p-default p-curve p-smooth p-fill">
<input id="amd" type="radio" name="hardware" />
<input id="amd" type="radio" name="hardware" disabled/>
<div class="state p-danger">
<label>AMD</label>
</div>
Expand Down

0 comments on commit f324b0e

Please sign in to comment.