Package aware Fee estimator post cluster mempool

Interesting!

When suggesting the “fee estimation should use chunk feerates”, I had imagined it would just use our mempool’s clusters/chunks to determine those values.

But you’re right to point out that clustering/linearizing/chunking the block itself may yield different values. When cluster inclusion in a block doesn’t match “all chunks up to x” for some chunk x, the chunk feerates can differ. I’m not sure what to do about that.

  • The miner may simply not have had the same mempool as us, and it might be incorrect to use our own prediction for their behavior.
  • On the other hand, we also shouldn’t introduce a means for miners to influence our estimates unfairly - if they can cause our estimates to be off (significantly) by excluding some transactions, that may be an issue.
  • As you point out, we may not be able to discern the clusters/chunks miners used. Our (re)linearization of the block’s clusters may differ from their (it could be worse, but it could be better too). And at least initially post-cluster-mempool we may make mistakes by treating blocks as being cluster-mempool-based while miners use older or custom logic.

I think overall, it’s probably best to initially use our own (mempool) chunk feerate estimates (at the time the block is found). Our mempool is our best prediction of what the next block will be, so we should assume miners have access to it even though that’s not always exactly true.

1 Like