X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=p2pool%2Fnetworks.py;h=9eb5df8b1f612cd74e202f2f49f9f876386ba6de;hb=7fd5dd3ac50ff1c450efc9fad27edb5df968eedd;hp=617cb030309410c907f3dbe742762033086c07dc;hpb=f0b6984feb48499afc5f69821ea5f33b3b5f7601;p=p2pool.git diff --git a/p2pool/networks.py b/p2pool/networks.py index 617cb03..9eb5df8 100644 --- a/p2pool/networks.py +++ b/p2pool/networks.py @@ -1,81 +1,49 @@ from p2pool.bitcoin import networks +from p2pool.util import math -class BitcoinMainnet(networks.BitcoinMainnet): - SHARE_PERIOD = 10 # seconds - CHAIN_LENGTH = 24*60*60//10//2 # shares - TARGET_LOOKBEHIND = 200 # shares - SPREAD = 3 # blocks - IDENTIFIER = 'fc70035c7a81bc6f'.decode('hex') - PREFIX = '2472ef181efcd37b'.decode('hex') - NAME = 'bitcoin' - P2P_PORT = 9333 - MAX_TARGET = 2**256//2**32 - 1 - PERSIST = True - WORKER_PORT = 9332 +# CHAIN_LENGTH = number of shares back client keeps +# REAL_CHAIN_LENGTH = maximum number of shares back client uses to compute payout +# REAL_CHAIN_LENGTH must always be <= CHAIN_LENGTH +# REAL_CHAIN_LENGTH must be changed in sync with all other clients +# changes can be done by changing one, then the other -class BitcoinTestnet(networks.BitcoinTestnet): - SHARE_PERIOD = 1 # seconds - CHAIN_LENGTH = 24*60*60//10//2 # shares - TARGET_LOOKBEHIND = 200 # shares - SPREAD = 3 # blocks - IDENTIFIER = '5fc2be2d4f0d6bfb'.decode('hex') - PREFIX = '3f6057a15036f441'.decode('hex') - NAME = 'bitcoin_testnet' - P2P_PORT = 19333 - MAX_TARGET = 2**256//2**32 - 1 - PERSIST = False - WORKER_PORT = 19332 - -class NamecoinMainnet(networks.NamecoinMainnet): - SHARE_PERIOD = 10 # seconds - CHAIN_LENGTH = 24*60*60//10 # shares - TARGET_LOOKBEHIND = 3600//10 # shares - SPREAD = 3 # blocks - IDENTIFIER = 'd5b1192062c4c454'.decode('hex') - PREFIX = 'b56f3d0fb24fc982'.decode('hex') - NAME = 'namecoin' - P2P_PORT = 9334 - MAX_TARGET = 2**256//2**32 - 1 - PERSIST = True - WORKER_PORT = 9331 - -class NamecoinTestnet(networks.NamecoinTestnet): - SHARE_PERIOD = 1 # seconds - CHAIN_LENGTH = 24*60*60//5 # shares - TARGET_LOOKBEHIND = 200 # shares - SPREAD = 3 # blocks - IDENTIFIER = '8dd303d014a01a60'.decode('hex') - PREFIX = '4d6581d24f51acbf'.decode('hex') - NAME = 'namecoin_testnet' - P2P_PORT = 19334 - MAX_TARGET = 2**256//2**20 - 1 - PERSIST = False - WORKER_PORT = 19331 - -class LitecoinMainnet(networks.LitecoinMainnet): - SHARE_PERIOD = 10 # seconds - CHAIN_LENGTH = 24*60*60//10//2 # shares - TARGET_LOOKBEHIND = 200 # shares - SPREAD = 12 # blocks - IDENTIFIER = 'e037d5b8c6923410'.decode('hex') - PREFIX = '7208c1a53ef629b0'.decode('hex') - NAME = 'litecoin' - P2P_PORT = 9338 - MAX_TARGET = 2**256//2**20 - 1 - PERSIST = True - WORKER_PORT = 9327 - -class LitecoinTestnet(networks.LitecoinTestnet): - SHARE_PERIOD = 1 # seconds - CHAIN_LENGTH = 24*60*60//5 # shares - TARGET_LOOKBEHIND = 200 # shares - SPREAD = 12 # blocks - IDENTIFIER = 'cca5e24ec6408b1e'.decode('hex') - PREFIX = 'ad9614f6466a39cf'.decode('hex') - NAME = 'litecoin_testnet' - P2P_PORT = 19338 - MAX_TARGET = 2**256//2**17 - 1 - PERSIST = False - WORKER_PORT = 19327 - -nets = dict((net.NAME, net) for net in set([BitcoinMainnet, BitcoinTestnet, NamecoinMainnet, NamecoinTestnet, LitecoinMainnet, LitecoinTestnet])) +nets = dict( + novacoin=math.Object( + PARENT=networks.nets['novacoin'], + SHARE_PERIOD=15, # seconds + CHAIN_LENGTH=12*60*60//10, # shares + REAL_CHAIN_LENGTH=12*60*60//10, # shares + TARGET_LOOKBEHIND=200, # shares + SPREAD=3, # blocks + IDENTIFIER='e037d5b8c6923610'.decode('hex'), + PREFIX='7208c1a53ef659b0'.decode('hex'), + P2P_PORT=8777, + MIN_TARGET=0, + MAX_TARGET=2**256//2**20 - 1, + PERSIST=True, + WORKER_PORT=8336, + BOOTSTRAP_ADDRS='81.200.245.198 81.200.241.54 85.234.62.99 188.120.239.144'.split(' '), + ANNOUNCE_CHANNEL='#p2pool-alt', + VERSION_CHECK=lambda v: v >= 60011, + ), + novacoin_testnet=math.Object( + PARENT=networks.nets['novacoin_testnet'], + SHARE_PERIOD=4, # seconds + CHAIN_LENGTH=20*60//3, # shares + REAL_CHAIN_LENGTH=20*60//3, # shares + TARGET_LOOKBEHIND=200, # shares + SPREAD=3, # blocks + IDENTIFIER='e037d5b8c7923110'.decode('hex'), + PREFIX='7208c1a54ef619b0'.decode('hex'), + P2P_PORT=18777, + MIN_TARGET=0, + MAX_TARGET=2**256//2**20 - 1, + PERSIST=False, + WORKER_PORT=18336, + BOOTSTRAP_ADDRS=''.split(' '), + ANNOUNCE_CHANNEL='#p2pool-alt', + VERSION_CHECK=lambda v: v >= 60011, + ), +) +for net_name, net in nets.iteritems(): + net.NAME = net_name