attempts_per_second = get_pool_attempts_per_second(tracker, share_data['previous_share_hash'], net.TARGET_LOOKBEHIND, min_work=True, integer=True)
pre_target = 2**256//(net.SHARE_PERIOD*attempts_per_second) - 1 if attempts_per_second else 2**256-1
pre_target2 = math.clip(pre_target, (previous_share.max_target*9//10, previous_share.max_target*11//10))
- pre_target3 = math.clip(pre_target2, (0, net.MAX_TARGET))
+ pre_target3 = math.clip(pre_target2, (net.MIN_TARGET, net.MAX_TARGET))
max_bits = bitcoin_data.FloatingInteger.from_target_upper_bound(pre_target3)
bits = bitcoin_data.FloatingInteger.from_target_upper_bound(math.clip(desired_target, (pre_target3//10, pre_target3)))
attempts_per_second = get_pool_attempts_per_second(tracker, share_data['previous_share_hash'], net.TARGET_LOOKBEHIND, min_work=True, integer=True)
pre_target = 2**256//(net.SHARE_PERIOD*attempts_per_second) - 1 if attempts_per_second else 2**256-1
pre_target2 = math.clip(pre_target, (previous_share.max_target*9//10, previous_share.max_target*11//10))
- pre_target3 = math.clip(pre_target2, (0, net.MAX_TARGET))
+ pre_target3 = math.clip(pre_target2, (net.MIN_TARGET, net.MAX_TARGET))
max_bits = bitcoin_data.FloatingInteger.from_target_upper_bound(pre_target3)
bits = bitcoin_data.FloatingInteger.from_target_upper_bound(math.clip(desired_target, (pre_target3//10, pre_target3)))
IDENTIFIER='fc70035c7a81bc6f'.decode('hex'),
PREFIX='2472ef181efcd37b'.decode('hex'),
P2P_PORT=9333,
+ MIN_TARGET=0,
MAX_TARGET=2**256//2**32 - 1,
PERSIST=True,
WORKER_PORT=9332,
IDENTIFIER='5fc2be2d4f0d6bfb'.decode('hex'),
PREFIX='3f6057a15036f441'.decode('hex'),
P2P_PORT=19333,
+ MIN_TARGET=0,
MAX_TARGET=2**256//2**32 - 1,
PERSIST=False,
WORKER_PORT=19332,
IDENTIFIER='e037d5b8c6923410'.decode('hex'),
PREFIX='7208c1a53ef629b0'.decode('hex'),
P2P_PORT=9338,
+ MIN_TARGET=0,
MAX_TARGET=2**256//2**20 - 1,
PERSIST=True,
WORKER_PORT=9327,
IDENTIFIER='cca5e24ec6408b1e'.decode('hex'),
PREFIX='ad9614f6466a39cf'.decode('hex'),
P2P_PORT=19338,
+ MIN_TARGET=0,
MAX_TARGET=2**256 - 1,
PERSIST=False,
WORKER_PORT=19327,
from twisted.trial import unittest
from twisted.web import resource, server
-from p2pool import networks, node, work
-from p2pool.bitcoin import worker_interface
-from p2pool.util import deferral, jsonrpc, variable
+from p2pool import node, work
+from p2pool.bitcoin import networks, worker_interface
+from p2pool.util import deferral, jsonrpc, math, variable
class factory(object):
new_headers = variable.Event()
"height" : 205801
}
+mynet = math.Object(
+ PARENT=networks.nets['litecoin_testnet'],
+ SHARE_PERIOD=3, # seconds
+ CHAIN_LENGTH=20*60//3, # shares
+ REAL_CHAIN_LENGTH=20*60//3, # shares
+ TARGET_LOOKBEHIND=200, # shares
+ SPREAD=12, # blocks
+ IDENTIFIER='cca5e24ec6408b1e'.decode('hex'),
+ PREFIX='ad9614f6466a39cf'.decode('hex'),
+ P2P_PORT=19338,
+ MIN_TARGET=2**256 - 1,
+ MAX_TARGET=2**256 - 1,
+ PERSIST=False,
+ WORKER_PORT=19327,
+ BOOTSTRAP_ADDRS='72.14.191.28'.split(' '),
+ ANNOUNCE_CHANNEL='#p2pool-alt',
+ VERSION_CHECK=lambda v: True,
+)
+
class MiniNode(object):
@classmethod
@defer.inlineCallbacks
class Test(unittest.TestCase):
@defer.inlineCallbacks
def test_node(self):
- net = networks.nets['litecoin_testnet']
- n = node.Node(factory, bitcoind, [], [], net)
+ n = node.Node(factory, bitcoind, [], [], mynet)
yield n.start()
wb = work.WorkerBridge(node=n, my_pubkey_hash=42, donation_percentage=2, merged_urls=[], worker_fee=3)
n.stop()
yield port.stopListening()
- del net, n, wb, web_root, port, proxy
+ del n, wb, web_root, port, proxy
import gc
gc.collect()
gc.collect()
@defer.inlineCallbacks
def test_nodes(self):
- net = networks.nets['litecoin_testnet']
N = 3
nodes = []
for i in xrange(N):
- nodes.append((yield MiniNode.start(net, factory, bitcoind, [mn.n.p2p_node.serverfactory.listen_port.getHost().port for mn in nodes])))
+ nodes.append((yield MiniNode.start(mynet, factory, bitcoind, [mn.n.p2p_node.serverfactory.listen_port.getHost().port for mn in nodes])))
yield deferral.sleep(3)