-
Notifications
You must be signed in to change notification settings - Fork 937
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
Renepay handle non mpp invoices #8155
Open
Lagrang3
wants to merge
23
commits into
ElementsProject:master
Choose a base branch
from
Lagrang3:renepay-handle-non-mpp-invoices
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Renepay handle non mpp invoices #8155
Lagrang3
wants to merge
23
commits into
ElementsProject:master
from
Lagrang3:renepay-handle-non-mpp-invoices
Conversation
This file contains 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
Changelog-Added: renepay: use external call to [askrene-]getroutes instead of computing routes internally. Signed-off-by: Lagrang3 <[email protected]>
Use askrene API to account for route-hints and blinded paths. Changelog-None. Signed-off-by: Lagrang3 <[email protected]>
Changelog-None. Signed-off-by: Lagrang3 <[email protected]>
The execution of the failure notification makes calls to askrene to disable or bias channels that have returned weird errors. Changelog-None. Signed-off-by: Lagrang3 <[email protected]>
Changelog-None. Signed-off-by: Lagrang3 <[email protected]>
Remove unnecessary rpc call to waitblockheight at the default payment's ending. Changelog-None. Signed-off-by: Lagrang3 <[email protected]>
Changelog-None. Signed-off-by: Lagrang3 <[email protected]>
Changelog-None. Signed-off-by: Lagrang3 <[email protected]>
Remove the MCF solver from renepay. Offload the route computation on askrene. Changelog-None Signed-off-by: Lagrang3 <[email protected]>
Changelog-None Signed-off-by: Lagrang3 <[email protected]>
Use plugin_get_data API and make less use of the access to the global plugin state when possible. Changelog-None Signed-off-by: Lagrang3 <[email protected]>
Sending requests with batches allow us to avoid race conditions when the payment plugin goes to the next state before the sendpay RPC have not yet completed. Changelog-None Signed-off-by: Lagrang3 <[email protected]>
Use askrene-reserve API to lock-in the liquidity of the channels in use for pending payment route. Changelog-None Signed-off-by: Lagrang3 <[email protected]>
Use askrene-unreserve to remove reserved liquidity associated with routes that have completed, either by success or failure. Changelog-None Signed-off-by: Lagrang3 <[email protected]>
Make extensive use of rpc batches so that we ensure all request have been processed before the notification is closed as handled. Changelog-None Signed-off-by: Lagrang3 <[email protected]>
Use askrene-inform-channel to update the knowledge of the liquidity when a payment attempt fails. Changelog-None Signed-off-by: Lagrang3 <[email protected]>
Splig send routes into two steps: 1. reserve liquidity, 2. call sendpay Changelog-None Signed-off-by: Lagrang3 <[email protected]>
struct rpcaction: encapsulates the concept of an RPC action, ie. an RPC call object. It can be attached to an rpcbatch. Changelog-None. Signed-off-by: Lagrang3 <[email protected]>
Calling askrene-unreserve using rpcActions. Either: - after geting a fail notification, - or success notification, - or if the route destructor is called. Changelog-None Signed-off-by: Lagrang3 <[email protected]>
- skip test on local htlc max limits which is not supported by askrene, on privacy leak issue. - skip very extreme flow cases, where sats per HTLC in reserve must be taken into account. - adjust the expected error response for messages coming from askrene. - on getroutes failure return a command fail with the same error code as getroutes response. Changelog-None Signed-off-by: Lagrang3 <[email protected]>
Changelog-None Signed-off-by: Lagrang3 <[email protected]>
that broke because of layers created by renepay Changelog-None Signed-off-by: Lagrang3 <[email protected]>
bd0b79f
to
ff05672
Compare
I've added a regression test for this fix. But I noticed that even if the receiving node has MPP disabled with |
ff05672
to
fe8db11
Compare
Changelog-Fixed: renepay: Now able to handle invoices that don't support Multi-Path-Payments. Signed-off-by: Lagrang3 <[email protected]>
fe8db11
to
4a88991
Compare
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.
After adding a layer
auto.no_mpp_support
toaskrene
(see PR #8059), now it is possible toimpose a single path solution constraint to getroutes.
This PR uses that constraint to correctly pay using single path solutions for invoices that do not support MPP.
Depends on #8049.
Changelog-Fixed: renepay: Now able to handle invoices that don't support Multi-Path-Payments.