<div dir="ltr"><div><div>I feel like a lot of this will be driven by implementation, and costs of changing the implementation.  Additional look-backs are of course doable, but they incur some disk I/O costs.  The fields available in memory for each mempool TX are<br>

<br></div><div>    uint256 tx_hash; // hash of next field<br></div><div>    CTransaction tx;<br>    int64_t nFee; // Cached to avoid expensive parent-transaction lookups<br>    size_t nTxSize; // ... and avoid recomputing tx size<br>

    int64_t nTime; // Local time when entering the mempool<br>    double dPriority; // Priority when entering the mempool<br>    unsigned int nHeight; // Chain height when entering the mempool<br><br></div>As a first pass, we may prune the mempool without additional db lookups quite easily based on time criteria.  Or, additional in-memory indexes may be constructed to maintain hashes ordered by priority/fees.<br>

<br></div><div>Those techniques seem likely to be attempted before resorting to looking back two or three TXs deep at coin age -- which I admit is an interesting metric.<br></div><div><div><div><div class="gmail_extra"><br>

-- <br>Jeff Garzik<br>Bitcoin core developer and open source evangelist<br>BitPay, Inc.      <a href="https://bitpay.com/" target="_blank">https://bitpay.com/</a>
</div></div></div></div></div>