-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Avoid premature channel exhaustion for custom channels #8804
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
Avoid premature channel exhaustion for custom channels #8804
Conversation
In this commit we add a special path when adding or receiving htlcs in the channel state machine. If this channel is a custom channel and if also the htlc carries custom data (via the custom records field) then we want to compensate the dust amount that was sent over to the other side in order to avoid premature channel exhaustion.
Important Review skippedAuto reviews are limited to specific labels. Labels to auto review (1)
Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
|
||
// Construct the payment descriptor that will be used to append | ||
// to the remote log. | ||
remotePd := &PaymentDescriptor{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure if this should also be inside the if
body above?
I suppose the compensation only makes sense for dust, because if the sender defined an above-dust amount then maybe they actually want to forward that amount to the network.
Closing in favor of #9871 |
Description
This PR adds a special case in the
lnwallet/channel.go
state machine. For custom channels, when a custom wire blob is present we may want to compensate the htlc sats amount from the opposite side, in order to avoid premature channel exhaustion. This is caused because an above dust htlc amount must be always used, so that the htlc can always be materialized on chain in order to maintain the aux leaf data.