Merge pull request #7164: Do not download transactions during initial blockchain sync
39a525c
Do not download transactions during inital sync (ptschip)
This commit is contained in:
commit
3b43cad9d0
4 changed files with 37 additions and 5 deletions
|
@ -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")
|
||||||
|
|
|
@ -4541,7 +4541,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…
Reference in a new issue