separated CHAIN_LENGTH and REAL_CHAIN_LENGTH, documented both, and gave REAL_CHAIN_LE...
[p2pool.git] / p2pool / networks.py
1 from p2pool.bitcoin import networks
2
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
8
9 class BitcoinMainnet(networks.BitcoinMainnet):
10     SHARE_PERIOD = 10 # seconds
11     CHAIN_LENGTH = 24*60*60//10//2 # shares
12     REAL_CHAIN_LENGTH = 24*60*60//10//2 # shares
13     TARGET_LOOKBEHIND = 200 # shares
14     SPREAD = 3 # blocks
15     IDENTIFIER = 'fc70035c7a81bc6f'.decode('hex')
16     PREFIX = '2472ef181efcd37b'.decode('hex')
17     NAME = 'bitcoin'
18     P2P_PORT = 9333
19     MAX_TARGET = 2**256//2**32 - 1
20     PERSIST = True
21     WORKER_PORT = 9332
22
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
28     SPREAD = 3 # blocks
29     IDENTIFIER = '5fc2be2d4f0d6bfb'.decode('hex')
30     PREFIX = '3f6057a15036f441'.decode('hex')
31     NAME = 'bitcoin_testnet'
32     P2P_PORT = 19333
33     MAX_TARGET = 2**256//2**32 - 1
34     PERSIST = False
35     WORKER_PORT = 19332
36
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
42     SPREAD = 3 # blocks
43     IDENTIFIER = 'd5b1192062c4c454'.decode('hex')
44     PREFIX = 'b56f3d0fb24fc982'.decode('hex')
45     NAME = 'namecoin'
46     P2P_PORT = 9334
47     MAX_TARGET = 2**256//2**32 - 1
48     PERSIST = True
49     WORKER_PORT = 9331
50
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
56     SPREAD = 3 # blocks
57     IDENTIFIER = '8dd303d014a01a60'.decode('hex')
58     PREFIX = '4d6581d24f51acbf'.decode('hex')
59     NAME = 'namecoin_testnet'
60     P2P_PORT = 19334
61     MAX_TARGET = 2**256//2**20 - 1
62     PERSIST = False
63     WORKER_PORT = 19331
64
65 class LitecoinMainnet(networks.LitecoinMainnet):
66     SHARE_PERIOD = 10 # seconds
67     CHAIN_LENGTH = 24*60*60//10//2 # shares
68     REAL_CHAIN_LENGTH = 24*60*60//10//2 # shares
69     TARGET_LOOKBEHIND = 200 # shares
70     SPREAD = 12 # blocks
71     IDENTIFIER = 'e037d5b8c6923410'.decode('hex')
72     PREFIX = '7208c1a53ef629b0'.decode('hex')
73     NAME = 'litecoin'
74     P2P_PORT = 9338
75     MAX_TARGET = 2**256//2**20 - 1
76     PERSIST = True
77     WORKER_PORT = 9327
78
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
84     SPREAD = 12 # blocks
85     IDENTIFIER = 'cca5e24ec6408b1e'.decode('hex')
86     PREFIX = 'ad9614f6466a39cf'.decode('hex')
87     NAME = 'litecoin_testnet'
88     P2P_PORT = 19338
89     MAX_TARGET = 2**256//2**17 - 1
90     PERSIST = False
91     WORKER_PORT = 19327
92
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)