I just catched an instance where the last block was 20 minutes ago and bfgminer never adjusted the difficulty setting from its '125M' value.
It sounds like this could be the reason it doesn't mine any blocks: if it never knows the difficulty is low, it won't find a block at low difficulty.
From your screenshot:
125M (894.7T)
I'm starting to think difficulty=1 doesn't mean it takes
picoseconds to mine a block:
Minimum difficulty of 1.0 on testnet is equal to difficulty of 0.5 on mainnet.
At difficulty 1, that is around 7 Mhashes per second.
That would explain why ASICs still beat any CPU miner as it would take me about a second, while it takes the ASICs a fraction of a millisecond.
You may be up to something. I don't know why, but I assumed that difficulty=1 meant the hash just had to be smaller than 2
256-1.
This is where I was wrong:
The highest possible target (difficulty 1) is defined as 0x1d00ffff
The average time to find a block can be approximated by calculating:
time = difficulty * 2**32 / hashrate
The expected number of hashes we need to calculate to find a block with difficulty D is therefore
D * 2**256 / (0xffff * 2**208)
Actually, if we use this formula, it appears that with difficulty=1, you need on average 4295032833 or ~4.3GH to find a valid one. So on a 7MH/s machine, that's 613 seconds or 10 minutes. Impossible..
>>> 1 * 2**32 / 7000000
613.5667565714285
But on the other hand, it can't be right since people here did succeed with CPUs. What if the article is outdated / wrong?
If we work with the figure of 7MH for 1 valid hash, it would mean the minimum network hashrate must have always been over 11.6kH/s; otherwise it wouldn't be possible to mine a block in 10 minutes (11,600*600 ≈ 7,000,000). That seems realistic for 2009. According to the blockchain
[1], it was in the single-digit Megahash range all the way back in 2009.
Do we know @ETFbitcoin 's hash rate?
[1] https://www.coinwarz.com/mining/bitcoin/hashrate-chart/2009
Quickly using the same formula for a single Compac F, it becomes clear it has much better chances:
>>> 1 * 2**32 / 300e9
0.014316557653333332
>>> 4.3e9 / 300e9 # hashes needed on average / hashrate of compac f
0.014333333333333333
With just 300GH/s and difficulty=1, it only takes it 0.0143s to go through those 7 million hashes.
This would also mean that the formula expecting @LoyceV's CPU to take on average 10 minutes, is correct.