From: Matt Corallo Date: Thu, 7 Jul 2022 17:37:22 +0000 (+0000) Subject: Change default "impossibility penalty" to one Bitcoin X-Git-Tag: v0.0.110~13^2 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=refs%2Fheads%2F2022-07-explicit-avoid-retries;p=rust-lightning 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()`. --- diff --git a/lightning/src/routing/scoring.rs b/lightning/src/routing/scoring.rs index cd2ae6d5d..e2e0bdd18 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();