breez_sdk_liquid::lightning::routing::scoring

Struct ProbabilisticScoringDecayParameters

pub struct ProbabilisticScoringDecayParameters {
    pub historical_no_updates_half_life: Duration,
    pub liquidity_offset_half_life: Duration,
}
Expand description

Parameters for configuring ProbabilisticScorer.

Used to configure decay parameters that are static throughout the lifetime of the scorer. these decay parameters affect the score of the channel penalty and are not changed on a per-route penalty cost call.

Fields§

§historical_no_updates_half_life: Duration

If we aren’t learning any new datapoints for a channel, the historical liquidity bounds tracking can simply live on with increasingly stale data. Instead, when a channel has not seen a liquidity estimate update for this amount of time, the historical datapoints are decayed by half. For an example of historical_no_updates_half_life being used see historical_estimated_channel_liquidity_probabilities

Note that after 16 or more half lives all historical data will be completely gone.

Default value: 14 days

§liquidity_offset_half_life: Duration

Whenever this amount of time elapses since the last update to a channel’s liquidity bounds, the distance from the bounds to “zero” is cut in half. In other words, the lower-bound on the available liquidity is halved and the upper-bound moves half-way to the channel’s total capacity.

Because halving the liquidity bounds grows the uncertainty on the channel’s liquidity, the penalty for an amount within the new bounds may change. See the ProbabilisticScorer struct documentation for more info on the way the liquidity bounds are used.

For example, if the channel’s capacity is 1 million sats, and the current upper and lower liquidity bounds are 200,000 sats and 600,000 sats, after this amount of time the upper and lower liquidity bounds will be decayed to 100,000 and 800,000 sats.

Default value: 6 hours

§Note

When built with the no-std feature, time will never elapse. Therefore, the channel liquidity knowledge will never decay except when the bounds cross.

Trait Implementations§

§

impl Clone for ProbabilisticScoringDecayParameters

§

fn clone(&self) -> ProbabilisticScoringDecayParameters

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Default for ProbabilisticScoringDecayParameters

§

fn default() -> ProbabilisticScoringDecayParameters

Returns the “default value” for a type. Read more
§

impl Copy for ProbabilisticScoringDecayParameters

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> DartSafe for T

§

impl<T> TaskRetFutTrait for T
where T: Send,