In the spirit of ASIC-resistance, a lot of algorithms (like x16r) randomize the algorithms in use and by design, have erratic hashrates. Without getting into details, this is a problem for generically benchmarking all algos after an upgrade or modifications to overclock settings.
Instead of benchmarking, could we implement something where all algos are pre-defined with a very high hashrate, and NiceHash simply begins mining using the most profitable? As it's mining, it's keeping a running log of the average hashrate of the last 1000 submitted shares (think N=1000 parameter in ccminer) for each algorithm as it mines and creates this data.
By doing this, every algo will at least be sampled (due to the high initial value) but bad algos will quickly be sorted out by low average running hashrates, and the favorable ones will not only rise to the top, but gradually form accurate estimates regardless of how random the hashrate is.
Natural market dynamics would cause coin values to rise and fall such that all of your top algos would get a fair chance of running and collecting more samples as each one becomes the most profitable due to random price fluctuations. The price action would prevent an algo from getting stuck in the #2 position and never running long enough to showcase it's true hashrate if it started off with an "unlucky streak" of slow algos during initial data collection.
@STAWKEYE We are working on a solution to completely remove bench-marking. We will close this issue when this is implemented
Most helpful comment
@STAWKEYE We are working on a solution to completely remove bench-marking. We will close this issue when this is implemented