Allow splicing on non dual-funded channels #2727
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We currently allow splicing on top of a channel that was created without using dual funding, but it results in an incorrect channel reserve being used post-splice.
Another approach would be to move the channel reserve field to each commitment instead of having the initial value in
localParams
andremoteParams
. This way we would always explicitly store the value for local/remote reserves, which may make custom channel reserves (0-reserve) more explicitly dealt with as well. But the issue is that we still need to keep track of the requested values fromopen_channel
/accept_channel
and propagate them until aCommitment
is created, which requires a lot of codec changes without bringing much value. I think we should go with this simple change for now and we can always introduce per-commitment reserves later if it becomes really necessary.