📅 Original date posted:2018-03-01
📝 Original message:
My understanding is that the best strategy for choosing a route to send
funds over is to determine all possible routes, rank them by estimated fees
based on channel announcements and number of hops, then try them
successively until one works.
It seems inefficient to me to actually do a full HTLC commitment handshake
on each hop just to find out that the last hop in the route didn't have
sufficient remaining capacity in the first place. Depending on how many
people are using the network, I could also forsee situations where this
creates more payment failures because bandwidth is locked up in HTLCs that
are about to fail anyway.
One idea that would likely help is the ability to send a ping over an onion
route asking "does every hop have capacity to send X msat?" Every hop would
forward the onion request if the answer is yes, or immediately send the
response back up the circuit if the answer is no. This should reveal no
additional information about the channel capacities that the sender
couldn't determine by sending a test payment to themself (assuming they
could find a loop). Additionally, the hops could respond with the latest
fee rate in case channel updates are slow to propagate.
The main benefit is that this should make it quicker to send a successful
payment because latency is lower than sending an actual payment and the
sender could ping all possible routes in parallel, whereas they can't send
multiple payments in parallel. The main downside I can think of is that, by
the same token, it is faster and cheaper for someone to extract information
about channel capacities on the network with a binary search.
-jimpo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20180301/55533bfa/attachment.html>