- // Routing Fragmentation Mitigation heuristic:
- //
- // Routing fragmentation across many payment paths increases the overall routing
- // fees as you have irreducible routing fees per-link used (`fee_base_msat`).
- // Taking too many smaller paths also increases the chance of payment failure.
- // Thus to avoid this effect, we require from our collected links to provide
- // at least a minimal contribution to the recommended value yet-to-be-fulfilled.
- //
- // This requirement is currently 5% of the remaining-to-be-collected value.
- // This means as we successfully advance in our collection,
- // the absolute liquidity contribution is lowered,
- // thus increasing the number of potential channels to be selected.
-
- // Derive the minimal liquidity contribution with a ratio of 20 (5%, rounded up)
- // or 100% if we're not allowed to do multipath payments.
- let minimal_value_contribution_msat: u64 = if allow_mpp {
- (recommended_value_msat - already_collected_value_msat + 19) / 20
- } else {
- final_value_msat
- };