Do not download transactions during inital sync

pull/262/head
ptschip 9 years ago
parent 7a5040155e
commit 39a525c21f

@ -32,6 +32,11 @@ def check_array_result(object_array, to_match, expected):
class ListTransactionsTest(BitcoinTestFramework): class ListTransactionsTest(BitcoinTestFramework):
def setup_nodes(self):
#This test requires mocktime
enable_mocktime()
return start_nodes(4, self.options.tmpdir)
def run_test(self): def run_test(self):
# Simple send, 0 to 1: # Simple send, 0 to 1:
txid = self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.1) txid = self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.1)

@ -53,6 +53,11 @@ def check_array_result(object_array, to_match, expected, should_not_find = False
class ReceivedByTest(BitcoinTestFramework): class ReceivedByTest(BitcoinTestFramework):
def setup_nodes(self):
#This test requires mocktime
enable_mocktime()
return start_nodes(4, self.options.tmpdir)
def run_test(self): def run_test(self):
''' '''
listreceivedbyaddress Test listreceivedbyaddress Test

@ -22,6 +22,26 @@ from .authproxy import AuthServiceProxy, JSONRPCException
COVERAGE_DIR = None COVERAGE_DIR = None
#Set Mocktime default to OFF.
#MOCKTIME is only needed for scripts that use the
#cached version of the blockchain. If the cached
#version of the blockchain is used without MOCKTIME
#then the mempools will not sync due to IBD.
MOCKTIME = 0
def enable_mocktime():
#For backwared compatibility of the python scripts
#with previous versions of the cache, set MOCKTIME
#to Jan 1, 2014 + (201 * 10 * 60)
global MOCKTIME
MOCKTIME = 1388534400 + (201 * 10 * 60)
def disable_mocktime():
global MOCKTIME
MOCKTIME = 0
def get_mocktime():
return MOCKTIME
def enable_coverage(dirname): def enable_coverage(dirname):
"""Maintain a log of which RPC calls are made during testing.""" """Maintain a log of which RPC calls are made during testing."""
@ -155,9 +175,10 @@ def initialize_chain(test_dir):
# Create a 200-block-long chain; each of the 4 nodes # Create a 200-block-long chain; each of the 4 nodes
# gets 25 mature blocks and 25 immature. # gets 25 mature blocks and 25 immature.
# blocks are created with timestamps 10 minutes apart, starting # blocks are created with timestamps 10 minutes apart
# at 1 Jan 2014 # starting from 2010 minutes in the past
block_time = 1388534400 enable_mocktime()
block_time = get_mocktime() - (201 * 10 * 60)
for i in range(2): for i in range(2):
for peer in range(4): for peer in range(4):
for j in range(25): for j in range(25):
@ -170,6 +191,7 @@ def initialize_chain(test_dir):
# Shut them down, and clean up cache directories: # Shut them down, and clean up cache directories:
stop_nodes(rpcs) stop_nodes(rpcs)
wait_bitcoinds() wait_bitcoinds()
disable_mocktime()
for i in range(4): for i in range(4):
os.remove(log_filename("cache", i, "debug.log")) os.remove(log_filename("cache", i, "debug.log"))
os.remove(log_filename("cache", i, "db.log")) os.remove(log_filename("cache", i, "db.log"))
@ -219,7 +241,7 @@ def start_node(i, dirname, extra_args=None, rpchost=None, timewait=None, binary=
if binary is None: if binary is None:
binary = os.getenv("BITCOIND", "bitcoind") binary = os.getenv("BITCOIND", "bitcoind")
# RPC tests still depend on free transactions # RPC tests still depend on free transactions
args = [ binary, "-datadir="+datadir, "-server", "-keypool=1", "-discover=0", "-rest", "-blockprioritysize=50000" ] args = [ binary, "-datadir="+datadir, "-server", "-keypool=1", "-discover=0", "-rest", "-blockprioritysize=50000", "-mocktime="+str(get_mocktime()) ]
if extra_args is not None: args.extend(extra_args) if extra_args is not None: args.extend(extra_args)
bitcoind_processes[i] = subprocess.Popen(args) bitcoind_processes[i] = subprocess.Popen(args)
devnull = open(os.devnull, "w") devnull = open(os.devnull, "w")

@ -4563,7 +4563,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
{ {
if (fBlocksOnly) if (fBlocksOnly)
LogPrint("net", "transaction (%s) inv sent in violation of protocol peer=%d\n", inv.hash.ToString(), pfrom->id); LogPrint("net", "transaction (%s) inv sent in violation of protocol peer=%d\n", inv.hash.ToString(), pfrom->id);
else if (!fAlreadyHave && !fImporting && !fReindex) else if (!fAlreadyHave && !fImporting && !fReindex && !IsInitialBlockDownload())
pfrom->AskFor(inv); pfrom->AskFor(inv);
} }

Loading…
Cancel
Save