-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
route blinding: use all valid routes during path construction iteration instead of the currently capped set #9076
Comments
Good idea, so you mean we should immediately when having the blinded path check if we can build the whole route before exiting the route search, so we make sure the returned routes are also possible to use ? |
@ziggie1984 - yeah, or we make a way for the logic that is doing the iterating and building to query like |
Do you mean that it might return less than MaxNumPaths routes without exhausting all valid routes? Maybe I can help to fix it! |
@MPins - im saying it currently does the following:
This is not ideal cause we then we can easily run out of paths to try. Instead, the MaxNumPaths restriction should be applied later on instead. So when selecting candidates, we should not limit at that point. |
Got it. If nobody had started working on it, I can give a try. |
This is for my education...why do we have a limit capped by |
otherwise the invoice would become super huge, there might be a huge number of paths to a particular node. Moreover we select the paths with the most probability at first so further paths have an even lower chance to succeed in making the payment so it makes sense to limit this number from this pov as well. |
Today, if we are constructing set of blinded payment paths to add to an invoice, we:
MaxNumPaths
routes to our own node that are considered blinded path candidates.blindedpath.BuildBlindedPaymentPaths
which attempts to use each path to build a valid blinded pathblindedpath.BuildBlindedPaymentPaths
finds that it cannot use one of the paths it was given, it skips it and moves on to the next oneThis order of operations means that we may run out of paths in
blindedpath.BuildBlindedPaymentPaths
and we wont go back and try some of the paths that we initially found byChannelRouter
'sfindBlindedPaths
.What we instead want is for
blindedpath.BuildBlindedPaymentPaths
to be able to continue with the iteration through possibly all of the routes found infindBlindedPaths
until it reaches the max specified byMaxNumPaths
.The text was updated successfully, but these errors were encountered: