pub struct RoutingHealth {
pub total_peers: u64,
pub non_empty_buckets: u64,
pub buckets: Vec<BucketStat>,
pub bucket_capacity: u16,
pub refresh_interval_s: u64,
pub last_refresh_us: Option<u64>,
}Expand description
Routing-table health section of admin_v1_status (issue #741).
Fields§
§total_peers: u64Total peers across all buckets. Denormalized convenience for
--json consumers and the grep-stable summary line; equals the sum
of every BucketStat::fill.
non_empty_buckets: u64Number of non-empty buckets. Denormalized convenience equal to
buckets.len(); kept as a stable key=value token on the summary
line so operator scripts need not sum the table.
buckets: Vec<BucketStat>Per-bucket fill, one entry per non-empty bucket, ascending by index.
bucket_capacity: u16Maximum entries any bucket can hold (Kademlia K, currently 20).
One value for the whole table — the renderer pairs it with each
BucketStat::fill to show a per-bucket fill ratio.
refresh_interval_s: u64Bucket-refresh interval in whole seconds (ADR 022 §Routing Table, default 1 hour). The refresh task refreshes every non-empty bucket once per interval.
last_refresh_us: Option<u64>Microseconds-since-epoch the most recent bucket-refresh pass
completed, or None if no pass has run yet (node up less than one
interval). The refresh pass touches all non-empty buckets at once,
so this is a single network-wide timestamp rather than a per-bucket
value.
Trait Implementations§
Source§impl Clone for RoutingHealth
impl Clone for RoutingHealth
Source§impl Debug for RoutingHealth
impl Debug for RoutingHealth
Source§impl<'de> Deserialize<'de> for RoutingHealth
impl<'de> Deserialize<'de> for RoutingHealth
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 RoutingHealth
impl RefUnwindSafe for RoutingHealth
impl Send for RoutingHealth
impl Sync for RoutingHealth
impl Unpin for RoutingHealth
impl UnsafeUnpin for RoutingHealth
impl UnwindSafe for RoutingHealth
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