Today, found a bad bug in the nicehash service that people provide miners through.
Using asicboost ...
One of the miners on my solo pool was doing a regular fun run but got 71 rejected shares = 71000000 difficulty of rejected shares.
i.e. nicehash was passing the shares through to the pool, but the pool was rejecting them.
So he was also paying for them, since nicehash decided they were ok.
The problem was that the shares were from work more than 20 work changes ago.
i.e. very old work that had expired coz it was 10 minutes old, but the miners were passing through shares with that very old work.
What should happen is that every time a new work item is sent to the miners, it should ... be sent to the miners.
That happens every 30 seconds on my solo pool.
So one or the other of:
nicehash doesn't always pass work updates to miners,
nicehash allows miners to reply with invalid old work through their proxy.
I've no idea if this is a new, or very old ongoing problem.
But assuming it's crap miners connecting to asicboost on nichash, then passing back very old work should be rejected at nicehash.
It also has the bigger issue of reducing the number of transactions that are confirmed on Bitcoin,
since ignoring work updates, in this case, means you are working on the transaction list from 10 or more minutes ago, which will always be smaller.
This of course is different to stale work.
And I will quote from the opening post:
...
Valid shares only- Never pay for dead, faulty configured rigs or invalid shares
...
Edit: also got the lowest amount of work in a long time on that run now that' it's complete.
I do find it rather a scam that, when nicehash states 1PH, they thus can supply less than that without people realising it.
1PH for 1 hour is simply a calculation from a very specific number that they also use.
It's 10^15 * 3600 / (2^32) Difficulty ~= 838190317 Difficulty in shares.
Difficulty is a number you 'should' be able to see on pools, since it is the number
all pools have and use to convert to a hash rate.
Miners are
never measured in hashes per second, they are always measured in share difficulty,
then that is converted to a hash rate.
That
is how bitcoin mining works.
I should know, I'm the second main developer of the most used software in miners on the planet - cgminer.
So when you pay for 1PH for 1 hour you should get ~838190317 Difficulty in shares, but they will always rip you off and cut it short.