Description
Consider not defaulting to the LSP heuristic in case the assumed LSP Destination is not known to the graph.
Separated it out from #9991
Context from the Boltz team:
Because it's a special routing hint, see https://docs.boltz.exchange/api/magic-routing-hints. I think it makes a lot of sense instead of failing probes to non-existent routing hints to drop the assumption that this is an LSP. And instead probe the invoice's node. Just like Ziggie said.
Let me add some background info of how we even got here: It started out with the issue that Binance Lightning withdrawals into Boltz swaps were failing. We then went on a very tedious journey to find out that they do probing, figured out which exact probing method in LND Binance was using (EstimateRouteFee
with payment_request
+ timeout
, NOT dest
+amt_sat
) to then read LND's code to find out that it assumes that our Magic Routing Hints, which are present in a lot of swap invoices by now, is seen as a LSP and thus make the probe and thus the withdrawal fail.
Setting LSP to false if the routing hint is not a known public node solves the issue and hopefully saves this incredible debug timesink to anyone who does similar things in the future.
Hope that helps!
Originally posted by @kilrau in #9991 (comment)