From a3547e29e5409413a0864b72813ac9c57bbd6d6f Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Thu, 7 Jul 2022 17:37:22 +0000 Subject: [PATCH] Change default "impossibility penalty" to one Bitcoin In general we should avoid taking paths that we are confident will not work as much possible, but we should be willing to try each payment at least once, even if its over a channel that failed recently. A full Bitcoin penalty for such a channel seems reasonable - lightning fees are unlikely to ever reach that point so such channels will be scored much worse than any other potential path, while still being below `u64::max_value()`. --- lightning/src/routing/scoring.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lightning/src/routing/scoring.rs b/lightning/src/routing/scoring.rs index cd2ae6d5..e2e0bdd1 100644 --- a/lightning/src/routing/scoring.rs +++ b/lightning/src/routing/scoring.rs @@ -406,7 +406,7 @@ pub struct ProbabilisticScoringParameters { /// If you wish to avoid creating paths with such channels entirely, setting this to a value of /// `u64::max_value()` will guarantee that. /// - /// Default value: `u64::max_value()` + /// Default value: 1_0000_0000_000 msat (1 Bitcoin) /// /// [`liquidity_penalty_multiplier_msat`]: Self::liquidity_penalty_multiplier_msat /// [`amount_penalty_multiplier_msat`]: Self::amount_penalty_multiplier_msat @@ -563,7 +563,7 @@ impl Default for ProbabilisticScoringParameters { amount_penalty_multiplier_msat: 256, manual_node_penalties: HashMap::new(), anti_probing_penalty_msat: 250, - considered_impossible_penalty_msat: u64::max_value(), + considered_impossible_penalty_msat: 1_0000_0000_000, } } } @@ -2192,7 +2192,10 @@ mod tests { fn accounts_for_inflight_htlc_usage() { let logger = TestLogger::new(); let network_graph = network_graph(&logger); - let params = ProbabilisticScoringParameters::default(); + let params = ProbabilisticScoringParameters { + considered_impossible_penalty_msat: u64::max_value(), + ..ProbabilisticScoringParameters::zero_penalty() + }; let scorer = ProbabilisticScorer::new(params, &network_graph, &logger); let source = source_node_id(); let target = target_node_id(); -- 2.30.2