Struct bitcoin::p2p::message_network::VersionMessage
source · 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,
}
std
only.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§
source§impl VersionMessage
impl VersionMessage
sourcepub 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§
source§impl Clone for VersionMessage
impl Clone for VersionMessage
source§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 moresource§impl Debug for VersionMessage
impl Debug for VersionMessage
source§impl Decodable for VersionMessage
impl Decodable for VersionMessage
source§fn consensus_decode_from_finite_reader<R: BufRead + ?Sized>(
r: &mut R,
) -> Result<VersionMessage, Error>
fn consensus_decode_from_finite_reader<R: BufRead + ?Sized>( r: &mut R, ) -> Result<VersionMessage, Error>
Self
from a size-limited reader. Read moresource§fn consensus_decode<R: BufRead + ?Sized>(
r: &mut R,
) -> Result<VersionMessage, Error>
fn consensus_decode<R: BufRead + ?Sized>( r: &mut R, ) -> Result<VersionMessage, Error>
source§impl Encodable for VersionMessage
impl Encodable for VersionMessage
source§impl PartialEq for VersionMessage
impl PartialEq for VersionMessage
source§fn eq(&self, other: &VersionMessage) -> bool
fn eq(&self, other: &VersionMessage) -> bool
self
and other
values to be equal, and is used
by ==
.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§
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)