#[non_exhaustive]pub struct LocalReputationConfig {
pub alpha: f64,
pub initial_score: f64,
pub reference_bps: u64,
pub speed_weight: f64,
pub correctness_weight: f64,
pub reachability_weight: f64,
pub max_delta_per_update: f64,
pub decay_half_life_secs: u64,
}Expand description
Tunable parameters for the local EWMA score.
Defaults follow ADR 008 §3 (α=0.1, initial=0.5, weights 40/40/20).
Validation runs at LocalReputation::new; constructing an invalid
config in isolation is allowed but installing it returns
ConfigError.
max_delta_per_update defaults to 1.0 (no clamping) per ADR 008 §14a;
operators can set it to 0.05 to enforce §8’s per-report cap without
code changes.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.alpha: f64EWMA smoothing factor: the weight given to the newest sample. Larger reacts faster and forgets faster.
initial_score: f64Score a peer starts at, before any interaction is recorded.
reference_bps: u64Reference throughput scoring ~1.0 under the log speed curve (was the flat saturation baseline).
speed_weight: f64Weight of the throughput component. The three weights must sum to
1.0 or LocalReputation::new rejects the config.
correctness_weight: f64Weight of the hash-verification component.
reachability_weight: f64Weight of the dial-success component.
max_delta_per_update: f64Largest score movement one report may cause. 1.0 disables the clamp;
see LOCAL_SCORE_MAX_DELTA_PER_REPORT.
decay_half_life_secs: u64Half-life (seconds) of idle-score decay toward neutral (ADR 008 §Score
Decay). Each half-life halves the distance to neutral. 0 disables decay.
Implementations§
Source§impl LocalReputationConfig
impl LocalReputationConfig
Sourcepub const fn with_max_delta_per_update(self, cap: f64) -> Self
pub const fn with_max_delta_per_update(self, cap: f64) -> Self
Set the per-report score-movement cap and return the config.
The struct is #[non_exhaustive], so downstream crates cannot use a
struct-update literal to override a single field; this builder is how the
node wiring opts into LOCAL_SCORE_MAX_DELTA_PER_REPORT. The value is
validated (finite, [0.0, 1.0]) at LocalReputation::new, not here.