Description
Overview
Support fee-bumping for interactively constructed transactions as described in the spec.
Each RBF attempt would need to double-spend any previous interactive transaction for that channel.
Also importantly from the spec,
Peers can use different values in
tx_init_rbf.funding_output_contribution
andtx_ack_rbf.funding_output_contribution
from the amounts transmitted inopen_channel2
andaccept_channel2
: they are allowed to change how much they wish to commit to the funding output.
so we'd need to ensure we update channel capacity and other relevant details to reflect a possible new funding output depending on which transaction confirms.
In dual-funding, since the channel ID is independent of the funding txid, all attempts can be mapped to that key and persisted in some "funding fee bumps" attempts map.
In splicing the same idea should apply as we already have an existing channel with a fixed channel ID.
This work at least depends on #3137.
Requirements
- API for user-initiated fee-bumping attempts if channel initiator (only initiator can request an RBF attempt per the spec).
- Each attempt must double-spend each previous attempt.
- Tracking and persistence for every attempt.