Lightning Network – How does LND ensure that the same path is not reused for a retry after the first payment fails?
Let’s assume an LND node A
I want to send a payment to another node D
. that much pathfind
Paths were found using a Dijkstra-based algorithm. B
and C
Start payment. It fails like this: B -> C
Insufficient balance/bandwidth.
Will LND fail the payment or retry through a different route? How do you remember failed paths?
Follow-up question: Can node A
Did you figure out which edge failed?
edit: To be more clear, in my example, the capacity of all channels is 0.5 BTC, and all channels have an even balanced distribution of this capacity (0.25, 0.25). B -> C
This is (0, 0.5) so B
We currently cannot send payments to the following addresses: C
.
The balance status (here: (0, 0.5)) is private, but the capacity of all channels is public.
As the routing calculations are completed A
(source routing), the algorithm initially has no knowledge of the balance. If the A
If you try to send just 0.001 BTC, the routing algorithm will find a path, but it won’t reach your goal.