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: u32
The P2P network protocol version
services: ServiceFlags
A bitmask describing the services supported by this node
timestamp: i64
The time at which the version
message was sent
receiver: Address
The network address of the peer receiving the message
sender: Address
The network address of the peer sending the message
nonce: u64
A 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: String
A string describing the peer’s software
start_height: i32
The height of the maximum-work blockchain that the peer is aware of
relay: bool
Whether 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<'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<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> 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
Source§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