cln/plugins/askrene
Rusty Russell f0331cd82e askrene: add a "refining" step to add fees and handle corner cases.
This is the root cause of the problem worked around in 50949b7b9c
"askrene: hack in some padding so we don't overflow capacities."

When adding fees to flows, we didn't recheck the boundary conditions: in
renepay this is done by routebuilder.

Fortunately, we can use our "reservations" infrastructure to temporarily
use capacity as we process flows, so we handle the cases where they are
not independent correclty.

My assumption is that the resulting errors are small, so we divide
them between the remaining flows based on highest-to-least
probability.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2024-09-19 12:16:53 +09:30
..
askrene.c askrene: add a "refining" step to add fees and handle corner cases. 2024-09-19 12:16:53 +09:30
askrene.h askrene: change reserve_hash for reserve_htable 2024-08-13 09:12:40 +09:30
dijkstra.c askrene: copy flow and dijkstra from renepay. 2024-08-07 20:35:30 +09:30
dijkstra.h askrene: copy flow and dijkstra from renepay. 2024-08-07 20:35:30 +09:30
flow.c askrene: add a "refining" step to add fees and handle corner cases. 2024-09-19 12:16:53 +09:30
flow.h askrene: add a "refining" step to add fees and handle corner cases. 2024-09-19 12:16:53 +09:30
layer.c askrene: add "auto.localchans" layer. 2024-08-07 20:35:30 +09:30
layer.h askrene: add "auto.localchans" layer. 2024-08-07 20:35:30 +09:30
Makefile askrene: include the mcf and flow routines. 2024-08-07 20:35:30 +09:30
mcf.c askrene: add a "refining" step to add fees and handle corner cases. 2024-09-19 12:16:53 +09:30
mcf.h askrene: include the mcf and flow routines. 2024-08-07 20:35:30 +09:30
reserve.c common/amount: add amount_msat_accumulate() 2024-09-19 12:16:53 +09:30
reserve.h askrene: memleak: scan reserved htable 2024-08-13 09:12:40 +09:30