-
Notifications
You must be signed in to change notification settings - Fork 902
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
pay: Remove presplitter #6400
pay: Remove presplitter #6400
Conversation
Hit a known flake which I've got a fix for in another PR. Could use a Changelog-Changed: line though? Ack 05060fa |
There is a |
These tests make assumptions about the presplitter behavior which we'll remove in the next commit. We remove them here so we don't cause temporary breaks in the git history.
The presplitter modifier would split a payment before trying the first attempt based on some common sizes. Its goal was to have smaller parts in flight over different paths, in order to make it more difficult for a forwarding node to learn payment amount. However it was causing some issues for direct payments, and estimates on spendable amounts which considers only the first HTLC being added, but presplitter would always cause multiple HTLCs to be kicked off, causing the estimate to be off. Removing the presplitter fixes this, making draining channels easier, and worse success rates, due to more HTLCs in flight directly impacting the changes of getting stuck. Changelog-Removed: pay: `pay` no longer splits based on common size, as it was causing issues in various scenarios.
05060fa
to
312d57c
Compare
Rebased on top of |
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.
ACK 312d57c
I like this simplification. It was the root cause of some problems, when this is merged, I will walk through the issues and see if we solve them!
The presplitter modifier would split a payment before trying the first
attempt based on some common sizes. Its goal was to have smaller parts
in flight over different paths, in order to make it more difficult for
a forwarding node to learn payment amount. However it was causing some
issues for direct payments, and estimates on spendable amounts which
considers only the first HTLC being added, but presplitter would
always cause multiple HTLCs to be kicked off, causing the estimate to
be off.
Removing the presplitter fixes this, making draining channels easier,
and worse success rates, due to more HTLCs in flight directly
impacting the changes of getting stuck.