-
Notifications
You must be signed in to change notification settings - Fork 366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support RBF for interactively constructed transactions #3281
Comments
Some ideas for RBF:
In more details:
Additional important considerations:
|
Thanks for thinking a bit about the design! This implementation sounds doable but (at least from working on the dual-funding spec) I'm not entirely convinced these RBF transactions should be stored at the channel/channel phase level. Since details of these transactions will need to be persisted that might make for an awkward The distinction made by the Funded vs FundingPending variants seems helpful, but I do believe (partly my fault" that "funding pending" has become a bit overloaded as a term now :(. At least that's "just" a naming problem that can be solved. I still believe it might be better to have a new map at the |
RBF attempts differ only in transaction details, but I am also considering splicing, where pre-splice channel and post-splice channel -- with possibly multiple variants -- have to considered together. Pre-splice channel differs in other parameters as well, hence I was thinking of a more general approach. But this may not be the right one. In the meantime I also found a difficulty with my earlier proposal: the RBF variants can contain a first negotiated variant, and a second under-negotiation variant, which require different contexts ( Another idea is to carve-out transaction-related info from |
A current proposal for channel states/phases is described here: https://gist.github.com/optout21/2ead7a0f4e2c3d34aed1c9703c8cfb39 |
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,
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
The text was updated successfully, but these errors were encountered: