pub struct StatusResponse {
pub node_id: String,
pub routing: RoutingHealth,
pub known_stakers: u64,
pub record_store: RecordStoreHealth,
pub republish: RepublishHealth,
pub chain_denied_origins: u64,
pub operator_address: Option<String>,
}Expand description
Response body for admin_v1_status (issue #741): a single-shot
snapshot of this node’s DHT participation health, so an operator can
diagnose cold-start / routing-table degradation without scraping
Prometheus or reading logs.
Fields§
§node_id: StringLowercase hex of this node’s iroh PublicKey — same encoding as
HealthResponse::node_id.
routing: RoutingHealthKademlia routing-table health.
known_stakers: u64Active stakers known to this node (the chain-backed StakerSet
cardinality — the set the DHT admits records and routes from).
record_store: RecordStoreHealthDHT provider-record store utilization.
republish: RepublishHealthRepublish-scheduler depth.
chain_denied_origins: u64Number of origins currently in the on-chain origin deny-set
(ContentBlacklist origin blacklist, ADR 011). Read from the live
denylist the client handler and blacklist watcher share; 0 when no
denylist is wired.
operator_address: Option<String>The operator Ethereum address this node runs under — the wallet it is
funded, bonded, registered, and paid under. Rendered as an EIP-55
mixed-case checksummed hex string (0x-prefixed), the same encoding
LaneSnapshot::counterparty uses. Sampled once at bring-up from the
loaded eth keystore (the same value the node-id binding check derives),
not re-read per call. None when the operator can’t be resolved — an
AdminState with no chain wiring (unit tests, cache-only nodes) —
matching how HealthResponse::bound_node_id degrades. The address is
public; no key material is ever exposed here.
Trait Implementations§
Source§impl Clone for StatusResponse
impl Clone for StatusResponse
Source§impl Debug for StatusResponse
impl Debug for StatusResponse
Source§impl<'de> Deserialize<'de> for StatusResponse
impl<'de> Deserialize<'de> for StatusResponse
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for StatusResponse
impl RefUnwindSafe for StatusResponse
impl Send for StatusResponse
impl Sync for StatusResponse
impl Unpin for StatusResponse
impl UnsafeUnpin for StatusResponse
impl UnwindSafe for StatusResponse
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<'de, T> BorrowedRpcObject<'de> for T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more