Do we really need a mempool? (for relay nodes)



Summary:

Relay nodes may not need to keep a record of the transactions they've relayed. Unconfirmed txs spending other unconfirmed txs can be handled by creating packages of transactions, evaluated as a whole. To mitigate DoS concerns, there must be some per-UTXO limit on bandwidth relayed, but this task can be accomplished by simply maintaining some kind of per-UTXO record of bandwidth used. It's easy to limit bandwidth moment to moment by asking peers for highest fee/KB transactions they advertise first, stopping when our bandwidth limit is reached. Removing IsStandard() entirely with the right increasingly expensive "replacement" policy could provide anti-DoS. Miners would still want to have a mempool, but that codebase may prove simpler if it doesn't have to work double-duty for relaying as well.


Updated on: 2023-06-10T02:57:47.881396+00:00