def METHOD_NAME(self):
    node0 = self.nodes[0].add_p2p_connection(P2PInterface())
    # Set node time to 60 days ago
    self.nodes[0].setmocktime(int(time.time()) - 60 * 24 * 60 * 60)
    # Generating a chain of 10 blocks
    block_hashes = self.generatetoaddress(self.nodes[0], 10, self.nodes[0].get_deterministic_priv_key().address)
    # Create longer chain starting 2 blocks before current tip
    height = len(block_hashes) - 2
    block_hash = block_hashes[height - 1]
    block_time = self.nodes[0].getblockheader(block_hash)["mediantime"] + 1
    new_blocks = self.build_chain(5, block_hash, height, block_time)
    # Force reorg to a longer chain
    node0.send_message(msg_headers(new_blocks))
    node0.wait_for_getdata([x.sha256 for x in new_blocks])
    for block in new_blocks:
        node0.send_and_ping(msg_block(block))
    # Check that reorg succeeded
    assert_equal(self.nodes[0].getblockcount(), 13)
    stale_hash = int(block_hashes[-1], 16)
    # Check that getdata request for stale block succeeds
    self.send_block_request(stale_hash, node0)
    node0.wait_for_block(stale_hash, timeout=3)
    # Check that getheader request for stale block header succeeds
    self.send_header_request(stale_hash, node0)
    node0.wait_for_header(hex(stale_hash), timeout=3)
    # Longest chain is extended so stale is much older than chain tip
    self.nodes[0].setmocktime(0)
    block_hash = int(self.generatetoaddress(self.nodes[0], 1, self.nodes[0].get_deterministic_priv_key().address)[-1], 16)
    assert_equal(self.nodes[0].getblockcount(), 14)
    node0.wait_for_block(block_hash, timeout=3)
    # Request for very old stale block should now fail
    with p2p_lock:
        node0.last_message.pop("block", None)
    self.send_block_request(stale_hash, node0)
    node0.sync_with_ping()
    assert "block" not in node0.last_message
    # Request for very old stale block header should now fail
    with p2p_lock:
        node0.last_message.pop("headers", None)
    self.send_header_request(stale_hash, node0)
    node0.sync_with_ping()
    assert "headers" not in node0.last_message
    # Verify we can fetch very old blocks and headers on the active chain
    block_hash = int(block_hashes[2], 16)
    self.send_block_request(block_hash, node0)
    self.send_header_request(block_hash, node0)
    node0.sync_with_ping()
    self.send_block_request(block_hash, node0)
    node0.wait_for_block(block_hash, timeout=3)
    self.send_header_request(block_hash, node0)
    node0.wait_for_header(hex(block_hash), timeout=3)