Around block 564815 (2019-02-26 23:40 UTC), the mempool was empty. I noticed that my two nodes are giving very different estimates for transaction fees to be used:
Node 1
- Version: 17.1.0
- Number of peers: 21
- Synched for: about three weeks
- Prunned: 3GB
// see how many transactions are there in the mempool >bitcoin-cli getrawmempool | wc -l 4027 >bitcoin-cli estimatesmartfee 5 { “feerate”: 0.00021195, “blocks”: 5 } >bitcoin-cli estimatesmartfee 5 ECONOMICAL { “feerate”: 0.00009715, “blocks”: 5 }
Node 2
- Version: Bitcoin core 17.0.0
- Number of peers: 8
- Synched for: about 5 hours
- Prunned: 3GB
# see how many transactions are there in the mempool >bitcoin-cli getrawmempool | wc -l 3999 >bitcoin-cli estimatesmartfee 5 { “feerate”: 0.00008823, “blocks”: 5 } >bitcoin-cli estimatesmartfee 5 ECONOMICAL { “feerate”: 0.00001000, “blocks”: 5 }
The node that has been synchronized for only 5 hours and is less well connected seems to be estimating the fee better than the one that has been synchronized for three weeks. Why is the "best" node the one that gives the worst fee? Why are the fee estimates so different and what can be done to make them more accurate?