user109364: According to https://github.com/bitcoin/bitcoin/blob/master/src/net_processing.cpp#L3775-L3801, it seems like the mempool message is only responded to in certain cases. Can someone help understand how this works and why a full node would not always respond to this message? Is it being deprecated?
I'm looking for ways to estimate fees through the p2p layer, and getting the mempool content seems like the best option so far, if nodes reliably reply to the message.

user24925: Full nodes have absolutely no use for the mempool message, it is vestigial from bip35 and has had a history of causing privacy leaks due to its poor implementation. It has previously been used to bypass transaction trickling, or just cause an enormous amount of waste data transfer. Modern versions of Bitcoin Core do not ship with bip37 enabled, which means they will not respond to the message without configuration changes.
It would not be a good solution for attempting to estimate fees regardless, as you would cause potentially gigabytes of transfer of transactions you have absolutely no way of verifying. Estimating fees, by and large, needs to be delegated and there are many APIs for doing so.

109364: <p>According to <a href="https://github.com/bitcoin/bitcoin/blob/master/src/net_processing.cpp#L3775-L3801" rel="noreferrer">https://github.com/bitcoin/bitcoin/blob/master/src/net_processing.cpp#L3775-L3801</a>, it seems like the mempool message is only responded to in certain cases. Can someone help understand how this works and why a full node would not always respond to this message? Is it being deprecated?</p>
<p>I'm looking for ways to estimate fees through the p2p layer, and getting the mempool content seems like the best option so far, if nodes reliably reply to the message.</p>
 24925: <p>Full nodes have absolutely no use for the <code>mempool</code> message, it is vestigial from bip35 and has had a history of causing privacy leaks due to its poor implementation. It has previously been used to bypass transaction trickling, or just cause an enormous amount of waste data transfer. Modern versions of Bitcoin Core do not ship with <code>bip37</code> enabled, which means they will not respond to the message without configuration changes.</p>
<p>It would not be a good solution for attempting to estimate fees regardless, as you would cause potentially gigabytes of transfer of transactions you have absolutely no way of verifying. Estimating fees, by and large, needs to be delegated and there are many APIs for doing so.</p>
