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(networks.BitcoinMainnet):
10 SHARE_PERIOD = 10 # seconds
11 CHAIN_LENGTH = 24*60*60//10 # shares
12 REAL_CHAIN_LENGTH = 24*60*60//10//2 # shares
13 TARGET_LOOKBEHIND = 200 # shares
15 IDENTIFIER = 'fc70035c7a81bc6f'.decode('hex')
16 PREFIX = '2472ef181efcd37b'.decode('hex')
19 MAX_TARGET = 2**256//2**32 - 1
23 class BitcoinTestnet(networks.BitcoinTestnet):
24 SHARE_PERIOD = 1 # seconds
25 CHAIN_LENGTH = 24*60*60//10//2 # shares
26 REAL_CHAIN_LENGTH = 24*60*60//10//2 # shares
27 TARGET_LOOKBEHIND = 200 # shares
29 IDENTIFIER = '5fc2be2d4f0d6bfb'.decode('hex')
30 PREFIX = '3f6057a15036f441'.decode('hex')
31 NAME = 'bitcoin_testnet'
33 MAX_TARGET = 2**256//2**32 - 1
37 class NamecoinMainnet(networks.NamecoinMainnet):
38 SHARE_PERIOD = 10 # seconds
39 CHAIN_LENGTH = 24*60*60//10 # shares
40 REAL_CHAIN_LENGTH = 24*60*60//10 # shares
41 TARGET_LOOKBEHIND = 3600//10 # shares
43 IDENTIFIER = 'd5b1192062c4c454'.decode('hex')
44 PREFIX = 'b56f3d0fb24fc982'.decode('hex')
47 MAX_TARGET = 2**256//2**32 - 1
51 class NamecoinTestnet(networks.NamecoinTestnet):
52 SHARE_PERIOD = 1 # seconds
53 CHAIN_LENGTH = 24*60*60//5 # shares
54 REAL_CHAIN_LENGTH = 24*60*60//5 # shares
55 TARGET_LOOKBEHIND = 200 # shares
57 IDENTIFIER = '8dd303d014a01a60'.decode('hex')
58 PREFIX = '4d6581d24f51acbf'.decode('hex')
59 NAME = 'namecoin_testnet'
61 MAX_TARGET = 2**256//2**20 - 1
65 class LitecoinMainnet(networks.LitecoinMainnet):
66 SHARE_PERIOD = 10 # seconds
67 CHAIN_LENGTH = 24*60*60//10 # shares
68 REAL_CHAIN_LENGTH = 24*60*60//10//2 # shares
69 TARGET_LOOKBEHIND = 200 # shares
71 IDENTIFIER = 'e037d5b8c6923410'.decode('hex')
72 PREFIX = '7208c1a53ef629b0'.decode('hex')
75 MAX_TARGET = 2**256//2**20 - 1
79 class LitecoinTestnet(networks.LitecoinTestnet):
80 SHARE_PERIOD = 1 # seconds
81 CHAIN_LENGTH = 24*60*60//5 # shares
82 REAL_CHAIN_LENGTH = 24*60*60//5 # shares
83 TARGET_LOOKBEHIND = 200 # shares
85 IDENTIFIER = 'cca5e24ec6408b1e'.decode('hex')
86 PREFIX = 'ad9614f6466a39cf'.decode('hex')
87 NAME = 'litecoin_testnet'
89 MAX_TARGET = 2**256//2**17 - 1
93 nets = dict((net.NAME, net) for net in set([BitcoinMainnet, BitcoinTestnet, NamecoinMainnet, NamecoinTestnet, LitecoinMainnet, LitecoinTestnet]))
94 realnets = dict((net.NAME, net) for net in nets.itervalues() if '_testnet' not in net.NAME)