Skip to content

Commit beecbb3

Browse files
committed
f - Default amount_penalty_multiplier_msat to 256
1 parent fec5c63 commit beecbb3

File tree

1 file changed

+39
-24
lines changed

1 file changed

+39
-24
lines changed

lightning/src/routing/scoring.rs

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ pub struct ProbabilisticScoringParameters {
572572
/// probabilities, the multiplier will have a decreasing effect as the negative `log10` will
573573
/// fall below `1`.
574574
///
575-
/// Default value: 0
575+
/// Default value: 256
576576
pub amount_penalty_multiplier_msat: u64,
577577
}
578578

@@ -621,13 +621,25 @@ impl<G: Deref<Target = NetworkGraph>, T: Time> ProbabilisticScorerUsingTime<G, T
621621
}
622622
}
623623

624+
impl ProbabilisticScoringParameters {
625+
#[cfg(test)]
626+
fn zero_penalty() -> Self {
627+
Self {
628+
base_penalty_msat: 0,
629+
liquidity_penalty_multiplier_msat: 0,
630+
liquidity_offset_half_life: Duration::from_secs(3600),
631+
amount_penalty_multiplier_msat: 0,
632+
}
633+
}
634+
}
635+
624636
impl Default for ProbabilisticScoringParameters {
625637
fn default() -> Self {
626638
Self {
627639
base_penalty_msat: 500,
628640
liquidity_penalty_multiplier_msat: 40_000,
629641
liquidity_offset_half_life: Duration::from_secs(3600),
630-
amount_penalty_multiplier_msat: 0,
642+
amount_penalty_multiplier_msat: 256,
631643
}
632644
}
633645
}
@@ -1793,7 +1805,8 @@ mod tests {
17931805
fn increased_penalty_nearing_liquidity_upper_bound() {
17941806
let network_graph = network_graph();
17951807
let params = ProbabilisticScoringParameters {
1796-
base_penalty_msat: 0, liquidity_penalty_multiplier_msat: 1_000, ..Default::default()
1808+
liquidity_penalty_multiplier_msat: 1_000,
1809+
..ProbabilisticScoringParameters::zero_penalty()
17971810
};
17981811
let scorer = ProbabilisticScorer::new(params, &network_graph);
17991812
let source = source_node_id();
@@ -1818,7 +1831,8 @@ mod tests {
18181831
let last_updated = SinceEpoch::now();
18191832
let network_graph = network_graph();
18201833
let params = ProbabilisticScoringParameters {
1821-
base_penalty_msat: 0, liquidity_penalty_multiplier_msat: 1_000, ..Default::default()
1834+
liquidity_penalty_multiplier_msat: 1_000,
1835+
..ProbabilisticScoringParameters::zero_penalty()
18221836
};
18231837
let scorer = ProbabilisticScorer::new(params, &network_graph)
18241838
.with_channel(42,
@@ -1838,7 +1852,8 @@ mod tests {
18381852
fn does_not_further_penalize_own_channel() {
18391853
let network_graph = network_graph();
18401854
let params = ProbabilisticScoringParameters {
1841-
base_penalty_msat: 0, liquidity_penalty_multiplier_msat: 1_000, ..Default::default()
1855+
liquidity_penalty_multiplier_msat: 1_000,
1856+
..ProbabilisticScoringParameters::zero_penalty()
18421857
};
18431858
let mut scorer = ProbabilisticScorer::new(params, &network_graph);
18441859
let sender = sender_node_id();
@@ -1859,7 +1874,8 @@ mod tests {
18591874
fn sets_liquidity_lower_bound_on_downstream_failure() {
18601875
let network_graph = network_graph();
18611876
let params = ProbabilisticScoringParameters {
1862-
base_penalty_msat: 0, liquidity_penalty_multiplier_msat: 1_000, ..Default::default()
1877+
liquidity_penalty_multiplier_msat: 1_000,
1878+
..ProbabilisticScoringParameters::zero_penalty()
18631879
};
18641880
let mut scorer = ProbabilisticScorer::new(params, &network_graph);
18651881
let source = source_node_id();
@@ -1881,7 +1897,8 @@ mod tests {
18811897
fn sets_liquidity_upper_bound_on_failure() {
18821898
let network_graph = network_graph();
18831899
let params = ProbabilisticScoringParameters {
1884-
base_penalty_msat: 0, liquidity_penalty_multiplier_msat: 1_000, ..Default::default()
1900+
liquidity_penalty_multiplier_msat: 1_000,
1901+
..ProbabilisticScoringParameters::zero_penalty()
18851902
};
18861903
let mut scorer = ProbabilisticScorer::new(params, &network_graph);
18871904
let source = source_node_id();
@@ -1903,7 +1920,8 @@ mod tests {
19031920
fn reduces_liquidity_upper_bound_along_path_on_success() {
19041921
let network_graph = network_graph();
19051922
let params = ProbabilisticScoringParameters {
1906-
base_penalty_msat: 0, liquidity_penalty_multiplier_msat: 1_000, ..Default::default()
1923+
liquidity_penalty_multiplier_msat: 1_000,
1924+
..ProbabilisticScoringParameters::zero_penalty()
19071925
};
19081926
let mut scorer = ProbabilisticScorer::new(params, &network_graph);
19091927
let sender = sender_node_id();
@@ -1927,10 +1945,9 @@ mod tests {
19271945
fn decays_liquidity_bounds_over_time() {
19281946
let network_graph = network_graph();
19291947
let params = ProbabilisticScoringParameters {
1930-
base_penalty_msat: 0,
19311948
liquidity_penalty_multiplier_msat: 1_000,
19321949
liquidity_offset_half_life: Duration::from_secs(10),
1933-
..Default::default()
1950+
..ProbabilisticScoringParameters::zero_penalty()
19341951
};
19351952
let mut scorer = ProbabilisticScorer::new(params, &network_graph);
19361953
let source = source_node_id();
@@ -1980,10 +1997,9 @@ mod tests {
19801997
fn decays_liquidity_bounds_without_shift_overflow() {
19811998
let network_graph = network_graph();
19821999
let params = ProbabilisticScoringParameters {
1983-
base_penalty_msat: 0,
19842000
liquidity_penalty_multiplier_msat: 1_000,
19852001
liquidity_offset_half_life: Duration::from_secs(10),
1986-
..Default::default()
2002+
..ProbabilisticScoringParameters::zero_penalty()
19872003
};
19882004
let mut scorer = ProbabilisticScorer::new(params, &network_graph);
19892005
let source = source_node_id();
@@ -2006,10 +2022,9 @@ mod tests {
20062022
fn restricts_liquidity_bounds_after_decay() {
20072023
let network_graph = network_graph();
20082024
let params = ProbabilisticScoringParameters {
2009-
base_penalty_msat: 0,
20102025
liquidity_penalty_multiplier_msat: 1_000,
20112026
liquidity_offset_half_life: Duration::from_secs(10),
2012-
..Default::default()
2027+
..ProbabilisticScoringParameters::zero_penalty()
20132028
};
20142029
let mut scorer = ProbabilisticScorer::new(params, &network_graph);
20152030
let source = source_node_id();
@@ -2045,10 +2060,9 @@ mod tests {
20452060
fn restores_persisted_liquidity_bounds() {
20462061
let network_graph = network_graph();
20472062
let params = ProbabilisticScoringParameters {
2048-
base_penalty_msat: 0,
20492063
liquidity_penalty_multiplier_msat: 1_000,
20502064
liquidity_offset_half_life: Duration::from_secs(10),
2051-
..Default::default()
2065+
..ProbabilisticScoringParameters::zero_penalty()
20522066
};
20532067
let mut scorer = ProbabilisticScorer::new(params, &network_graph);
20542068
let source = source_node_id();
@@ -2076,10 +2090,9 @@ mod tests {
20762090
fn decays_persisted_liquidity_bounds() {
20772091
let network_graph = network_graph();
20782092
let params = ProbabilisticScoringParameters {
2079-
base_penalty_msat: 0,
20802093
liquidity_penalty_multiplier_msat: 1_000,
20812094
liquidity_offset_half_life: Duration::from_secs(10),
2082-
..Default::default()
2095+
..ProbabilisticScoringParameters::zero_penalty()
20832096
};
20842097
let mut scorer = ProbabilisticScorer::new(params, &network_graph);
20852098
let source = source_node_id();
@@ -2112,7 +2125,8 @@ mod tests {
21122125
let target = target_node_id();
21132126

21142127
let params = ProbabilisticScoringParameters {
2115-
base_penalty_msat: 0, liquidity_penalty_multiplier_msat: 1_000, ..Default::default()
2128+
liquidity_penalty_multiplier_msat: 1_000,
2129+
..ProbabilisticScoringParameters::zero_penalty()
21162130
};
21172131
let scorer = ProbabilisticScorer::new(params, &network_graph);
21182132
assert_eq!(scorer.channel_penalty_msat(42, 128, 1_024, &source, &target), 58);
@@ -2133,18 +2147,18 @@ mod tests {
21332147
let params = ProbabilisticScoringParameters {
21342148
liquidity_penalty_multiplier_msat: 1_000,
21352149
amount_penalty_multiplier_msat: 0,
2136-
..Default::default()
2150+
..ProbabilisticScoringParameters::zero_penalty()
21372151
};
21382152
let scorer = ProbabilisticScorer::new(params, &network_graph);
2139-
assert_eq!(scorer.channel_penalty_msat(42, 512_000, 1_024_000, &source, &target), 800);
2153+
assert_eq!(scorer.channel_penalty_msat(42, 512_000, 1_024_000, &source, &target), 300);
21402154

21412155
let params = ProbabilisticScoringParameters {
21422156
liquidity_penalty_multiplier_msat: 1_000,
21432157
amount_penalty_multiplier_msat: 256,
2144-
..Default::default()
2158+
..ProbabilisticScoringParameters::zero_penalty()
21452159
};
21462160
let scorer = ProbabilisticScorer::new(params, &network_graph);
2147-
assert_eq!(scorer.channel_penalty_msat(42, 512_000, 1_024_000, &source, &target), 837);
2161+
assert_eq!(scorer.channel_penalty_msat(42, 512_000, 1_024_000, &source, &target), 337);
21482162
}
21492163

21502164
#[test]
@@ -2154,7 +2168,8 @@ mod tests {
21542168
let target = target_node_id();
21552169

21562170
let params = ProbabilisticScoringParameters {
2157-
base_penalty_msat: 0, ..Default::default()
2171+
liquidity_penalty_multiplier_msat: 40_000,
2172+
..ProbabilisticScoringParameters::zero_penalty()
21582173
};
21592174
let scorer = ProbabilisticScorer::new(params, &network_graph);
21602175
assert_eq!(

0 commit comments

Comments
 (0)