Skip to content
Bitcoin Roots

v31.1-roots.1 · Commit 5: [PATCH 05/17] feat(net): preserve Roots peer controls and health view on v31

test/functional/rpc_getblockfrompeer.py

Before: test/functional/rpc_getblockfrompeer.py · After: test/functional/rpc_getblockfrompeer.py

File metadata
index 841cde0219733e35caee9b232281d1235a73abbc..585582bc57bc7701ed67bd063659962438c4f87a 100755

Download original patch · Release notes

Diff rows 1–13 of 13. Line numbers refer to the original before/after files.

+ Added− RemovedUnmarked lines are context.

Scroll the code area horizontally to read long lines. The two line-number columns refer to before and after.

test/functional/rpc_getblockfrompeer.py CHANGED
@@ -87,6 +87,13 @@ class GetBlockFromPeerTest(BitcoinTestFramework):
87
87
  presegwit_peer_id = peers[1]["id"]
88
88
  assert_raises_rpc_error(-1, "Pre-SegWit peer", self.nodes[0].getblockfrompeer, short_tip, presegwit_peer_id)
89
89
 
90
+ self.log.info("Duplicate manual fetch from the same peer is rejected without resetting tracking")
91
+ stalled_peer = self.nodes[0].add_p2p_connection(P2PInterface())
92
+ stalled_id = self.nodes[0].getpeerinfo()[-1]['id']
93
+ assert_equal(self.nodes[0].getblockfrompeer(short_tip, stalled_id), {})
94
+ stalled_peer.sync_with_ping()
95
+ assert_raises_rpc_error(-1, "Already requested from this peer", self.nodes[0].getblockfrompeer, short_tip, stalled_id)
96
+
90
97
  self.log.info("Successful fetch")
91
98
  result = self.nodes[0].getblockfrompeer(short_tip, peer_0_peer_1_id)
92
99
  self.wait_until(lambda: self.check_for_block(node=0, hash=short_tip), timeout=1)