Module bitcoin::network::constants [−][src]
Expand description
Network constants
This module provides various constants relating to the Bitcoin network protocol, such as protocol versioning and magic header bytes.
The Network type implements the Decodable and
Encodable traits and encodes the magic bytes of the given
network
Example: encoding a network’s magic bytes
use bitcoin::network::constants::Network;
use bitcoin::consensus::encode::serialize;
let network = Network::Bitcoin;
let bytes = serialize(&network.magic());
assert_eq!(&bytes[..], &[0xF9, 0xBE, 0xB4, 0xD9]);Structs
Flags to indicate which network services a node supports.
Enums
The cryptocurrency to act on
Constants
Version of the protocol as appearing in network message headers
This constant is used to signal to other peers which features you support.
Increasing it implies that your software also supports every feature prior to this version.
Doing so without support may lead to you incorrectly banning other peers or other peers banning you.
These are the features required for each version:
70016 - Support receiving wtxidrelay message between version and verack message
70015 - Support receiving invalid compact blocks from a peer without banning them
70014 - Support compact block messages sendcmpct, cmpctblock, getblocktxn and blocktxn
70013 - Support feefilter message
70012 - Support sendheaders message and announce new blocks via headers rather than inv
70011 - Support NODE_BLOOM service flag and don’t support bloom filter messages if it is not set
70002 - Support reject message
70001 - Support bloom filter messages filterload, filterclear filteradd, merkleblock and FILTERED_BLOCK inventory type
60002 - Support mempool message
60001 - Support pong message and nonce in ping message