include many collected bootstrap addresses in network definitions. litecoin ones...
[p2pool.git] / p2pool / networks.py
1 from p2pool.bitcoin import networks
2 from p2pool.util import math
3
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
9
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
16     SPREAD=3, # blocks
17     IDENTIFIER='fc70035c7a81bc6f'.decode('hex'),
18     PREFIX='2472ef181efcd37b'.decode('hex'),
19     NAME='bitcoin',
20     P2P_PORT=9333,
21     MAX_TARGET=2**256//2**32 - 1,
22     PERSIST=True,
23     WORKER_PORT=9332,
24     BOOTSTRAP_ADDRS='74.220.242.6:9334 93.97.192.93 66.90.73.83 67.83.108.0 219.84.64.174 24.167.17.248 109.74.195.142 83.211.86.49 89.78.212.44 94.23.34.145 168.7.116.243 72.14.191.28 94.174.40.189:9344'.split(' '),
25 )
26 BitcoinTestnet = math.Object(
27     PARENT=networks.BitcoinTestnet,
28     SHARE_PERIOD=10, # seconds
29     CHAIN_LENGTH=24*60*60//10, # shares
30     REAL_CHAIN_LENGTH_FUNC=lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2, # shares
31     TARGET_LOOKBEHIND=200, # shares
32     SPREAD=3, # blocks
33     IDENTIFIER='5fc2be2d4f0d6bfb'.decode('hex'),
34     PREFIX='3f6057a15036f441'.decode('hex'),
35     NAME='bitcoin_testnet',
36     P2P_PORT=19333,
37     MAX_TARGET=2**256//2**32 - 1,
38     PERSIST=False,
39     WORKER_PORT=19332,
40     BOOTSTRAP_ADDRS='72.14.191.28'.split(' '),
41 )
42
43 NamecoinMainnet = math.Object(
44     PARENT=networks.NamecoinMainnet,
45     SHARE_PERIOD=10, # seconds
46     CHAIN_LENGTH=24*60*60//10, # shares
47     REAL_CHAIN_LENGTH=24*60*60//10, # shares
48     TARGET_LOOKBEHIND=3600//10, # shares
49     SPREAD=3, # blocks
50     IDENTIFIER='d5b1192062c4c454'.decode('hex'),
51     PREFIX='b56f3d0fb24fc982'.decode('hex'),
52     NAME='namecoin',
53     P2P_PORT=9334,
54     MAX_TARGET=2**256//2**32 - 1,
55     PERSIST=True,
56     WORKER_PORT=9331,
57     BOOTSTRAP_ADDRS='72.14.191.28'.split(' '),
58 )
59 NamecoinTestnet = math.Object(
60     PARENT=networks.NamecoinTestnet,
61     SHARE_PERIOD=10, # seconds
62     CHAIN_LENGTH=24*60*60//10, # shares
63     REAL_CHAIN_LENGTH=24*60*60//10, # shares
64     TARGET_LOOKBEHIND=200, # shares
65     SPREAD=3, # blocks
66     IDENTIFIER='8dd303d014a01a60'.decode('hex'),
67     PREFIX='4d6581d24f51acbf'.decode('hex'),
68     NAME='namecoin_testnet',
69     P2P_PORT=19334,
70     MAX_TARGET=2**256//2**32 - 1,
71     PERSIST=False,
72     WORKER_PORT=19331,
73     BOOTSTRAP_ADDRS='72.14.191.28'.split(' '),
74 )
75
76 LitecoinMainnet = math.Object(
77     PARENT=networks.LitecoinMainnet,
78     SHARE_PERIOD=10, # seconds
79     CHAIN_LENGTH=24*60*60//10, # shares
80     REAL_CHAIN_LENGTH_FUNC=lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2, # shares
81     TARGET_LOOKBEHIND=200, # shares
82     SPREAD=12, # blocks
83     IDENTIFIER='e037d5b8c6923410'.decode('hex'),
84     PREFIX='7208c1a53ef629b0'.decode('hex'),
85     NAME='litecoin',
86     P2P_PORT=9338,
87     MAX_TARGET=2**256//2**20 - 1,
88     PERSIST=True,
89     WORKER_PORT=9327,
90     BOOTSTRAP_ADDRS='72.14.191.28 176.31.249.89'.split(' ')
91 )
92 LitecoinTestnet = math.Object(
93     PARENT=networks.LitecoinTestnet,
94     SHARE_PERIOD=10, # seconds
95     CHAIN_LENGTH=24*60*60//10, # shares
96     REAL_CHAIN_LENGTH_FUNC=lambda ts: 24*60*60//10 if ts >= 1325805105 else 24*60*60//10//2, # shares
97     TARGET_LOOKBEHIND=200, # shares
98     SPREAD=12, # blocks
99     IDENTIFIER='cca5e24ec6408b1e'.decode('hex'),
100     PREFIX='ad9614f6466a39cf'.decode('hex'),
101     NAME='litecoin_testnet',
102     P2P_PORT=19338,
103     MAX_TARGET=2**256//2**17 - 1,
104     PERSIST=False,
105     WORKER_PORT=19327,
106     BOOTSTRAP_ADDRS='72.14.191.28 176.31.249.89'.split(' ')
107 )
108
109 nets=dict((net.NAME, net) for net in set([BitcoinMainnet, BitcoinTestnet, NamecoinMainnet, NamecoinTestnet, LitecoinMainnet, LitecoinTestnet]))
110 realnets=dict((net.NAME, net) for net in nets.itervalues() if '_testnet' not in net.NAME)