Avoid premature channel exhaustion for custom channels#8804
Avoid premature channel exhaustion for custom channels#8804GeorgeTsagk wants to merge 1 commit intolightningnetwork:0-19-stagingfrom
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.
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.gostate 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.