Fix plain channel interoperability with stock LDK - #36
Open
bitwalt wants to merge 1 commit into
Open
Conversation
bitwalt
force-pushed
the
rgb-stock-ldk-interop
branch
from
August 12, 2026 21:52
58dba6f to
fc3d233
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #35.
Plain channels currently carry RGB-specific transaction and wire changes even when no RGB asset is present, which makes them incompatible with stock LDK peers.
Changes
rgb_paymentas an optional odd TLV so stock peers can ignore itRGB channels retain their existing commitment weight and wire fields.
The colored fee helper remains in
rgb_utils, andFundingScopepasses whether the channel is colored intoSpecTxBuilder.get_next_commitment_statsand commitment construction therefore use the same fee calculation.Validation
RGB-Tools/rgb-lightning-node#149 exercises the changes against a stock
ldk-nodepeer:Local validation:
cargo check -p lightning --features electrumandgit diff --check.Compatibility
This changes the wire and commitment transaction encoding used by deployed nodes. Fixed and unfixed peers should not operate the same channels across the upgrade; a release carrying this needs a coordinated upgrade. Persisted channel state itself is unchanged.