logo
pub struct TopicScoreParams {
Show 17 fields pub topic_weight: f64, pub time_in_mesh_weight: f64, pub time_in_mesh_quantum: Duration, pub time_in_mesh_cap: f64, pub first_message_deliveries_weight: f64, pub first_message_deliveries_decay: f64, pub first_message_deliveries_cap: f64, pub mesh_message_deliveries_weight: f64, pub mesh_message_deliveries_decay: f64, pub mesh_message_deliveries_cap: f64, pub mesh_message_deliveries_threshold: f64, pub mesh_message_deliveries_window: Duration, pub mesh_message_deliveries_activation: Duration, pub mesh_failure_penalty_weight: f64, pub mesh_failure_penalty_decay: f64, pub invalid_message_deliveries_weight: f64, pub invalid_message_deliveries_decay: f64,
}

Fields

topic_weight: f64

The weight of the topic.

time_in_mesh_weight: f64

P1: time in the mesh This is the time the peer has been grafted in the mesh. The value of of the parameter is the time/time_in_mesh_quantum, capped by time_in_mesh_cap The weight of the parameter must be positive (or zero to disable).

time_in_mesh_quantum: Durationtime_in_mesh_cap: f64first_message_deliveries_weight: f64

P2: first message deliveries This is the number of message deliveries in the topic. The value of the parameter is a counter, decaying with first_message_deliveries_decay, and capped by first_message_deliveries_cap. The weight of the parameter MUST be positive (or zero to disable).

first_message_deliveries_decay: f64first_message_deliveries_cap: f64mesh_message_deliveries_weight: f64

P3: mesh message deliveries This is the number of message deliveries in the mesh, within the mesh_message_deliveries_window of message validation; deliveries during validation also count and are retroactively applied when validation succeeds. This window accounts for the minimum time before a hostile mesh peer trying to game the score could replay back a valid message we just sent them. It effectively tracks first and near-first deliveries, ie a message seen from a mesh peer before we have forwarded it to them. The parameter has an associated counter, decaying with mesh_message_deliveries_decay. If the counter exceeds the threshold, its value is 0. If the counter is below the mesh_message_deliveries_threshold, the value is the square of the deficit, ie (message_deliveries_threshold - counter)^2 The penalty is only activated after mesh_message_deliveries_activation time in the mesh. The weight of the parameter MUST be negative (or zero to disable).

mesh_message_deliveries_decay: f64mesh_message_deliveries_cap: f64mesh_message_deliveries_threshold: f64mesh_message_deliveries_window: Durationmesh_message_deliveries_activation: Durationmesh_failure_penalty_weight: f64

P3b: sticky mesh propagation failures This is a sticky penalty that applies when a peer gets pruned from the mesh with an active mesh message delivery penalty. The weight of the parameter MUST be negative (or zero to disable)

mesh_failure_penalty_decay: f64invalid_message_deliveries_weight: f64

P4: invalid messages This is the number of invalid messages in the topic. The value of the parameter is the square of the counter, decaying with invalid_message_deliveries_decay. The weight of the parameter MUST be negative (or zero to disable).

invalid_message_deliveries_decay: f64

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

NOTE: The topic score parameters are very network specific. For any production system, these values should be manually set.

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

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

Should always be Self

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.