Skip to main content

AUDIT_TIMEOUT_STRIKE_THRESHOLD

Constant AUDIT_TIMEOUT_STRIKE_THRESHOLD 

Source
pub const AUDIT_TIMEOUT_STRIKE_THRESHOLD: u32 = 3;
Expand description

Consecutive audit timeouts a peer may accumulate before a timeout is reported as an ApplicationFailure trust event.

The audit response timeout is an economic deterrent calibrated for residential bandwidth, not a hard cryptographic bound: a single slow response is routine for an honest node under transient load (GC pause, disk flush, a burst of concurrent requests). Penalizing on the first timeout false-positives those nodes.

Requiring N consecutive timeouts before penalizing removes that false-positive while preserving the deterrent against a peer that does not actually store the data and must fetch it at audit time: such a peer is slow on every audit and accumulates a fresh strike each tick until it crosses the threshold, whereas an honest node answers normally between rare slow ticks and any success resets its strike counter to zero (see handle_audit_result). The discriminator is persistence of slowness versus transience. This deliberately does not widen the per-challenge window. Applies ONLY to AuditFailureReason::Timeout; confirmed storage-integrity failures (DigestMismatch / KeyAbsent / Rejected / MalformedResponse) remain instantly punishable.