Skip to content

Commit 1f352cf

Browse files
committed
Merge bitcoin/bitcoin#28485: test: Extends MEMPOOL msg functional test
97c0dfa test: Extends MEMPOOL msg functional test (Sergi Delgado Segura) Pull request description: Currently, p2p_filter.py::test_msg_mempool is not testing much. This extends the tests so the interaction between sending `MEMPOOL` messages with a filter that does not include all transactions in the mempool reacts, plus how it interacts with `INV` messages, especially after the changes introduced by #27675 ACKs for top commit: instagibbs: ACK bitcoin/bitcoin@97c0dfa theStack: re-ACK 97c0dfa Tree-SHA512: 746fdc867630f40509e6341f484a238dd855ae6d1be5eca121974491e4ca272dee88af4b90dda55ea9a5a19cbff198fa91ffa0c5bf1ddf0232b2c1b215b05b9a
2 parents a7f4f1a + 97c0dfa commit 1f352cf

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

test/functional/p2p_filter.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
COIN,
1212
MAX_BLOOM_FILTER_SIZE,
1313
MAX_BLOOM_HASH_FUNCS,
14+
MSG_WTX,
1415
MSG_BLOCK,
1516
MSG_FILTERED_BLOCK,
1617
msg_filteradd,
@@ -135,14 +136,22 @@ def test_msg_mempool(self):
135136
self.log.info("Check that a node with bloom filters enabled services p2p mempool messages")
136137
filter_peer = P2PBloomFilter()
137138

138-
self.log.debug("Create a tx relevant to the peer before connecting")
139-
txid = self.wallet.send_to(from_node=self.nodes[0], scriptPubKey=filter_peer.watch_script_pubkey, amount=9 * COIN)["txid"]
139+
self.log.info("Create two tx before connecting, one relevant to the node another that is not")
140+
rel_txid = self.wallet.send_to(from_node=self.nodes[0], scriptPubKey=filter_peer.watch_script_pubkey, amount=1 * COIN)["txid"]
141+
irr_result = self.wallet.send_to(from_node=self.nodes[0], scriptPubKey=getnewdestination()[1], amount=2 * COIN)
142+
irr_txid = irr_result["txid"]
143+
irr_wtxid = irr_result["wtxid"]
140144

141-
self.log.debug("Send a mempool msg after connecting and check that the tx is received")
145+
self.log.info("Send a mempool msg after connecting and check that the relevant tx is announced")
142146
self.nodes[0].add_p2p_connection(filter_peer)
143147
filter_peer.send_and_ping(filter_peer.watch_filter_init)
144148
filter_peer.send_message(msg_mempool())
145-
filter_peer.wait_for_tx(txid)
149+
filter_peer.wait_for_tx(rel_txid)
150+
151+
self.log.info("Request the irrelevant transaction even though it was not announced")
152+
filter_peer.send_message(msg_getdata([CInv(t=MSG_WTX, h=int(irr_wtxid, 16))]))
153+
self.log.info("We should get it anyway because it was in the mempool on connection to peer")
154+
filter_peer.wait_for_tx(irr_txid)
146155

147156
def test_frelay_false(self, filter_peer):
148157
self.log.info("Check that a node with fRelay set to false does not receive invs until the filter is set")

0 commit comments

Comments
 (0)