Struct VersionMessage
pub struct VersionMessage {
pub version: u32,
pub services: ServiceFlags,
pub timestamp: i64,
pub receiver: Address,
pub sender: Address,
pub nonce: u64,
pub user_agent: String,
pub start_height: i32,
pub relay: bool,
}Expand description
Some simple messages
The version message
Fields§
§version: u32The P2P network protocol version
services: ServiceFlagsA bitmask describing the services supported by this node
timestamp: i64The time at which the version message was sent
receiver: AddressThe network address of the peer receiving the message
sender: AddressThe network address of the peer sending the message
nonce: u64A random nonce used to detect loops in the network
The nonce can be used to detect situations when a node accidentally connects to itself. Set it to a random value and, in case of incoming connections, compare the value - same values mean self-connection.
If your application uses P2P to only fetch the data and doesn’t listen you may just set it to 0.
user_agent: StringA string describing the peer’s software
start_height: i32The height of the maximum-work blockchain that the peer is aware of
relay: boolWhether the receiving peer should relay messages to the sender; used if the sender is bandwidth-limited and would like to support bloom filtering. Defaults to false.
Implementations§
§impl VersionMessage
impl VersionMessage
pub fn new(
services: ServiceFlags,
timestamp: i64,
receiver: Address,
sender: Address,
nonce: u64,
user_agent: String,
start_height: i32,
) -> VersionMessage
pub fn new( services: ServiceFlags, timestamp: i64, receiver: Address, sender: Address, nonce: u64, user_agent: String, start_height: i32, ) -> VersionMessage
Constructs a new version message with relay set to false
Trait Implementations§
§impl Clone for VersionMessage
impl Clone for VersionMessage
§fn clone(&self) -> VersionMessage
fn clone(&self) -> VersionMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for VersionMessage
impl Debug for VersionMessage
§impl Decodable for VersionMessage
impl Decodable for VersionMessage
§fn consensus_decode_from_finite_reader<R>(
r: &mut R,
) -> Result<VersionMessage, Error>
fn consensus_decode_from_finite_reader<R>( r: &mut R, ) -> Result<VersionMessage, Error>
Self from a size-limited reader. Read more§fn consensus_decode<R>(r: &mut R) -> Result<VersionMessage, Error>
fn consensus_decode<R>(r: &mut R) -> Result<VersionMessage, Error>
§impl Encodable for VersionMessage
impl Encodable for VersionMessage
§impl PartialEq for VersionMessage
impl PartialEq for VersionMessage
impl Eq for VersionMessage
impl StructuralPartialEq for VersionMessage
Auto Trait Implementations§
impl Freeze for VersionMessage
impl RefUnwindSafe for VersionMessage
impl Send for VersionMessage
impl Sync for VersionMessage
impl Unpin for VersionMessage
impl UnwindSafe for VersionMessage
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request