I’m not sure how users of bitcoind are expected to figure out which transactions could be replaced via opt-in RBF, so I took a first stab at exposing that via RPC. I’ve started by adding it to getrawmempool
when called with the verbose=true argument. I’ve also exercised that code with some small modifications to the replace-by-fee.py
rpc test.
I’d appreciate some specific feedback on the following:
- Which RPC calls should return this information?
- Would it be helpful to distinguish between a transaction signaling RBF itself (with
nSequence < 0xfffffffe
on one of its inputs), versus inheriting the signal from some unconfirmed parent? - The answer can only be definitive for transactions that are in the mempool; transactions that are not in the mempool might have unknown parents which could signal RBF and we wouldn’t know it. Is it worth trying to answer this question for transactions not in the mempool, and if so, what information should be returned?