xpay: fakenet test: move funds when payment succeeds - #9282
Conversation
|
This is an extract of the logs |
|
Going through the logs of this test. Next, the payment that breaks the test is Next is that the cause of failure is a bottleneck channel At The payment succeeds and For A similar pattern is observed for the following payments At
At In the next attempt the But then getroutes does two weird things. It returns a path through Action points:
|
|
If I disable If askrene does nothing with We should
|
|
Over optimism happens because in theory and with the current knowledge we can route through So for the payment amount X we pay 0 probability cost (ie. 100% success), for the associated fees we pay a LOT
|
a21b88e to
a073517
Compare
Improved the fakenet simulation by moving funds after a payment succeeds. This triggers a bug in xpay. Changelog-None Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
When the known max and known min are about the same value, the probability cost of sending x=value is zero and MCF will try it. It doesn't take into account the possibility that when we hit that channel the actual flow is x+fees. We adjust the min/max bounds by a factor of 1/1.01 like if we had a 1% reserve for fees. Changelog-Fixed: askrene-getroutes: Account for a worst case 1% fee in the flow amount when computing probability costs. Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
f2b884e to
5178f5d
Compare
Liquidity bounds are estimated starting from the observations gathered from askrene-inform-channel but are also evolved in time, so that older entries have less weight in the outcome than recent ones. Also when combined, these intel entries are relaxed base on the likelyhood of the observation with the prior knowledge, eg. observing a channel failure when Pickhardt-Richer probability of success is 99% indicates that it is likely that our prior knowledge was wrong. Changelog-Fixed: askrene-getroutes: liquidity bounds evolve with time and with the evidence gathered from askrene-inform-channel Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
We have set an exponential decay time for liquidity bounds with a lifetime of 1 day, it halves every 16 hours. This parameter can be tuned. But I think throwing away entries after 1 hour is too aggresive. Better to remove them after 1 week. In that time it will be halved 10 times. Changelog-None Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
5178f5d to
f195bb8
Compare
Improved the fakenet simulation by moving funds after a payment succeeds. This triggers a bug in xpay.
To-do:
test_xpay_fake_channeld