Skip to content

Commit a33ba5f

Browse files
committed
Drop now-unused T: Time bound on ProbabilisticScorer
Now that we don't access time via the `Time` trait in `ProbabilisticScorer`, we can finally drop the `Time` bound entirely, removing the `ProbabilisticScorerUsingTime` and type alias indirection and replacing it with a simple struct.
1 parent 85951fc commit a33ba5f

File tree

1 file changed

+12
-31
lines changed

1 file changed

+12
-31
lines changed

lightning/src/routing/scoring.rs

Lines changed: 12 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ use crate::routing::gossip::{EffectiveCapacity, NetworkGraph, NodeId};
6161
use crate::routing::router::Path;
6262
use crate::util::ser::{Readable, ReadableArgs, Writeable, Writer};
6363
use crate::util::logger::Logger;
64-
use crate::util::time::Time;
6564

6665
use crate::prelude::*;
6766
use core::{cmp, fmt};
@@ -441,13 +440,6 @@ impl ReadableArgs<u64> for FixedPenaltyScorer {
441440
}
442441
}
443442

444-
#[cfg(not(feature = "no-std"))]
445-
type ConfiguredTime = crate::util::time::MonotonicTime;
446-
#[cfg(feature = "no-std")]
447-
use crate::util::time::Eternity;
448-
#[cfg(feature = "no-std")]
449-
type ConfiguredTime = Eternity;
450-
451443
/// [`ScoreLookUp`] implementation using channel success probability distributions.
452444
///
453445
/// Channels are tracked with upper and lower liquidity bounds - when an HTLC fails at a channel,
@@ -484,18 +476,12 @@ type ConfiguredTime = Eternity;
484476
/// [`liquidity_offset_half_life`]: ProbabilisticScoringDecayParameters::liquidity_offset_half_life
485477
/// [`historical_liquidity_penalty_multiplier_msat`]: ProbabilisticScoringFeeParameters::historical_liquidity_penalty_multiplier_msat
486478
/// [`historical_liquidity_penalty_amount_multiplier_msat`]: ProbabilisticScoringFeeParameters::historical_liquidity_penalty_amount_multiplier_msat
487-
pub type ProbabilisticScorer<G, L> = ProbabilisticScorerUsingTime::<G, L, ConfiguredTime>;
488-
489-
/// Probabilistic [`ScoreLookUp`] implementation.
490-
///
491-
/// This is not exported to bindings users generally all users should use the [`ProbabilisticScorer`] type alias.
492-
pub struct ProbabilisticScorerUsingTime<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time>
479+
pub struct ProbabilisticScorer<G: Deref<Target = NetworkGraph<L>>, L: Deref>
493480
where L::Target: Logger {
494481
decay_params: ProbabilisticScoringDecayParameters,
495482
network_graph: G,
496483
logger: L,
497484
channel_liquidities: HashMap<u64, ChannelLiquidity>,
498-
_unused_time: core::marker::PhantomData<T>,
499485
}
500486

501487
/// Parameters for configuring [`ProbabilisticScorer`].
@@ -750,7 +736,7 @@ pub struct ProbabilisticScoringDecayParameters {
750736
///
751737
/// Default value: 14 days
752738
///
753-
/// [`historical_estimated_channel_liquidity_probabilities`]: ProbabilisticScorerUsingTime::historical_estimated_channel_liquidity_probabilities
739+
/// [`historical_estimated_channel_liquidity_probabilities`]: ProbabilisticScorer::historical_estimated_channel_liquidity_probabilities
754740
pub historical_no_updates_half_life: Duration,
755741

756742
/// Whenever this amount of time elapses since the last update to a channel's liquidity bounds,
@@ -829,7 +815,7 @@ struct DirectedChannelLiquidity<L: Deref<Target = u64>, BRT: Deref<Target = Hist
829815
decay_params: ProbabilisticScoringDecayParameters,
830816
}
831817

832-
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> ProbabilisticScorerUsingTime<G, L, T> where L::Target: Logger {
818+
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref> ProbabilisticScorer<G, L> where L::Target: Logger {
833819
/// Creates a new scorer using the given scoring parameters for sending payments from a node
834820
/// through a network graph.
835821
pub fn new(decay_params: ProbabilisticScoringDecayParameters, network_graph: G, logger: L) -> Self {
@@ -838,7 +824,6 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> ProbabilisticScorerU
838824
network_graph,
839825
logger,
840826
channel_liquidities: HashMap::new(),
841-
_unused_time: core::marker::PhantomData,
842827
}
843828
}
844829

@@ -1352,7 +1337,7 @@ DirectedChannelLiquidity<L, BRT, T> {
13521337
}
13531338
}
13541339

1355-
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> ScoreLookUp for ProbabilisticScorerUsingTime<G, L, T> where L::Target: Logger {
1340+
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref> ScoreLookUp for ProbabilisticScorer<G, L> where L::Target: Logger {
13561341
type ScoreParams = ProbabilisticScoringFeeParameters;
13571342
fn channel_penalty_msat(
13581343
&self, short_channel_id: u64, source: &NodeId, target: &NodeId, usage: ChannelUsage, score_params: &ProbabilisticScoringFeeParameters
@@ -1396,7 +1381,7 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> ScoreLookUp for Prob
13961381
}
13971382
}
13981383

1399-
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> ScoreUpdate for ProbabilisticScorerUsingTime<G, L, T> where L::Target: Logger {
1384+
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref> ScoreUpdate for ProbabilisticScorer<G, L> where L::Target: Logger {
14001385
fn payment_path_failed(&mut self, path: &Path, short_channel_id: u64, duration_since_epoch: Duration) {
14011386
let amount_msat = path.final_value_msat();
14021387
log_trace!(self.logger, "Scoring path through to SCID {} as having failed at {} msat", short_channel_id, amount_msat);
@@ -1503,7 +1488,7 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> ScoreUpdate for Prob
15031488
}
15041489

15051490
#[cfg(c_bindings)]
1506-
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Score for ProbabilisticScorerUsingTime<G, L, T>
1491+
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref> Score for ProbabilisticScorer<G, L>
15071492
where L::Target: Logger {}
15081493

15091494
#[cfg(feature = "std")]
@@ -2089,7 +2074,7 @@ mod bucketed_history {
20892074
}
20902075
use bucketed_history::{LegacyHistoricalBucketRangeTracker, HistoricalBucketRangeTracker, HistoricalMinMaxBuckets};
20912076

2092-
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Writeable for ProbabilisticScorerUsingTime<G, L, T> where L::Target: Logger {
2077+
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref> Writeable for ProbabilisticScorer<G, L> where L::Target: Logger {
20932078
#[inline]
20942079
fn write<W: Writer>(&self, w: &mut W) -> Result<(), io::Error> {
20952080
write_tlv_fields!(w, {
@@ -2099,8 +2084,8 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Writeable for Probab
20992084
}
21002085
}
21012086

2102-
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time>
2103-
ReadableArgs<(ProbabilisticScoringDecayParameters, G, L)> for ProbabilisticScorerUsingTime<G, L, T> where L::Target: Logger {
2087+
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref>
2088+
ReadableArgs<(ProbabilisticScoringDecayParameters, G, L)> for ProbabilisticScorer<G, L> where L::Target: Logger {
21042089
#[inline]
21052090
fn read<R: Read>(
21062091
r: &mut R, args: (ProbabilisticScoringDecayParameters, G, L)
@@ -2115,7 +2100,6 @@ ReadableArgs<(ProbabilisticScoringDecayParameters, G, L)> for ProbabilisticScore
21152100
network_graph,
21162101
logger,
21172102
channel_liquidities,
2118-
_unused_time: core::marker::PhantomData,
21192103
})
21202104
}
21212105
}
@@ -2185,7 +2169,7 @@ impl Readable for ChannelLiquidity {
21852169

21862170
#[cfg(test)]
21872171
mod tests {
2188-
use super::{ChannelLiquidity, HistoricalBucketRangeTracker, ProbabilisticScoringFeeParameters, ProbabilisticScoringDecayParameters, ProbabilisticScorerUsingTime};
2172+
use super::{ChannelLiquidity, HistoricalBucketRangeTracker, ProbabilisticScoringFeeParameters, ProbabilisticScoringDecayParameters, ProbabilisticScorer};
21892173
use crate::blinded_path::{BlindedHop, BlindedPath};
21902174
use crate::util::config::UserConfig;
21912175
use crate::util::time::tests::SinceEpoch;
@@ -2234,9 +2218,6 @@ mod tests {
22342218

22352219
// `ProbabilisticScorer` tests
22362220

2237-
/// A probabilistic scorer for testing with time that can be manually advanced.
2238-
type ProbabilisticScorer<'a> = ProbabilisticScorerUsingTime::<&'a NetworkGraph<&'a TestLogger>, &'a TestLogger, SinceEpoch>;
2239-
22402221
fn sender_privkey() -> SecretKey {
22412222
SecretKey::from_slice(&[41; 32]).unwrap()
22422223
}
@@ -3038,7 +3019,7 @@ mod tests {
30383019

30393020
let mut serialized_scorer = io::Cursor::new(&serialized_scorer);
30403021
let deserialized_scorer =
3041-
<ProbabilisticScorer>::read(&mut serialized_scorer, (decay_params, &network_graph, &logger)).unwrap();
3022+
<ProbabilisticScorer<_, _>>::read(&mut serialized_scorer, (decay_params, &network_graph, &logger)).unwrap();
30423023
assert_eq!(deserialized_scorer.channel_penalty_msat(42, &source, &target, usage, &params), 300);
30433024
}
30443025

@@ -3076,7 +3057,7 @@ mod tests {
30763057

30773058
let mut serialized_scorer = io::Cursor::new(&serialized_scorer);
30783059
let mut deserialized_scorer =
3079-
<ProbabilisticScorer>::read(&mut serialized_scorer, (decay_params, &network_graph, &logger)).unwrap();
3060+
<ProbabilisticScorer<_, _>>::read(&mut serialized_scorer, (decay_params, &network_graph, &logger)).unwrap();
30803061
if !decay_before_reload {
30813062
SinceEpoch::advance(Duration::from_secs(10));
30823063
scorer.decay_liquidity_certainty(Duration::from_secs(10));

0 commit comments

Comments
 (0)