Description
We tend to be pretty conservative and avoid splitting payments quite a bit. That's fine, but we can probably be a bit smarter about when we split. Once we land #1227 we can maybe also adapt the scoring API to return more information, including things like "you shouldn't send more than N over this channel". One way to accomplish that may be to have a RouterState
enum passed to the scorer that is first set to RouterState::ConservativeFirstPass
where the scorer can be very aggressive, refusing to route more than a small % of most channels' guessed capacity. If that pass finds a route we can still take the happy path and return it immediately, if not we can do the later passes with a different RouterState
and then do....something to combine the paths selected across the different conservatism scales.
One thing I don't want to have is the state a lot of other nodes appear to have where they just always split all the time, which feels counter-productive and can cause other issues.
cc @jkczyz