Skip to content

Commit fa0beaf

Browse files
committed
Reduce the default default channel bounds half-life
Utilizing the results of probes sent once a minute to a random node in the network for a random amount (within a reasonable range), we were able to analyze the accuracy of our resulting success probability estimation with various PDFs across the historical and live-bounds models. For each candidate PDF (as well as other parameters, to be tuned in the coming commits), we used the `min_zero_implies_no_successes` fudge factor in `success_probability` as well as a total probability multiple fudge factor to get both the historical success model and the a priori model to be neither too optimistic nor too pessimistic (as measured by the relative log-loss between succeeding and failing hops in our sample data). Across the simulation runs, for a given PDF and other parameters, we nearly always did better with a shorter half-life (even as short as 1ms, i.e. only learning per-probe rather than across probes). While this likely makes sense for nodes which do live probing, not all nodes do, and thus we should avoid over-biasing on the dataset we have. While it may make sense to only learn per-payment and not across payments, I can't fully rationalize this result and thus want to avoid over-tuning, so here we reduce the half-life from 6 hours to 30 minutes.
1 parent 829dd26 commit fa0beaf

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

lightning/src/routing/scoring.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -769,7 +769,7 @@ pub struct ProbabilisticScoringDecayParameters {
769769
/// liquidity bounds are 200,000 sats and 600,000 sats, after this amount of time the upper
770770
/// and lower liquidity bounds will be decayed to 100,000 and 800,000 sats.
771771
///
772-
/// Default value: 6 hours
772+
/// Default value: 30 minutes
773773
///
774774
/// # Note
775775
///
@@ -781,7 +781,7 @@ pub struct ProbabilisticScoringDecayParameters {
781781
impl Default for ProbabilisticScoringDecayParameters {
782782
fn default() -> Self {
783783
Self {
784-
liquidity_offset_half_life: Duration::from_secs(6 * 60 * 60),
784+
liquidity_offset_half_life: Duration::from_secs(30 * 60),
785785
historical_no_updates_half_life: Duration::from_secs(60 * 60 * 24 * 14),
786786
}
787787
}
@@ -791,7 +791,7 @@ impl Default for ProbabilisticScoringDecayParameters {
791791
impl ProbabilisticScoringDecayParameters {
792792
fn zero_penalty() -> Self {
793793
Self {
794-
liquidity_offset_half_life: Duration::from_secs(6 * 60 * 60),
794+
liquidity_offset_half_life: Duration::from_secs(30 * 60),
795795
historical_no_updates_half_life: Duration::from_secs(60 * 60 * 24 * 14),
796796
}
797797
}

0 commit comments

Comments
 (0)