Changeset View
Changeset View
Standalone View
Standalone View
test/functional/abc_p2p_compactproofs.py
Show First 20 Lines • Show All 492 Lines • ▼ Show 20 Lines | def test_send_missing_proofs(self): | ||||
# Odds | # Odds | ||||
check_received_proofs([i for i in range(numof_proof) if i % 2 == 1]) | check_received_proofs([i for i in range(numof_proof) if i % 2 == 1]) | ||||
# All | # All | ||||
check_received_proofs(range(numof_proof)) | check_received_proofs(range(numof_proof)) | ||||
self.log.info( | self.log.info( | ||||
"Check the node will not send the proofs if not requested before the timeout elapsed") | "Check the node will not send the proofs if not requested before the timeout elapsed") | ||||
# Disconnect the peers | |||||
for peer in node.p2ps: | |||||
peer.peer_disconnect() | |||||
peer.wait_for_disconnect() | |||||
mocktime = int(time.time()) | mocktime = int(time.time()) | ||||
node.setmocktime(mocktime) | node.setmocktime(mocktime) | ||||
slow_peer = node.add_p2p_connection(ProofStoreP2PInterface()) | slow_peer = ProofStoreP2PInterface() | ||||
node.add_outbound_p2p_connection( | |||||
slow_peer, | |||||
p2p_idx=0, | |||||
connection_type="avalanche", | |||||
services=NODE_NETWORK | NODE_AVALANCHE, | |||||
) | |||||
slow_peer.wait_until( | |||||
lambda: slow_peer.last_message.get("getavaproofs")) | |||||
slow_peer.nodeid = node.getpeerinfo()[-1]['id'] | slow_peer.nodeid = node.getpeerinfo()[-1]['id'] | ||||
_ = request_proofs(slow_peer) | _ = request_proofs(slow_peer) | ||||
# Elapse the timeout | # Elapse the timeout | ||||
mocktime += AVALANCHE_AVAPROOFS_TIMEOUT + 1 | mocktime += AVALANCHE_AVAPROOFS_TIMEOUT + 1 | ||||
node.setmocktime(mocktime) | node.setmocktime(mocktime) | ||||
with node.assert_debug_log([f"Cleaning up timed out compact proofs from peer {slow_peer.nodeid}"]): | |||||
node.mockscheduler(AVALANCHE_MAX_PERIODIC_NETWORKING_INTERVAL) | node.mockscheduler(AVALANCHE_MAX_PERIODIC_NETWORKING_INTERVAL) | ||||
# Periodic compact proofs requests are sent in the same loop than the | |||||
# cleanup, so when such a request is made we are sure the cleanup did | |||||
# happen. | |||||
slow_peer.wait_until( | |||||
lambda: slow_peer.message_count.get("getavaproofs") > 1) | |||||
req = msg_avaproofsreq() | req = msg_avaproofsreq() | ||||
req.indices = range(numof_proof) | req.indices = range(numof_proof) | ||||
slow_peer.send_and_ping(req) | slow_peer.send_and_ping(req) | ||||
# Check we get no proof | # Check we get no proof | ||||
assert_equal(len(slow_peer.get_proofs()), 0) | assert_equal(len(slow_peer.get_proofs()), 0) | ||||
def test_compact_proofs_download_on_connect(self): | def test_compact_proofs_download_on_connect(self): | ||||
▲ Show 20 Lines • Show All 73 Lines • Show Last 20 Lines |