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

[feature]: option to send payment over disabled channels #9351

Open
hieblmi opened this issue Dec 12, 2024 · 6 comments
Open

[feature]: option to send payment over disabled channels #9351

hieblmi opened this issue Dec 12, 2024 · 6 comments
Labels
enhancement Improvements to existing features / behaviour gossip payments Related to invoices/payments

Comments

@hieblmi
Copy link
Collaborator

hieblmi commented Dec 12, 2024

Is your feature request related to a problem? Please describe.

A payee provides a last_hop to the payer over which it expects an incoming payment. The payee sees the channel as "disabled": false so expects the payment to succeed, but the payer, which isn't directly connected, sees "disabled": true for lncli getchaninfo <shortchan_id> for the exact pubkey policies.

Even after waiting for an extended period of time, gossip couldn't update the graph info on the payer side.

This causes degraded user experience because the receiver knows the provided last_hop is active.

Describe the solution you'd like

It would be nice if the payer could provide an option to SendPaymentV2 to include disabled channels into the payment route construction.
Currently inactive channels from the point of view of the payer are categorically dropped from the route construction as the observed log line CRTR: Skipped edge 248218048547323905 due to it being disabled indicates.

@hieblmi hieblmi added enhancement Improvements to existing features / behaviour payments Related to invoices/payments gossip labels Dec 12, 2024
@ziggie1984
Copy link
Collaborator

Yeah I think that's a good idea. Maybe also for sendtoroute I guess and also estimateroutingfee not only SendPaymentV2

@ziggie1984 ziggie1984 added the good first issue Issues suitable for first time contributors to LND label Dec 12, 2024
@Freedisch
Copy link

I would like to work on that seems like a good issue to start with

@yyforyongyu
Copy link
Member

I think we can already accomplish it by using SendToRoute with customized routes?

Even after waiting for an extended period of time, gossip couldn't update the graph info on the payer side.

The problem seems to be the payer's gossip fails to sync, which is the root cause of the issue that needs to be fixed.

Even if we want to enable this feature, the are a few open questions,

  1. how do we distinguish the "fake" disabled channels vs the "real" disabled channels? Which again needs a fix in the graph.
  2. if we could somehow supply a disabled edge, the pathing finding used in SendPayment is automatically managed, how can we insert this edge?

In any case I won't consider this as a beginner issue. And the issue can be mitigated via SendToRoute?

@yyforyongyu yyforyongyu removed the good first issue Issues suitable for first time contributors to LND label Dec 13, 2024
@ziggie1984
Copy link
Collaborator

The problem seems to be the payer's gossip fails to sync, which is the root cause of the issue that needs to be fixed.

I think sometimes the rate-limiting can be a problem which prevents gossip to reach the payer.

I think we can already accomplish it by using SendToRoute with customized routes?

Good point, what about adding a flag to also include disabled channels in the search when building a path via buildpath. There a route is returned which can than be used to via SendToRoute.
Rationale:
When a user decides to build a route and supplies puplic keys, he is pretty aware that he wants a route through this pks. I think there it makes sense to also include the disabled channels when trying to build a route.

However there is a workaround when this is merged, where the user could just supply a blinded path, whose edges are not checked during pathfinding of the receiver.

@ziggie1984
Copy link
Collaborator

I would like to work on that seems like a good issue to start with

I think this is still not a good issue to work on bc we first need to decide on a way to go @Freedisch here

@ZZiigguurraatt
Copy link

A payee provides a last_hop to the payer over which it expects an incoming payment.

You are talking about with route hints in the invoice, or some other way?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improvements to existing features / behaviour gossip payments Related to invoices/payments
Projects
None yet
Development

No branches or pull requests

5 participants