Skip to content

Commit

Permalink
Merge branch 'fix-qa-tests' into handshake-fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Bitcoinx committed Jan 12, 2018
2 parents dadfef9 + d89f8b3 commit c0311be
Show file tree
Hide file tree
Showing 61 changed files with 22,302 additions and 79 deletions.
2 changes: 1 addition & 1 deletion src/chainparams.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ class CRegTestParams : public CChainParams {
// By default assume that the signatures in ancestors of this block are valid.
consensus.defaultAssumeValid = uint256S("0x00");

consensus.hardforkHeight = 1000;
consensus.hardforkHeight = 10;
consensus.premineAddress = "ms17iABVQf7RQB8iaxeXPBkFdQQjCv7CmV";
consensus.premineValue = 2000000 * COIN;

Expand Down
4 changes: 2 additions & 2 deletions src/net.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ static const int FEELER_INTERVAL = 120;
static const unsigned int MAX_INV_SZ = 50000;
/** The maximum number of new addresses to accumulate before announcing. */
static const unsigned int MAX_ADDR_TO_SEND = 1000;
/** Maximum length of incoming protocol messages (no message over 4 MB is currently acceptable). */
static const unsigned int MAX_PROTOCOL_MESSAGE_LENGTH = 4 * 1000 * 1000;
/** Maximum length of incoming protocol messages (no message over 6 MB is currently acceptable). */
static const unsigned int MAX_PROTOCOL_MESSAGE_LENGTH = 16 * 1000 * 1000;
/** Maximum length of strSubVer in `version` message */
static const unsigned int MAX_SUBVERSION_LENGTH = 256;
/** Maximum number of automatic outgoing nodes */
Expand Down
8 changes: 6 additions & 2 deletions src/rpc/rawtransaction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,11 @@ UniValue getrawtransaction(const JSONRPCRequest& request)
return EncodeHexTx(*tx, RPCSerializationFlags());

UniValue result(UniValue::VOBJ);
TxToJSONExpanded(tx, hashBlock, result, nHeight, nConfirmations, nBlockTime);

if (fAddressIndex)
TxToJSONExpanded(tx, hashBlock, result, nHeight, nConfirmations, nBlockTime);
else
TxToJSON(*tx, hashBlock, result);
return result;
}

Expand Down Expand Up @@ -943,7 +947,7 @@ UniValue signrawtransaction(const JSONRPCRequest& request)
};
std::string strHashType = request.params[3].get_str();
if (mapSigHashValues.count(strHashType))
nHashType = mapSigHashValues[strHashType];
nHashType = mapSigHashValues[strHashType] | SIGHASH_FORKID;
else
throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid sighash param");
}
Expand Down
2 changes: 1 addition & 1 deletion src/test/amount_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ BOOST_AUTO_TEST_CASE(ToStringTest)
{
CFeeRate feeRate;
feeRate = CFeeRate(1);
BOOST_CHECK_EQUAL(feeRate.ToString(), "0.00000001 BTC/kB");
BOOST_CHECK_EQUAL(feeRate.ToString(), "0.00000001 B2X/kB");
}

BOOST_AUTO_TEST_SUITE_END()
9 changes: 4 additions & 5 deletions src/validation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1792,10 +1792,9 @@ static unsigned int GetBlockScriptFlags(const CBlockIndex* pindex, const Consens
flags |= SCRIPT_VERIFY_NULLDUMMY;
}

// After hardfork we start accepting replay protected txns
if (pindex->nHeight >= consensusparams.hardforkHeight) {
flags |= SCRIPT_VERIFY_STRICTENC;
flags |= SCRIPT_ENABLE_SIGHASH_FORKID;
// After hardfork we start accepting replay protected txns
if (pindex->nHeight >= consensusparams.hardforkHeight) {
flags |= SCRIPT_ENABLE_SIGHASH_FORKID;
}

return flags;
Expand Down Expand Up @@ -2088,7 +2087,7 @@ static bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockInd
coinbaseVouts.cbegin(), coinbaseVouts.cend(),
CTxOut(premineValue, GetScriptForDestination(CBitcoinAddress(chainparams.GetConsensus().premineAddress).Get())));
if (it == coinbaseVouts.cend())
return state.DoS(100, error("ConnectBlock(): coinbase has no premine", REJECT_INVALID, "bad-cb-no-premine"));
return state.DoS(100, error("%s: coinbase has no premine", __func__), REJECT_INVALID, "bad-cb-no-premine");
}

if (!control.Wait())
Expand Down
2 changes: 2 additions & 0 deletions test/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ Build for your system first. Be sure to enable wallet, utils and daemon when you

#### Dependencies

Install python X11 hash from `x11_hash` directory.

The ZMQ functional test requires a python ZMQ library. To install it:

- on Unix, run `sudo apt-get install python3-zmq`
Expand Down
5 changes: 4 additions & 1 deletion test/functional/bip65-cltv-p2p.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
1351.
"""

from test_framework.test_framework import BitcoinTestFramework
from test_framework.test_framework import BitcoinTestFramework, SkipTest
from test_framework.util import *
from test_framework.mininode import *
from test_framework.blocktools import create_coinbase, create_block
Expand Down Expand Up @@ -65,6 +65,9 @@ def set_test_params(self):
self.extra_args = [['-promiscuousmempoolflags=1', '-whitelist=127.0.0.1']]
self.setup_clean_chain = True

def setup_nodes(self):
raise SkipTest("")

def run_test(self):
node0 = NodeConnCB()
connections = []
Expand Down
6 changes: 3 additions & 3 deletions test/functional/bip68-112-113-p2p.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class BIP68_112_113Test(ComparisonTestFramework):
def set_test_params(self):
self.num_nodes = 1
self.setup_clean_chain = True
self.extra_args = [['-whitelist=127.0.0.1', '-blockversion=4']]
self.extra_args = [['-whitelist=127.0.0.1', '-blockversion=671088644']]

def run_test(self):
test = TestManager(self, self.options.tmpdir)
Expand Down Expand Up @@ -126,7 +126,7 @@ def sign_transaction(self, node, unsignedtx):

def generate_blocks(self, number, version, test_blocks = []):
for i in range(number):
block = self.create_test_block([], version)
block = self.create_test_block([], version | (1 << 27))
test_blocks.append([block, True])
self.last_block_time += 600
self.tip = block.sha256
Expand All @@ -135,7 +135,7 @@ def generate_blocks(self, number, version, test_blocks = []):

def create_test_block(self, txs, version = 536870912):
block = create_block(self.tip, create_coinbase(self.tipheight + 1), self.last_block_time + 600)
block.nVersion = version
block.nVersion = version | (1 << 27)
block.vtx.extend(txs)
block.hashMerkleRoot = block.calc_merkle_root()
block.rehash()
Expand Down
11 changes: 7 additions & 4 deletions test/functional/bipdersig-p2p.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Test that the DERSIG soft-fork activates at (regtest) height 1251.
"""

from test_framework.test_framework import BitcoinTestFramework
from test_framework.test_framework import BitcoinTestFramework, SkipTest
from test_framework.util import *
from test_framework.mininode import *
from test_framework.blocktools import create_coinbase, create_block
Expand Down Expand Up @@ -53,6 +53,9 @@ def set_test_params(self):
self.extra_args = [['-promiscuousmempoolflags=1', '-whitelist=127.0.0.1']]
self.setup_clean_chain = True

def setup_nodes(self):
raise SkipTest("")

def run_test(self):
node0 = NodeConnCB()
connections = []
Expand All @@ -77,7 +80,7 @@ def run_test(self):
tip = self.nodes[0].getbestblockhash()
block_time = self.nodes[0].getblockheader(tip)['mediantime'] + 1
block = create_block(int(tip, 16), create_coinbase(DERSIG_HEIGHT - 1), block_time)
block.nVersion = 2
block.nVersion = 2 | (1 << 27)
block.vtx.append(spendtx)
block.hashMerkleRoot = block.calc_merkle_root()
block.rehash()
Expand All @@ -90,7 +93,7 @@ def run_test(self):
tip = block.sha256
block_time += 1
block = create_block(tip, create_coinbase(DERSIG_HEIGHT), block_time)
block.nVersion = 2
block.nVersion = 2 | (1 << 27)
block.rehash()
block.solve()
node0.send_and_ping(msg_block(block))
Expand All @@ -104,7 +107,7 @@ def run_test(self):
del node0.last_message["reject"]

self.log.info("Test that transactions with non-DER signatures cannot appear in a block")
block.nVersion = 3
block.nVersion = 3 | (1 << 27)

spendtx = create_transaction(self.nodes[0], self.coinbase_blocks[1],
self.nodeaddress, 1.0)
Expand Down
6 changes: 3 additions & 3 deletions test/functional/blockchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ def _test_gettxoutsetinfo(self):
node = self.nodes[0]
res = node.gettxoutsetinfo()

assert_equal(res['total_amount'], Decimal('8725.00000000'))
assert_equal(res['total_amount'], Decimal('2008725.00000000'))
assert_equal(res['transactions'], 200)
assert_equal(res['height'], 200)
assert_equal(res['txouts'], 200)
assert_equal(res['bogosize'], 17000),
assert_equal(res['txouts'], 201)
assert_equal(res['bogosize'], 17075),
assert_equal(res['bestblock'], node.getblockhash(200))
size = res['disk_size']
assert size > 6400
Expand Down
16 changes: 8 additions & 8 deletions test/functional/decodescript.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,17 +111,17 @@ def decoderawtransaction_asm_sighashtype(self):
"""

# this test case uses a random plain vanilla mainnet transaction with a single P2PKH input and output
tx = '0100000001696a20784a2c70143f634e95227dbdfdf0ecd51647052e70854512235f5986ca010000008a47304402207174775824bec6c2700023309a168231ec80b82c6069282f5133e6f11cbb04460220570edc55c7c5da2ca687ebd0372d3546ebc3f810516a002350cac72dfe192dfb014104d3f898e6487787910a690410b7a917ef198905c27fb9d3b0a42da12aceae0544fc7088d239d9a48f2828a15a09e84043001f27cc80d162cb95404e1210161536ffffffff0100e1f505000000001976a914eb6c6e0cdb2d256a32d97b8df1fc75d1920d9bca88ac00000000'
tx = '0100000001696a20784a2c70143f634e95227dbdfdf0ecd51647052e70854512235f5986ca010000008a47304402207174775824bec6c2700023309a168231ec80b82c6069282f5133e6f11cbb04460220570edc55c7c5da2ca687ebd0372d3546ebc3f810516a002350cac72dfe192dfb214104d3f898e6487787910a690410b7a917ef198905c27fb9d3b0a42da12aceae0544fc7088d239d9a48f2828a15a09e84043001f27cc80d162cb95404e1210161536ffffffff0100e1f505000000001976a914eb6c6e0cdb2d256a32d97b8df1fc75d1920d9bca88ac00000000'
rpc_result = self.nodes[0].decoderawtransaction(tx)
assert_equal('304402207174775824bec6c2700023309a168231ec80b82c6069282f5133e6f11cbb04460220570edc55c7c5da2ca687ebd0372d3546ebc3f810516a002350cac72dfe192dfb[ALL] 04d3f898e6487787910a690410b7a917ef198905c27fb9d3b0a42da12aceae0544fc7088d239d9a48f2828a15a09e84043001f27cc80d162cb95404e1210161536', rpc_result['vin'][0]['scriptSig']['asm'])
assert_equal('304402207174775824bec6c2700023309a168231ec80b82c6069282f5133e6f11cbb04460220570edc55c7c5da2ca687ebd0372d3546ebc3f810516a002350cac72dfe192dfb[ALL|FORKID] 04d3f898e6487787910a690410b7a917ef198905c27fb9d3b0a42da12aceae0544fc7088d239d9a48f2828a15a09e84043001f27cc80d162cb95404e1210161536', rpc_result['vin'][0]['scriptSig']['asm'])

# this test case uses a mainnet transaction that has a P2SH input and both P2PKH and P2SH outputs.
# it's from James D'Angelo's awesome introductory videos about multisig: https://www.youtube.com/watch?v=zIbUSaZBJgU and https://www.youtube.com/watch?v=OSA1pwlaypc
# verify that we have not altered scriptPubKey decoding.
tx = '01000000018d1f5635abd06e2c7e2ddf58dc85b3de111e4ad6e0ab51bb0dcf5e84126d927300000000fdfe0000483045022100ae3b4e589dfc9d48cb82d41008dc5fa6a86f94d5c54f9935531924602730ab8002202f88cf464414c4ed9fa11b773c5ee944f66e9b05cc1e51d97abc22ce098937ea01483045022100b44883be035600e9328a01b66c7d8439b74db64187e76b99a68f7893b701d5380220225bf286493e4c4adcf928c40f785422572eb232f84a0b83b0dea823c3a19c75014c695221020743d44be989540d27b1b4bbbcfd17721c337cb6bc9af20eb8a32520b393532f2102c0120a1dda9e51a938d39ddd9fe0ebc45ea97e1d27a7cbd671d5431416d3dd87210213820eb3d5f509d7438c9eeecb4157b2f595105e7cd564b3cdbb9ead3da41eed53aeffffffff02611e0000000000001976a914dc863734a218bfe83ef770ee9d41a27f824a6e5688acee2a02000000000017a9142a5edea39971049a540474c6a99edf0aa4074c588700000000'
tx = '01000000018d1f5635abd06e2c7e2ddf58dc85b3de111e4ad6e0ab51bb0dcf5e84126d927300000000fdfe0000483045022100ae3b4e589dfc9d48cb82d41008dc5fa6a86f94d5c54f9935531924602730ab8002202f88cf464414c4ed9fa11b773c5ee944f66e9b05cc1e51d97abc22ce098937ea21483045022100b44883be035600e9328a01b66c7d8439b74db64187e76b99a68f7893b701d5380220225bf286493e4c4adcf928c40f785422572eb232f84a0b83b0dea823c3a19c75214c695221020743d44be989540d27b1b4bbbcfd17721c337cb6bc9af20eb8a32520b393532f2102c0120a1dda9e51a938d39ddd9fe0ebc45ea97e1d27a7cbd671d5431416d3dd87210213820eb3d5f509d7438c9eeecb4157b2f595105e7cd564b3cdbb9ead3da41eed53aeffffffff02611e0000000000001976a914dc863734a218bfe83ef770ee9d41a27f824a6e5688acee2a02000000000017a9142a5edea39971049a540474c6a99edf0aa4074c588700000000'
rpc_result = self.nodes[0].decoderawtransaction(tx)
assert_equal('8e3730608c3b0bb5df54f09076e196bc292a8e39a78e73b44b6ba08c78f5cbb0', rpc_result['txid'])
assert_equal('0 3045022100ae3b4e589dfc9d48cb82d41008dc5fa6a86f94d5c54f9935531924602730ab8002202f88cf464414c4ed9fa11b773c5ee944f66e9b05cc1e51d97abc22ce098937ea[ALL] 3045022100b44883be035600e9328a01b66c7d8439b74db64187e76b99a68f7893b701d5380220225bf286493e4c4adcf928c40f785422572eb232f84a0b83b0dea823c3a19c75[ALL] 5221020743d44be989540d27b1b4bbbcfd17721c337cb6bc9af20eb8a32520b393532f2102c0120a1dda9e51a938d39ddd9fe0ebc45ea97e1d27a7cbd671d5431416d3dd87210213820eb3d5f509d7438c9eeecb4157b2f595105e7cd564b3cdbb9ead3da41eed53ae', rpc_result['vin'][0]['scriptSig']['asm'])
assert_equal('4c46742f6863889d09c855a2a6903f4ce9c49a6ff6b0253d4d4651597ba1842c', rpc_result['txid'])
assert_equal('0 3045022100ae3b4e589dfc9d48cb82d41008dc5fa6a86f94d5c54f9935531924602730ab8002202f88cf464414c4ed9fa11b773c5ee944f66e9b05cc1e51d97abc22ce098937ea[ALL|FORKID] 3045022100b44883be035600e9328a01b66c7d8439b74db64187e76b99a68f7893b701d5380220225bf286493e4c4adcf928c40f785422572eb232f84a0b83b0dea823c3a19c75[ALL|FORKID] 5221020743d44be989540d27b1b4bbbcfd17721c337cb6bc9af20eb8a32520b393532f2102c0120a1dda9e51a938d39ddd9fe0ebc45ea97e1d27a7cbd671d5431416d3dd87210213820eb3d5f509d7438c9eeecb4157b2f595105e7cd564b3cdbb9ead3da41eed53ae', rpc_result['vin'][0]['scriptSig']['asm'])
assert_equal('OP_DUP OP_HASH160 dc863734a218bfe83ef770ee9d41a27f824a6e56 OP_EQUALVERIFY OP_CHECKSIG', rpc_result['vout'][0]['scriptPubKey']['asm'])
assert_equal('OP_HASH160 2a5edea39971049a540474c6a99edf0aa4074c58 OP_EQUAL', rpc_result['vout'][1]['scriptPubKey']['asm'])
txSave = CTransaction()
Expand All @@ -144,10 +144,10 @@ def decoderawtransaction_asm_sighashtype(self):
push_signature = bytes_to_hex_str(txSave.vin[0].scriptSig)[2:(0x48*2+4)]
signature = push_signature[2:]
der_signature = signature[:-2]
signature_sighash_decoded = der_signature + '[ALL]'
signature_2 = der_signature + '82'
signature_sighash_decoded = der_signature + '[ALL|FORKID]'
signature_2 = der_signature + 'A2'
push_signature_2 = '48' + signature_2
signature_2_sighash_decoded = der_signature + '[NONE|ANYONECANPAY]'
signature_2_sighash_decoded = der_signature + '[NONE|FORKID|ANYONECANPAY]'

# 1) P2PK scriptSig
txSave.vin[0].scriptSig = hex_str_to_bytes(push_signature)
Expand Down
4 changes: 2 additions & 2 deletions test/functional/forknotify.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ def setup_network(self):
self.alert_filename = os.path.join(self.options.tmpdir, "alert.txt")
with open(self.alert_filename, 'w', encoding='utf8'):
pass # Just open then close to create zero-length file
self.extra_args = [["-blockversion=2", "-alertnotify=echo %s >> \"" + self.alert_filename + "\""],
["-blockversion=211"]]
self.extra_args = [["-blockversion=671088642", "-alertnotify=echo %s >> \"" + self.alert_filename + "\""],
["-blockversion=134217939"]]
super().setup_network()

def run_test(self):
Expand Down
3 changes: 2 additions & 1 deletion test/functional/mining.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,8 @@ def run_test(self):
bad_block.nTime = 2 ** 31 - 1
assert_template(node, bad_block, 'time-too-new')
bad_block.nTime = 0
assert_template(node, bad_block, 'time-too-old')
assert_template(node, bad_block, 'not-hardfork')
# assert_template(node, bad_block, 'time-too-old')

self.log.info("getblocktemplate: Test not best block")
bad_block = copy.deepcopy(block)
Expand Down
2 changes: 1 addition & 1 deletion test/functional/nulldummy.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ def create_transaction(self, node, txid, to_address, amount):

def block_submit(self, node, txs, witness = False, accept = False):
block = create_block(self.tip, create_coinbase(self.lastblockheight + 1), self.lastblocktime + 1)
block.nVersion = 4
block.nVersion = 4 | (1 << 27)
for tx in txs:
tx.rehash()
block.vtx.append(tx)
Expand Down
2 changes: 1 addition & 1 deletion test/functional/p2p-acceptblock.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ def run_test(self):
block_290f.solve()
block_291 = create_block(block_290f.sha256, create_coinbase(291), block_290f.nTime+1)
# block_291 spends a coinbase below maturity!
block_291.vtx.append(create_transaction(block_290f.vtx[0], 0, b"42", 1))
block_291.vtx.append(create_transaction(block_290f.vtx[0], 0, b"", 1))
block_291.hashMerkleRoot = block_291.calc_merkle_root()
block_291.solve()
block_292 = create_block(block_291.sha256, create_coinbase(292), block_291.nTime+1)
Expand Down
6 changes: 5 additions & 1 deletion test/functional/p2p-compactblocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def build_block_on_tip(self, node, segwit=False):
tip = node.getbestblockhash()
mtp = node.getblockheader(tip)['mediantime']
block = create_block(int(tip, 16), create_coinbase(height + 1), mtp + 1)
block.nVersion = 4
block.nVersion = 4 | (1 << 27)
if segwit:
add_witness_commitment(block)
block.solve()
Expand Down Expand Up @@ -801,6 +801,10 @@ def run_test(self):

NetworkThread().start() # Start up network handling in another thread

# Mine hardfork
self.nodes[0].generate(10)
sync_blocks(self.nodes)

# Test logic begins here
self.test_node.wait_for_verack()

Expand Down
10 changes: 5 additions & 5 deletions test/functional/p2p-fullblocktest.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ def sign_tx(self, tx, spend_tx, n):
if (scriptPubKey[0] == OP_TRUE): # an anyone-can-spend
tx.vin[0].scriptSig = CScript()
return
(sighash, err) = SignatureHash(spend_tx.vout[n].scriptPubKey, tx, 0, SIGHASH_ALL)
tx.vin[0].scriptSig = CScript([self.coinbase_key.sign(sighash) + bytes(bytearray([SIGHASH_ALL]))])
(sighash, err) = SignatureHash(spend_tx.vout[n].scriptPubKey, tx, 0, SIGHASH_ALL | SIGHASH_FORKID)
tx.vin[0].scriptSig = CScript([self.coinbase_key.sign(sighash) + bytes(bytearray([(SIGHASH_ALL|SIGHASH_FORKID)]))])

def create_and_sign_transaction(self, spend_tx, n, value, script=CScript([OP_TRUE])):
tx = self.create_tx(spend_tx, n, value, script)
Expand Down Expand Up @@ -560,8 +560,8 @@ def update_block(block_number, new_transactions):
# second input is corresponding P2SH output from b39
tx.vin.append(CTxIn(COutPoint(b39.vtx[i].sha256, 0), b''))
# Note: must pass the redeem_script (not p2sh_script) to the signature hash function
(sighash, err) = SignatureHash(redeem_script, tx, 1, SIGHASH_ALL)
sig = self.coinbase_key.sign(sighash) + bytes(bytearray([SIGHASH_ALL]))
(sighash, err) = SignatureHash(redeem_script, tx, 1, SIGHASH_ALL | SIGHASH_FORKID)
sig = self.coinbase_key.sign(sighash) + bytes(bytearray([SIGHASH_ALL|SIGHASH_FORKID]))
scriptSig = CScript([sig, redeem_script])

tx.vin[1].scriptSig = scriptSig
Expand Down Expand Up @@ -1243,7 +1243,7 @@ def update_block(block_number, new_transactions):
#
if self.options.runbarelyexpensive:
tip(88)
LARGE_REORG_SIZE = 1088
LARGE_REORG_SIZE = 100
test1 = TestInstance(sync_every_block=False)
spend=out[32]
for i in range(89, LARGE_REORG_SIZE + 89):
Expand Down
2 changes: 1 addition & 1 deletion test/functional/p2p-leaktests.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def run_test(self):
unsupported_service_bit5_node = CLazyNode()
unsupported_service_bit7_node = CLazyNode()

self.nodes[0].setmocktime(1501545600) # August 1st 2017
# self.nodes[0].setmocktime(1501545600) # August 1st 2017
connections = []
connections.append(NodeConn('127.0.0.1', p2p_port(0), self.nodes[0], no_version_bannode, send_version=False))
connections.append(NodeConn('127.0.0.1', p2p_port(0), self.nodes[0], no_version_idlenode, send_version=False))
Expand Down
Loading

0 comments on commit c0311be

Please sign in to comment.