7c77f0b0915a5029b360ea24d3ef59cac6678417
[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 nets = dict(
11     bitcoin=math.Object(
12         PARENT=networks.nets['bitcoin'],
13         SHARE_PERIOD=10, # seconds
14         CHAIN_LENGTH=24*60*60//10, # shares
15         REAL_CHAIN_LENGTH=24*60*60//10, # shares
16         TARGET_LOOKBEHIND=200, # shares
17         SPREAD=3, # blocks
18         IDENTIFIER='fc70035c7a81bc6f'.decode('hex'),
19         PREFIX='2472ef181efcd37b'.decode('hex'),
20         P2P_PORT=9333,
21         MIN_TARGET=0,
22         MAX_TARGET=2**256//2**32 - 1,
23         PERSIST=True,
24         WORKER_PORT=9332,
25         BOOTSTRAP_ADDRS='forre.st vps.forre.st 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 94.23.34.145 168.7.116.243 94.174.40.189:9344 89.79.79.195 portals94.ns01.us'.split(' '),
26         ANNOUNCE_CHANNEL='#p2pool',
27         VERSION_CHECK=lambda v: 50700 <= v < 60000 or 60010 <= v < 60100 or 60400 <= v,
28     ),
29     bitcoin_testnet=math.Object(
30         PARENT=networks.nets['bitcoin_testnet'],
31         SHARE_PERIOD=10, # seconds
32         CHAIN_LENGTH=60*60//10, # shares
33         REAL_CHAIN_LENGTH=60*60//10, # shares
34         TARGET_LOOKBEHIND=200, # shares
35         SPREAD=3, # blocks
36         IDENTIFIER='5fc2be2d4f0d6bfb'.decode('hex'),
37         PREFIX='3f6057a15036f441'.decode('hex'),
38         P2P_PORT=19333,
39         MIN_TARGET=0,
40         MAX_TARGET=2**256//2**32 - 1,
41         PERSIST=False,
42         WORKER_PORT=19332,
43         BOOTSTRAP_ADDRS='forre.st vps.forre.st liteco.in'.split(' '),
44         ANNOUNCE_CHANNEL='#p2pool-alt',
45         VERSION_CHECK=lambda v: 50700 <= v < 60000 or 60010 <= v < 60100 or 60400 <= v,
46     ),
47     
48     litecoin=math.Object(
49         PARENT=networks.nets['litecoin'],
50         SHARE_PERIOD=10, # seconds
51         CHAIN_LENGTH=24*60*60//10, # shares
52         REAL_CHAIN_LENGTH=24*60*60//10, # shares
53         TARGET_LOOKBEHIND=200, # shares
54         SPREAD=12, # blocks
55         IDENTIFIER='e037d5b8c6923410'.decode('hex'),
56         PREFIX='7208c1a53ef629b0'.decode('hex'),
57         P2P_PORT=9338,
58         MIN_TARGET=0,
59         MAX_TARGET=2**256//2**20 - 1,
60         PERSIST=True,
61         WORKER_PORT=9327,
62         BOOTSTRAP_ADDRS='forre.st vps.forre.st 199.255.95.94 75.12.89.18 181.28.244.151 83.142.189.132 66.90.82.155:11332 201.57.241.77 80.222.255.91 142.68.214.29 24.52.247.82 72.230.179.177 94.127.200.29 200.204.161.215 91.121.9.7 91.235.254.37 198.154.98.195 178.79.136.10'.split(' '),
63         ANNOUNCE_CHANNEL='#p2pool-alt',
64         VERSION_CHECK=lambda v: True,
65     ),
66     litecoin_testnet=math.Object(
67         PARENT=networks.nets['litecoin_testnet'],
68         SHARE_PERIOD=3, # seconds
69         CHAIN_LENGTH=20*60//3, # shares
70         REAL_CHAIN_LENGTH=20*60//3, # shares
71         TARGET_LOOKBEHIND=200, # shares
72         SPREAD=12, # blocks
73         IDENTIFIER='cca5e24ec6408b1e'.decode('hex'),
74         PREFIX='ad9614f6466a39cf'.decode('hex'),
75         P2P_PORT=19338,
76         MIN_TARGET=2**256//50 - 1,
77         MAX_TARGET=2**256//50 - 1,
78         PERSIST=False,
79         WORKER_PORT=19327,
80         BOOTSTRAP_ADDRS='forre.st vps.forre.st'.split(' '),
81         ANNOUNCE_CHANNEL='#p2pool-alt',
82         VERSION_CHECK=lambda v: True,
83     ),
84
85     terracoin=math.Object(
86         PARENT=networks.nets['terracoin'],
87         SHARE_PERIOD=30, # seconds
88         CHAIN_LENGTH=24*60*60//30, # shares
89         REAL_CHAIN_LENGTH=24*60*60//30, # shares
90         TARGET_LOOKBEHIND=200, # shares
91         SPREAD=15, # blocks
92         IDENTIFIER='a41b2356a1b7d35e'.decode('hex'),
93         PREFIX='5623b62178d2b8a3'.decode('hex'),
94         P2P_PORT=9323,
95         MIN_TARGET=0,
96         MAX_TARGET=2**256//2**32 - 1,
97         PERSIST=True,
98         WORKER_PORT=9322,
99         BOOTSTRAP_ADDRS='seed1.p2pool.terracoin.org seed2.p2pool.terracoin.org forre.st vps.forre.st 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 94.23.34.145 168.7.116.243 94.174.40.189:9344 89.79.79.195 portals94.ns01.us'.split(' '),
100         ANNOUNCE_CHANNEL='#p2pool-alt',
101         VERSION_CHECK=lambda v: True,
102     ),
103     terracoin_testnet=math.Object(
104         PARENT=networks.nets['terracoin_testnet'],
105         SHARE_PERIOD=30, # seconds
106         CHAIN_LENGTH=60*60//30, # shares
107         REAL_CHAIN_LENGTH=60*60//30, # shares
108         TARGET_LOOKBEHIND=200, # shares
109         SPREAD=15, # blocks
110         IDENTIFIER='b41b2356a5b7d35d'.decode('hex'),
111         PREFIX='1623b92172d2b8a2'.decode('hex'),
112         P2P_PORT=19323,
113         MIN_TARGET=0,
114         MAX_TARGET=2**256//2**32 - 1,
115         PERSIST=False,
116         WORKER_PORT=19322,
117         BOOTSTRAP_ADDRS='seed1.p2pool.terracoin.org seed2.p2pool.terracoin.org forre.st vps.forre.st'.split(' '),
118         ANNOUNCE_CHANNEL='#p2pool-alt',
119         VERSION_CHECK=lambda v: True,
120     ),
121
122 )
123 for net_name, net in nets.iteritems():
124     net.NAME = net_name