From: Matt Corallo <649246+TheBlueMatt@users.noreply.github.com> Date: Tue, 3 May 2022 16:53:10 +0000 (+0000) Subject: Merge pull request #1460 from TheBlueMatt/2022-04-liquidity-log X-Git-Tag: v0.0.107~46 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=5feef253ec1d29760441f78567d2347dbf11e013;hp=e3a305cdb60678d1aa16f55255bb352beae6198e;p=rust-lightning Merge pull request #1460 from TheBlueMatt/2022-04-liquidity-log Provide a utility to log the ProbabilisticScorer's contents --- diff --git a/lightning/src/routing/scoring.rs b/lightning/src/routing/scoring.rs index 0e04c639..3d10a14c 100644 --- a/lightning/src/routing/scoring.rs +++ b/lightning/src/routing/scoring.rs @@ -623,6 +623,33 @@ impl, L: Deref, T: Time> ProbabilisticScorerUsin assert!(self.channel_liquidities.insert(short_channel_id, liquidity).is_none()); self } + + /// Dump the contents of this scorer into the configured logger. + /// + /// Note that this writes roughly one line per channel for which we have a liquidity estimate, + /// which may be a substantial amount of log output. + pub fn debug_log_liquidity_stats(&self) { + let graph = self.network_graph.read_only(); + for (scid, liq) in self.channel_liquidities.iter() { + if let Some(chan_debug) = graph.channels().get(scid) { + let log_direction = |source, target| { + if let Some((directed_info, _)) = chan_debug.as_directed_to(target) { + let amt = directed_info.effective_capacity().as_msat(); + let dir_liq = liq.as_directed(source, target, amt, self.params.liquidity_offset_half_life); + log_debug!(self.logger, "Liquidity from {:?} to {:?} via {} is in the range ({}, {})", + source, target, scid, dir_liq.min_liquidity_msat(), dir_liq.max_liquidity_msat()); + } else { + log_debug!(self.logger, "No amount known for SCID {} from {:?} to {:?}", scid, source, target); + } + }; + + log_direction(&chan_debug.node_one, &chan_debug.node_two); + log_direction(&chan_debug.node_two, &chan_debug.node_one); + } else { + log_debug!(self.logger, "No network graph entry for SCID {}", scid); + } + } + } } impl ProbabilisticScoringParameters {