pub struct StatusMessage {
pub peer_id: String,
pub best_block: Hash,
pub height: u64,
pub chain_id: u64,
pub protocol_version: String,
pub tee_capable: bool,
pub tee_vendor: Option<TeeVendor>,
}Expand description
Status message for peer synchronization.
Broadcast on tenzro/status every 10s by every node and consumed
by PeerStatusTracker to compute a network-tip estimate for eth_syncing
and to discover TEE-capable peers for confidential-compute routing.
peer_id is embedded so subscribers can attribute the message to a sender —
gossipsub does not surface the originating PeerId to topic subscribers,
only to the swarm event handler.
§TEE capability advertisement
Every node advertises its TEE capability here so peers can route
confidential-compute and custodial-key workloads to TEE-equipped nodes
without requiring out-of-band discovery. All nodes participate in
consensus regardless of tee_capable; the field is purely a routing
hint for TEE-gated workloads (confidential AI inference, custodial
key management, attestation issuance).
Fields§
§peer_id: Stringlibp2p PeerId of the sender, base58-encoded. Subscribers parse this
back into a PeerId via PeerId::from_str. Required so the
PeerStatusTracker can key entries by peer.
best_block: HashCurrent best block hash
height: u64Current block height
chain_id: u64Chain ID
protocol_version: StringProtocol version
tee_capable: boolWhether this node has a TEE provider available and can serve confidential-compute / custodial workloads on behalf of peers.
tee_vendor: Option<TeeVendor>TEE vendor for this node, if any (None on commodity hardware).
Peers consult this when selecting a TEE provider for a specific
vendor requirement (e.g. SEV-SNP-only workloads).
Trait Implementations§
Source§impl Clone for StatusMessage
impl Clone for StatusMessage
Source§fn clone(&self) -> StatusMessage
fn clone(&self) -> StatusMessage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StatusMessage
impl Debug for StatusMessage
Source§impl<'de> Deserialize<'de> for StatusMessage
impl<'de> Deserialize<'de> for StatusMessage
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 StatusMessage
impl RefUnwindSafe for StatusMessage
impl Send for StatusMessage
impl Sync for StatusMessage
impl Unpin for StatusMessage
impl UnsafeUnpin for StatusMessage
impl UnwindSafe for StatusMessage
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
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