]> git.bitcoin.ninja Git - rust-lightning/commit
[router] Do not fail if we are exactly (or 3x) limited by a maximum
authorMatt Corallo <git@bluematt.me>
Sat, 27 Mar 2021 02:52:46 +0000 (22:52 -0400)
committerMatt Corallo <git@bluematt.me>
Sat, 27 Mar 2021 02:52:46 +0000 (22:52 -0400)
commit0c97e510d5f74092bea51a25d63ee38c67868547
tree57399c18b442fd4a7932f6b7836118f4c2ebca94
parentb70b1c632866ebd50cff1bf53ce3d5557a3bb97a
[router] Do not fail if we are exactly (or 3x) limited by a maximum

The new MPP routing algorithm attempts to build paths with a higher
value than our payment to find paths which may allow us to pay a
fee to meet an htlc_minimum limit. This is great if we're
min-bounded, however it results in us rejecting paths where we are
bounded by a maximum near the end of the path, with fees, and then
bounded by a minimum earlier in the path. Further, it means we will
not find the cheapest path where paths have a lower relative fee
but a higher absolute fee.

Instead, we calculate routes using the actual amount we wish to
send. To maintain the previous behavior of searching for cheaper
paths where we can "pay the difference" to meet an htlc_minimum, we
detect if we were minimum-bounded during graph walking and, if we
are, we walk the graph again with a higher value.
lightning/src/routing/router.rs