Skip to content
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

Dust HTLCs on closed channels are always retryable #1653

Closed
TheBlueMatt opened this issue Aug 7, 2022 · 0 comments · Fixed by #1691
Closed

Dust HTLCs on closed channels are always retryable #1653

TheBlueMatt opened this issue Aug 7, 2022 · 0 comments · Fixed by #1691
Milestone

Comments

@TheBlueMatt
Copy link
Collaborator

At #1495 (comment) @wpaulino pointed out that we don't push IrrevocablyResolvedHTLCs onto our resolution list for dust HTLCs. This, however, results in dust HTLCs which are a part of an outbound payment being retryable on restart after they resolve as they are always included in the get_pending_outbound_htlcs return value. This isn't exactly likely, but it is theoretically possible that a user sends a dust-HTLC-payment, the channel closes, after the commitment transaction has reached six blocks the user retries the payment, which completes, then the user restarts and retries the payment again, which LDK will allow them to do because it loads the payment info back from the monitor.

@TheBlueMatt TheBlueMatt added this to the 0.0.111 milestone Aug 7, 2022
TheBlueMatt added a commit to TheBlueMatt/rust-lightning that referenced this issue Sep 2, 2022
Previously, we wouldn't mark a dust HTLC as permanently resolved if
the commitment transaction went on chain. This resulted in us
always considering the HTLC as pending on restart, when we load the
pending payments set from the monitors.

Fixes lightningdevkit#1653.
TheBlueMatt added a commit to TheBlueMatt/rust-lightning that referenced this issue Sep 6, 2022
Previously, we wouldn't mark a dust HTLC as permanently resolved if
the commitment transaction went on chain. This resulted in us
always considering the HTLC as pending on restart, when we load the
pending payments set from the monitors.

Fixes lightningdevkit#1653.
optout21 pushed a commit to optout21/rust-lightning that referenced this issue Jul 24, 2023
Previously, we wouldn't mark a dust HTLC as permanently resolved if
the commitment transaction went on chain. This resulted in us
always considering the HTLC as pending on restart, when we load the
pending payments set from the monitors.

Fixes lightningdevkit#1653.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant