Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #7164: Do not download transactions during initial…
… blockchain sync

39a525c Do not download transactions during inital sync (ptschip)
  • Loading branch information
laanwj committed Jan 19, 2016
2 parents 668906f + 39a525c commit 3b43cad
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 5 deletions.
5 changes: 5 additions & 0 deletions qa/rpc-tests/listtransactions.py
Expand Up @@ -32,6 +32,11 @@ def check_array_result(object_array, to_match, expected):

class ListTransactionsTest(BitcoinTestFramework):

def setup_nodes(self):
#This test requires mocktime
enable_mocktime()
return start_nodes(4, self.options.tmpdir)

def run_test(self):
# Simple send, 0 to 1:
txid = self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.1)
Expand Down
5 changes: 5 additions & 0 deletions qa/rpc-tests/receivedby.py
Expand Up @@ -53,6 +53,11 @@ def check_array_result(object_array, to_match, expected, should_not_find = False

class ReceivedByTest(BitcoinTestFramework):

def setup_nodes(self):
#This test requires mocktime
enable_mocktime()
return start_nodes(4, self.options.tmpdir)

def run_test(self):
'''
listreceivedbyaddress Test
Expand Down
30 changes: 26 additions & 4 deletions qa/rpc-tests/test_framework/util.py
Expand Up @@ -22,6 +22,26 @@

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):
"""Maintain a log of which RPC calls are made during testing."""
Expand Down Expand Up @@ -155,9 +175,10 @@ def initialize_chain(test_dir):

# Create a 200-block-long chain; each of the 4 nodes
# gets 25 mature blocks and 25 immature.
# blocks are created with timestamps 10 minutes apart, starting
# at 1 Jan 2014
block_time = 1388534400
# blocks are created with timestamps 10 minutes apart
# starting from 2010 minutes in the past
enable_mocktime()
block_time = get_mocktime() - (201 * 10 * 60)
for i in range(2):
for peer in range(4):
for j in range(25):
Expand All @@ -170,6 +191,7 @@ def initialize_chain(test_dir):
# Shut them down, and clean up cache directories:
stop_nodes(rpcs)
wait_bitcoinds()
disable_mocktime()
for i in range(4):
os.remove(log_filename("cache", i, "debug.log"))
os.remove(log_filename("cache", i, "db.log"))
Expand Down Expand Up @@ -219,7 +241,7 @@ def start_node(i, dirname, extra_args=None, rpchost=None, timewait=None, binary=
if binary is None:
binary = os.getenv("BITCOIND", "bitcoind")
# 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)
bitcoind_processes[i] = subprocess.Popen(args)
devnull = open(os.devnull, "w")
Expand Down
2 changes: 1 addition & 1 deletion src/main.cpp
Expand Up @@ -4541,7 +4541,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
{
if (fBlocksOnly)
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);
}

Expand Down

0 comments on commit 3b43cad

Please sign in to comment.