Trait breez_sdk_liquid::lightning::routing::scoring::Score

pub trait Score {
    type ScoreParams;

    // Required methods
    fn channel_penalty_msat(
        &self,
        short_channel_id: u64,
        source: &NodeId,
        target: &NodeId,
        usage: ChannelUsage,
        score_params: &Self::ScoreParams,
    ) -> u64;
    fn payment_path_failed(&mut self, path: &Path, short_channel_id: u64);
    fn payment_path_successful(&mut self, path: &Path);
    fn probe_failed(&mut self, path: &Path, short_channel_id: u64);
    fn probe_successful(&mut self, path: &Path);
}
Expand description

An interface used to score payment channels for path finding.

Scoring is in terms of fees willing to be paid in order to avoid routing through a channel.

Required Associated Types§

type ScoreParams

A configurable type which should contain various passed-in parameters for configuring the scorer, on a per-routefinding-call basis through to the scorer methods, which are used to determine the parameters for the suitability of channels for use.

Required Methods§

fn channel_penalty_msat( &self, short_channel_id: u64, source: &NodeId, target: &NodeId, usage: ChannelUsage, score_params: &Self::ScoreParams, ) -> u64

Returns the fee in msats willing to be paid to avoid routing send_amt_msat through the given channel in the direction from source to target.

The channel’s capacity (less any other MPP parts that are also being considered for use in the same payment) is given by capacity_msat. It may be determined from various sources such as a chain data, network gossip, or invoice hints. For invoice hints, a capacity near u64::max_value is given to indicate sufficient capacity for the invoice’s full amount. Thus, implementations should be overflow-safe.

fn payment_path_failed(&mut self, path: &Path, short_channel_id: u64)

Handles updating channel penalties after failing to route through a channel.

fn payment_path_successful(&mut self, path: &Path)

Handles updating channel penalties after successfully routing along a path.

fn probe_failed(&mut self, path: &Path, short_channel_id: u64)

Handles updating channel penalties after a probe over the given path failed.

fn probe_successful(&mut self, path: &Path)

Handles updating channel penalties after a probe over the given path succeeded.

Implementors§

§

impl Score for FixedPenaltyScorer

§

impl<'a, S, SP> Score for ScorerAccountingForInFlightHtlcs<'a, S, SP>
where S: Score<ScoreParams = SP>,

§

impl<G, L, T> Score for ProbabilisticScorerUsingTime<G, L, T>
where G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time, <L as Deref>::Target: Logger,

§

impl<S, T> Score for T
where S: Score, T: DerefMut<Target = S>,