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

Renepay use getroutes #8049

Draft
wants to merge 20 commits into
base: master
Choose a base branch
from

Conversation

Lagrang3
Copy link
Collaborator

@Lagrang3 Lagrang3 commented Feb 4, 2025

This PR removes the MCF code from renepay. Routes are computed using getroutes instead.

Depends on #7985 (merged)
Replaces #7633 (closed)
It would be nice to have on top of #7963 "temporary layers" and #8072 "bias stacking"

@Lagrang3 Lagrang3 marked this pull request as draft February 4, 2025 08:58
@Lagrang3 Lagrang3 force-pushed the renepay-use-askrene branch 3 times, most recently from 1062510 to b2fcf5f Compare February 10, 2025 10:14
@Lagrang3 Lagrang3 force-pushed the renepay-use-askrene branch 3 times, most recently from ac2e0b1 to c2925cf Compare February 20, 2025 07:45
@Lagrang3 Lagrang3 force-pushed the renepay-use-askrene branch from 304bf67 to 313aecf Compare February 27, 2025 10:12
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]>
not supported by askrene

Changelog-None

Signed-off-by: Lagrang3 <[email protected]>
@Lagrang3 Lagrang3 force-pushed the renepay-use-askrene branch from 313aecf to 2f08e74 Compare February 28, 2025 07:12
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 this pull request may close these issues.

1 participant