For privacy reasons a partly randomized FeeFilter is sent to peers:
There are privacy concerns with deanonymizing a node by the fact that it is broadcasting identifying information about its mempool min fee. To help ameliorate this concern, the implementation quantizes the filter value broadcast with a small amount of randomness, in addition, the messages are broadcast to different peers at individually randomly distributed times.
https://github.com/bitcoin/bips/blob/master/bip-0133.mediawikiI have several questions regarding the issue:
1. Isn't the
mempool message the easiest way to find out the fee? Just find the lowest tx and compare it to your mempool that includes all transactions.
2. Another way is using
reject messages. Just monitor over a while all REJECT_INSUFFICIENTFEE messages and you will find out the min fee.
3. Why is this a privacy issue? If the mempool is limited a bad actor could probably calculate the maxmempool setting as well but he can get that much easier via the mempool message. Non limiting nodes send out the original fee anyway (correct me if I am wrong):
filterToSend = std::max(filterToSend, ::minRelayTxFee.GetFeePerK());