Created
May 10, 2016 12:22
-
-
Save 5chdn/6b282cccf5ae7dd5bcc0f4dc0c69a7e7 to your computer and use it in GitHub Desktop.
difficulty bomp impact prediction as of may, 10, 2016.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
import sys, time | |
def f(diff, n): | |
""" | |
This function returns the new difficulty. | |
""" | |
period_count = (n + 1) // 100000 | |
return max(diff + 2**(period_count - 1), 5000) | |
diff = 35144796295550 # starting diffculty (may 10, 2016) | |
blocknumber = 200000 # starting blocknumber (of difficulty bomb) | |
blockdate = 1441661589 # timestamp of the startblock (200,000) | |
numberOfBlocks2years = int(2*365*24*60*60/15) | |
for x in range(0, numberOfBlocks2years*5): | |
blocknumber = blocknumber + 1 | |
diff = f(diff, blocknumber) | |
if (blocknumber % (50000)) == 0: | |
blocktime = 1.0 * diff / 2344796295550 # hashrate (may 10, 2016) | |
_diff = diff | |
str_diff = str("%.3f" % _diff) | |
if (_diff > 1000): | |
_diff /= 1000 | |
str_diff = str("%.3f" % _diff) + " K" | |
if (_diff > 1000): | |
_diff /= 1000 | |
str_diff = str("%.3f" % _diff) + " M" | |
if (_diff > 1000): | |
_diff /= 1000 | |
str_diff = str("%.3f" % _diff) + " G" | |
if (_diff > 1000): | |
_diff /= 1000 | |
str_diff = str("%.3f" % _diff) + " T" | |
if (_diff > 1000): | |
_diff /= 1000 | |
str_diff = str("%.3f" % _diff) + " P" | |
if (_diff > 1000): | |
_diff /= 1000 | |
str_diff = str("%.3f" % _diff) + " E" | |
str_blocktime = str("%.3f" % blocktime) + " seconds" | |
if (blocktime > 150): | |
blocktime /= 60 | |
str_blocktime = str("%.3f" % blocktime) + " minutes" | |
if (blocktime > 150): | |
blocktime /= 60 | |
str_blocktime = str("%.3f" % blocktime) + " hours" | |
if (blocktime > 60): | |
blocktime /= 24 | |
str_blocktime = str("%.3f" % blocktime) + " days" | |
if (blocktime > 18): | |
blocktime /= 7 | |
str_blocktime = str("%.3f" % blocktime) + " weeks" | |
if (blocktime > 10): | |
blocktime /= 4 | |
str_blocktime = str("%.3f" % blocktime) + " month" | |
if (blocktime > 30): | |
blocktime /= 12 | |
str_blocktime = str("%.3f" % blocktime) + " years" | |
if (blocktime > 1): | |
sys.exit() | |
print("Diff on",time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(blockdate+(blocknumber-200000.0) / (numberOfBlocks2years/24)*30.41*24*60*60)), "is:", str_diff, "and average blocktime is:", str_blocktime) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment