Suppose LND node
A wants to send a payment to another node
pathfind algorithm based on Dijkstra found a route through
C and initiates the payment. It fails, as
B -> C does not have sufficient balance/bandwidth.
Will LND just fail the payment or try another time with a different route? How does it remember the failed route?
Follow-up question: Can node
A figure out which edge failed?
To be more clear, in my example, all channels have 0.5 BTC as capacity, and all of them have an equal balance distribution of this capacity (0.25, 0.25), except for
B -> C, which has (0, 0.5), so
B currently cannot send any payments to
The balance state (here: (0, 0.5)) is private, but the capacity of all channels is public.
As the routing computation is done in
A (source routing), the algorithm initially has no knowledge of the balances. If
A just wants to send 0.001 BTC, the routing algorithm will find the route, but it cannot reach the target.