1 from p2pool.bitcoin import networks
2 from p2pool.util import math
4 # CHAIN_LENGTH = number of shares back client keeps
5 # REAL_CHAIN_LENGTH = maximum number of shares back client uses to compute payout
6 # REAL_CHAIN_LENGTH must always be <= CHAIN_LENGTH
7 # REAL_CHAIN_LENGTH must be changed in sync with all other clients
8 # changes can be done by changing one, then the other
10 BitcoinMainnet = math.Object(
11 PARENT=networks.BitcoinMainnet,
12 SHARE_PERIOD=10, # seconds
13 CHAIN_LENGTH=24*60*60//10, # shares
14 REAL_CHAIN_LENGTH_FUNC=lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2, # shares
15 TARGET_LOOKBEHIND=200, # shares
17 IDENTIFIER='fc70035c7a81bc6f'.decode('hex'),
18 PREFIX='2472ef181efcd37b'.decode('hex'),
21 MAX_TARGET=2**256//2**32 - 1,
25 BitcoinTestnet = math.Object(
26 PARENT=networks.BitcoinTestnet,
27 SHARE_PERIOD=10, # seconds
28 CHAIN_LENGTH=24*60*60//10, # shares
29 REAL_CHAIN_LENGTH_FUNC=lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2, # shares
30 TARGET_LOOKBEHIND=200, # shares
32 IDENTIFIER='5fc2be2d4f0d6bfb'.decode('hex'),
33 PREFIX='3f6057a15036f441'.decode('hex'),
34 NAME='bitcoin_testnet',
36 MAX_TARGET=2**256//2**32 - 1,
41 NamecoinMainnet = math.Object(
42 PARENT=networks.NamecoinMainnet,
43 SHARE_PERIOD=10, # seconds
44 CHAIN_LENGTH=24*60*60//10, # shares
45 REAL_CHAIN_LENGTH=24*60*60//10, # shares
46 TARGET_LOOKBEHIND=3600//10, # shares
48 IDENTIFIER='d5b1192062c4c454'.decode('hex'),
49 PREFIX='b56f3d0fb24fc982'.decode('hex'),
52 MAX_TARGET=2**256//2**32 - 1,
56 NamecoinTestnet = math.Object(
57 PARENT=networks.NamecoinTestnet,
58 SHARE_PERIOD=10, # seconds
59 CHAIN_LENGTH=24*60*60//10, # shares
60 REAL_CHAIN_LENGTH=24*60*60//10, # shares
61 TARGET_LOOKBEHIND=200, # shares
63 IDENTIFIER='8dd303d014a01a60'.decode('hex'),
64 PREFIX='4d6581d24f51acbf'.decode('hex'),
65 NAME='namecoin_testnet',
67 MAX_TARGET=2**256//2**32 - 1,
72 LitecoinMainnet = math.Object(
73 PARENT=networks.LitecoinMainnet,
74 SHARE_PERIOD=10, # seconds
75 CHAIN_LENGTH=24*60*60//10, # shares
76 REAL_CHAIN_LENGTH_FUNC=lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2, # shares
77 TARGET_LOOKBEHIND=200, # shares
79 IDENTIFIER='e037d5b8c6923410'.decode('hex'),
80 PREFIX='7208c1a53ef629b0'.decode('hex'),
83 MAX_TARGET=2**256//2**20 - 1,
87 LitecoinTestnet = math.Object(
88 PARENT=networks.LitecoinTestnet,
89 SHARE_PERIOD=10, # seconds
90 CHAIN_LENGTH=24*60*60//10, # shares
91 REAL_CHAIN_LENGTH_FUNC=lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2, # shares
92 TARGET_LOOKBEHIND=200, # shares
94 IDENTIFIER='cca5e24ec6408b1e'.decode('hex'),
95 PREFIX='ad9614f6466a39cf'.decode('hex'),
96 NAME='litecoin_testnet',
98 MAX_TARGET=2**256//2**17 - 1,
103 nets=dict((net.NAME, net) for net in set([BitcoinMainnet, BitcoinTestnet, NamecoinMainnet, NamecoinTestnet, LitecoinMainnet, LitecoinTestnet]))
104 realnets=dict((net.NAME, net) for net in nets.itervalues() if '_testnet' not in net.NAME)