pub struct ProbeResponseBody {
pub hash: [u8; 32],
pub has_blob: bool,
pub rate_per_mb: u64,
pub timestamp_us: u64,
}Expand description
Signed fields of a ProbeResponse. Layout is frozen per ADR 013 — future
additions go on ProbeResponse as optional unsigned fields, not here.
rate_per_mb is bounded by MAX_RATE_PER_MB at the wire boundary — the
field-level deserialize_rate_per_mb hook rejects oversize values so a
malicious node cannot poison the client selection score with an
overflow-inducing rate (issue #378). Server-side construction is
unconstrained at the type level; the node’s config layer
(resolve_payment) enforces the same ceiling at startup and on hot
reload, keeping the bound bilateral.
Fields§
§hash: [u8; 32]BLAKE3 hash this response answers for, echoed from the request.
has_blob: boolWhether the node currently holds the blob and will serve it. A node
MUST NOT sign true unless it can guarantee delivery within the
slashing window (ADR 005 §Probe-triggered eviction hold).
rate_per_mb: u64The node’s current quoted rate in payment-token base units per MB. The
token is USDC, fixed at contract deployment (ADR 003), so the wire
carries no token identifier and the units need no normalization.
Bounded by MAX_RATE_PER_MB.
timestamp_us: u64The requester-generated microsecond timestamp from the corresponding
ProbeRequest, echoed back unchanged.