@ -300,8 +300,8 @@ class CompactBlocksTest(BitcoinTestFramework):
assert ( segwit_tx_generated ) # check that our test is not broken
assert ( segwit_tx_generated ) # check that our test is not broken
# Wait until we've seen the block announcement for the resulting tip
# Wait until we've seen the block announcement for the resulting tip
tip = int ( self . nodes [ 0 ] . getbestblockhash ( ) , 16 )
tip = int ( node . getbestblockhash ( ) , 16 )
assert ( self . test_node . wait_for_block_announcement ( tip ) )
assert ( test_node . wait_for_block_announcement ( tip ) )
# Now mine a block, and look at the resulting compact block.
# Now mine a block, and look at the resulting compact block.
test_node . clear_block_announcement ( )
test_node . clear_block_announcement ( )
@ -589,8 +589,8 @@ class CompactBlocksTest(BitcoinTestFramework):
assert_equal ( int ( node . getbestblockhash ( ) , 16 ) , block . sha256 )
assert_equal ( int ( node . getbestblockhash ( ) , 16 ) , block . sha256 )
def test_getblocktxn_handler ( self , node , test_node , version ) :
def test_getblocktxn_handler ( self , node , test_node , version ) :
# bitcoind won't respond for blocks whose height is more than 15 block s
# bitcoind will not send blocktxn responses for blocks whose height i s
# deep.
# more than 10 blocks deep.
MAX_GETBLOCKTXN_DEPTH = 10
MAX_GETBLOCKTXN_DEPTH = 10
chain_height = node . getblockcount ( )
chain_height = node . getblockcount ( )
current_height = chain_height
current_height = chain_height
@ -623,11 +623,17 @@ class CompactBlocksTest(BitcoinTestFramework):
test_node . last_blocktxn = None
test_node . last_blocktxn = None
current_height - = 1
current_height - = 1
# Next request should be ignored, as we're past the allowed depth.
# Next request should send a full block response, as we're past the
# allowed depth for a blocktxn response.
block_hash = node . getblockhash ( current_height )
block_hash = node . getblockhash ( current_height )
msg . block_txn_request = BlockTransactionsRequest ( int ( block_hash , 16 ) , [ 0 ] )
msg . block_txn_request = BlockTransactionsRequest ( int ( block_hash , 16 ) , [ 0 ] )
with mininode_lock :
test_node . last_block = None
test_node . last_blocktxn = None
test_node . send_and_ping ( msg )
test_node . send_and_ping ( msg )
with mininode_lock :
with mininode_lock :
test_node . last_block . block . calc_sha256 ( )
assert_equal ( test_node . last_block . block . sha256 , int ( block_hash , 16 ) )
assert_equal ( test_node . last_blocktxn , None )
assert_equal ( test_node . last_blocktxn , None )
def test_compactblocks_not_at_tip ( self , node , test_node ) :
def test_compactblocks_not_at_tip ( self , node , test_node ) :
@ -648,6 +654,8 @@ class CompactBlocksTest(BitcoinTestFramework):
node . generate ( 1 )
node . generate ( 1 )
wait_until ( test_node . received_block_announcement , timeout = 30 )
wait_until ( test_node . received_block_announcement , timeout = 30 )
test_node . clear_block_announcement ( )
test_node . clear_block_announcement ( )
with mininode_lock :
test_node . last_block = None
test_node . send_message ( msg_getdata ( [ CInv ( 4 , int ( new_blocks [ 0 ] , 16 ) ) ] ) )
test_node . send_message ( msg_getdata ( [ CInv ( 4 , int ( new_blocks [ 0 ] , 16 ) ) ] ) )
success = wait_until ( lambda : test_node . last_block is not None , timeout = 30 )
success = wait_until ( lambda : test_node . last_block is not None , timeout = 30 )
assert ( success )
assert ( success )