Skip to content

Commit cd33ade

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 6582f29 commit cd33ade

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

lightning/src/routing/scoring.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ pub struct ProbabilisticScoringDecayParameters {
770770
/// liquidity bounds are 200,000 sats and 600,000 sats, after this amount of time the upper
771771
/// and lower liquidity bounds will be decayed to 100,000 and 800,000 sats.
772772
///
773-
/// Default value: 6 hours
773+
/// Default value: 30 minutes
774774
///
775775
/// # Note
776776
///
@@ -782,7 +782,7 @@ pub struct ProbabilisticScoringDecayParameters {
782782
impl Default for ProbabilisticScoringDecayParameters {
783783
fn default() -> Self {
784784
Self {
785-
liquidity_offset_half_life: Duration::from_secs(6 * 60 * 60),
785+
liquidity_offset_half_life: Duration::from_secs(30 * 60),
786786
historical_no_updates_half_life: Duration::from_secs(60 * 60 * 24 * 14),
787787
}
788788
}
@@ -792,7 +792,7 @@ impl Default for ProbabilisticScoringDecayParameters {
792792
impl ProbabilisticScoringDecayParameters {
793793
fn zero_penalty() -> Self {
794794
Self {
795-
liquidity_offset_half_life: Duration::from_secs(6 * 60 * 60),
795+
liquidity_offset_half_life: Duration::from_secs(30 * 60),
796796
historical_no_updates_half_life: Duration::from_secs(60 * 60 * 24 * 14),
797797
}
798798
}

0 commit comments

Comments
 (0)