It's morning in my country... So i'm looking at seoincorporation's question with a fresh pair of eyes...
How soon might I expect to generate a block?
(The eternal question.)
The average time to find a block can be approximated by calculating:
time = difficulty * 2**32 / hashrate
source:
https://en.bitcoin.it/wiki/Difficultyhosseinimr93 was correct (and so was my memory)
https://github.com/bitcoin/bitcoin/blob/master/src/pow.cpp#L56So the max diff retarget is *4 or /4
Now, let's assume this only cpu miner is having great hardware:
https://en.bitcoin.it/wiki/Non-specialized_hardware_comparison#CPUs.2FAPUsThe "best" i could find is cpu's running @ 115 Mh/s.
Now, for the sake of argument, let's just assume we're currently only one block away from a retarget (2015 blocks mined @ the moment all asic's turn off).
The current difficulty is 27.693T (
https://www.blockchain.com/charts/difficulty)
In order to reach the next retarget, only one block is necessary... How many seconds would it take?
seconds = 27.693.000.000.000 * 2**32 / 115.000.000 = 1.034.265.472.418.504 seconds
1.034.265.472.418.504 seconds = 32.796.342 years (on average).
After this point, the diff would "drop" to 6,9T
seconds = 6,923.250.000.000 * 2**32 / 115.000.000 = 258.566.368.104.626 seconds (1/4th of the previous calculation)
258.566.368.104.626 seconds = 8.199.085 years (on average)
BUT, you'd need 2016 blocks before reaching the next retarget, so on average it would take 16.529.356.865 years before reaching the second retarget...
And so on...