1 from p2pool.bitcoin import networks
3 # CHAIN_LENGTH = number of shares back client keeps
4 # REAL_CHAIN_LENGTH = maximum number of shares back client uses to compute payout
5 # REAL_CHAIN_LENGTH must always be <= CHAIN_LENGTH
6 # REAL_CHAIN_LENGTH must be changed in sync with all other clients
7 # changes can be done by changing one, then the other
9 class BitcoinMainnet(object):
10 PARENT = networks.BitcoinMainnet
11 SHARE_PERIOD = 10 # seconds
12 CHAIN_LENGTH = 24*60*60//10 # shares
13 REAL_CHAIN_LENGTH_FUNC = staticmethod(lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2) # shares
14 TARGET_LOOKBEHIND = 200 # shares
16 IDENTIFIER = 'fc70035c7a81bc6f'.decode('hex')
17 PREFIX = '2472ef181efcd37b'.decode('hex')
20 MAX_TARGET = 2**256//2**32 - 1
24 class BitcoinTestnet(object):
25 PARENT = networks.BitcoinTestnet
26 SHARE_PERIOD = 10 # seconds
27 CHAIN_LENGTH = 24*60*60//10 # shares
28 REAL_CHAIN_LENGTH_FUNC = staticmethod(lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2) # shares
29 TARGET_LOOKBEHIND = 200 # shares
31 IDENTIFIER = '5fc2be2d4f0d6bfb'.decode('hex')
32 PREFIX = '3f6057a15036f441'.decode('hex')
33 NAME = 'bitcoin_testnet'
35 MAX_TARGET = 2**256//2**32 - 1
39 class NamecoinMainnet(object):
40 PARENT = networks.NamecoinMainnet
41 SHARE_PERIOD = 10 # seconds
42 CHAIN_LENGTH = 24*60*60//10 # shares
43 REAL_CHAIN_LENGTH = 24*60*60//10 # shares
44 TARGET_LOOKBEHIND = 3600//10 # shares
46 IDENTIFIER = 'd5b1192062c4c454'.decode('hex')
47 PREFIX = 'b56f3d0fb24fc982'.decode('hex')
50 MAX_TARGET = 2**256//2**32 - 1
54 class NamecoinTestnet(object):
55 PARENT = networks.NamecoinTestnet
56 SHARE_PERIOD = 10 # seconds
57 CHAIN_LENGTH = 24*60*60//10 # shares
58 REAL_CHAIN_LENGTH = 24*60*60//10 # shares
59 TARGET_LOOKBEHIND = 200 # shares
61 IDENTIFIER = '8dd303d014a01a60'.decode('hex')
62 PREFIX = '4d6581d24f51acbf'.decode('hex')
63 NAME = 'namecoin_testnet'
65 MAX_TARGET = 2**256//2**32 - 1
69 class LitecoinMainnet(object):
70 PARENT = networks.LitecoinMainnet
71 SHARE_PERIOD = 10 # seconds
72 CHAIN_LENGTH = 24*60*60//10 # shares
73 REAL_CHAIN_LENGTH_FUNC = staticmethod(lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2) # shares
74 TARGET_LOOKBEHIND = 200 # shares
76 IDENTIFIER = 'e037d5b8c6923410'.decode('hex')
77 PREFIX = '7208c1a53ef629b0'.decode('hex')
80 MAX_TARGET = 2**256//2**20 - 1
84 class LitecoinTestnet(object):
85 PARENT = networks.LitecoinTestnet
86 SHARE_PERIOD = 10 # seconds
87 CHAIN_LENGTH = 24*60*60//10 # shares
88 REAL_CHAIN_LENGTH_FUNC = staticmethod(lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2) # shares
89 TARGET_LOOKBEHIND = 200 # shares
91 IDENTIFIER = 'cca5e24ec6408b1e'.decode('hex')
92 PREFIX = 'ad9614f6466a39cf'.decode('hex')
93 NAME = 'litecoin_testnet'
95 MAX_TARGET = 2**256//2**17 - 1
99 nets = dict((net.NAME, net) for net in set([BitcoinMainnet, BitcoinTestnet, NamecoinMainnet, NamecoinTestnet, LitecoinMainnet, LitecoinTestnet]))
100 realnets = dict((net.NAME, net) for net in nets.itervalues() if '_testnet' not in net.NAME)