def METHOD_NAME(self):
    self.log.info("Generate a transaction on node 0")
    tx = self.nodes[0].createrawtransaction(
        inputs=[
            {  # coinbase
                "txid": self.nodes[0].getblock(self.nodes[0].getblockhash(1))["tx"][
                    0
                ],
                "vout": 0,
            }
        ],
        outputs={ADDRESS_BCRT1_UNSPENDABLE: 50 - 0.00025},
    )
    tx = self.nodes[0].signrawtransactionwithkey(
        hexstring=tx,
        privkeys=[self.nodes[0].get_genesis_keys().ownerPrivKey],
    )["hex"]
    ctx = FromHex(CTransaction(), tx)
    txid = int(ctx.rehash(), 16)
    self.log.info(
        "Announce the transaction to all nodes from all {} incoming peers, but never send it".format(
            NUM_INBOUND
        )
    )
    msg = msg_inv([CInv(t=1, h=txid)])
    for p in self.peers:
        p.send_message(msg)
        p.sync_with_ping()
    self.log.info("Put the tx in node 0's mempool")
    self.nodes[0].sendrawtransaction(tx)
    # Since node 1 is connected outbound to an honest peer (node 0), it
    # should get the tx within a timeout. (Assuming that node 0
    # announced the tx within the timeout)
    # The timeout is the sum of
    # * the worst case until the tx is first requested from an inbound
    #   peer, plus
    # * the first time it is re-requested from the outbound peer, plus
    # * 2 seconds to avoid races
    timeout = (
        2
        + (MAX_GETDATA_RANDOM_DELAY + INBOUND_PEER_TX_DELAY)
        + (GETDATA_TX_INTERVAL + MAX_GETDATA_RANDOM_DELAY)
    )
    self.log.info(
        "Tx should be received at node 1 after {} seconds".format(timeout)
    )
    self.sync_mempools(timeout=timeout)