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



Summary:

The message discusses a proposed dynamic approach to the issue of transaction relay fees. Currently, each additional transaction relayed results in a doubling of the fee/kB and is not considered very dynamic. Instead, a more dynamic fee approach is proposed that would ratchet upward the fee/kB for each additional tx relayed. The proposal suggests that relay nodes be confirming and discarding while wallet nodes retain transactions they've relayed using a mempool. Relay nodes do not need a mempool but need some mechanism to avoid DoS issues. Wallet nodes can use the mempool to estimate fees. To mitigate DoS concerns, it is suggested that there be some per-UTXO limit on bandwidth relayed, which can be accomplished by maintaining some kind of per-UTXO record of bandwidth used. It is suggested that IsStandard() be removed pretty much entirely with the right increasingly expensive "replacement" policy, relying on it alone to provide anti-DoS. Miners would still want to have a mempool, but the codebase may prove simpler if it doesn't have to work double-duty for relaying as well. Some questions remain about how the mempool will be limited, what is the mechanism by which the UTXO set is stored (or proposed to be stored), how dynamic fee determinations will be calculated, and the general purpose messaging network.


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