@@ -47,6 +47,7 @@ def on_getdata(self, message):
47
47
OVERLOADED_PEER_DELAY = 2 # seconds
48
48
MAX_GETDATA_IN_FLIGHT = 100
49
49
MAX_PEER_TX_ANNOUNCEMENTS = 5000
50
+ NONPREF_PEER_TX_DELAY = 2
50
51
51
52
# Python test constants
52
53
NUM_INBOUND = 10
@@ -207,14 +208,24 @@ def test_notfound_fallback(self):
207
208
with p2p_lock :
208
209
assert_equal (peer_fallback .tx_getdata_count , 1 )
209
210
210
- def test_preferred_inv (self ):
211
- self .log .info ('Check that invs from preferred peers are downloaded immediately' )
212
- self .
restart_node (
0 ,
extra_args = [
'[email protected] ' ])
211
+ def test_preferred_inv (self , preferred = False ):
212
+ if preferred :
213
+ self .log .info ('Check invs from preferred peers are downloaded immediately' )
214
+ self .
restart_node (
0 ,
extra_args = [
'[email protected] ' ])
215
+ else :
216
+ self .log .info ('Check invs from non-preferred peers are downloaded after {} s' .format (NONPREF_PEER_TX_DELAY ))
217
+ mock_time = int (time .time () + 1 )
218
+ self .nodes [0 ].setmocktime (mock_time )
213
219
peer = self .nodes [0 ].add_p2p_connection (TestP2PConn ())
214
220
peer .send_message (msg_inv ([CInv (t = MSG_WTX , h = 0xff00ff00 )]))
215
- peer .wait_until (lambda : peer .tx_getdata_count >= 1 , timeout = 1 )
216
- with p2p_lock :
217
- assert_equal (peer .tx_getdata_count , 1 )
221
+ peer .sync_with_ping ()
222
+ if preferred :
223
+ peer .wait_until (lambda : peer .tx_getdata_count >= 1 , timeout = 1 )
224
+ else :
225
+ with p2p_lock :
226
+ assert_equal (peer .tx_getdata_count , 0 )
227
+ self .nodes [0 ].setmocktime (mock_time + NONPREF_PEER_TX_DELAY )
228
+ peer .wait_until (lambda : peer .tx_getdata_count >= 1 , timeout = 1 )
218
229
219
230
def test_txid_inv_delay (self , glob_wtxid = False ):
220
231
self .log .info ('Check that inv from a txid-relay peers are delayed by {} s, with a wtxid peer {}' .format (TXID_RELAY_DELAY , glob_wtxid ))
@@ -261,6 +272,7 @@ def run_test(self):
261
272
self .test_disconnect_fallback ()
262
273
self .test_notfound_fallback ()
263
274
self .test_preferred_inv ()
275
+ self .test_preferred_inv (True )
264
276
self .test_txid_inv_delay ()
265
277
self .test_txid_inv_delay (True )
266
278
self .test_large_inv_batch ()
0 commit comments