Relay nodes do not need a mempool, but do need some mechanism to avoid DoS issues. Wallet nodes can use the mempool for fee estimation (in addition to looking at past blocks). On 07/18/2015 11:52 AM, Peter Todd via bitcoin-dev wrote: > As in, do relay nodes need to keep a record of the transactions they've > relayed? Strictly speaking, the answer is no: one a tx is relayed modulo > DoS concerns the entire thing can be discarded by the node. (unconfirmed > txs spending other unconfirmed txs can be handled by creating packages > of transactions, evaluated as a whole) > > To mitigate DoS concerns, we of course have to have some per-UTXO limit > on bandwidth relayed, but that task can be accomplished by simply > maintaining some kind of per-UTXO record of bandwidth used. For instance > if the weighted fee and fee/KB were recorded, and forced to - say - > double for each additional tx relayed that spent a given UTXO you would > have a clear and simple upper limit of lifetime bandwidth. Equally 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. > > You probably could even remove IsStandard() pretty much entirely with > the right increasingly expensive "replacement" policy, relying on it > alone to provide anti-DoS. Obviously this would simplify some of the > debates around mining policy! This could even be re-used for scalable a > general-purpose messaging network paid by coin ownership if the UTXO set > is split up, and some kind of expiration over time policy is > implemented. > > Miners of course 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. > > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev