Bitcoin ABC  0.29.2
P2P Digital Currency
Functions | Variables
NetMsgType Namespace Reference

Bitcoin protocol message types. More...

Functions

bool IsBlockLike (const std::string &strCommand)
 Indicate if the message is used to transmit the content of a block. More...
 

Variables

const char * VERSION = "version"
 The version message provides information about the transmitting node to the receiving node at the beginning of a connection. More...
 
const char * VERACK = "verack"
 The verack message acknowledges a previously-received version message, informing the connecting node that it can begin to send other messages. More...
 
const char * ADDR = "addr"
 The addr (IP address) message relays connection information for peers on the network. More...
 
const char * ADDRV2 = "addrv2"
 The addrv2 message relays connection information for peers on the network just like the addr message, but is extended to allow gossiping of longer node addresses (see BIP155). More...
 
const char * SENDADDRV2 = "sendaddrv2"
 The sendaddrv2 message signals support for receiving ADDRV2 messages (BIP155). More...
 
const char * INV = "inv"
 The inv message (inventory message) transmits one or more inventories of objects known to the transmitting peer. More...
 
const char * GETDATA = "getdata"
 The getdata message requests one or more data objects from another node. More...
 
const char * MERKLEBLOCK = "merkleblock"
 The merkleblock message is a reply to a getdata message which requested a block using the inventory type MSG_MERKLEBLOCK. More...
 
const char * GETBLOCKS = "getblocks"
 The getblocks message requests an inv message that provides block header hashes starting from a particular point in the block chain. More...
 
const char * GETHEADERS = "getheaders"
 The getheaders message requests a headers message that provides block headers starting from a particular point in the block chain. More...
 
const char * TX = "tx"
 The tx message transmits a single transaction. More...
 
const char * HEADERS = "headers"
 The headers message sends one or more block headers to a node which previously requested certain headers with a getheaders message. More...
 
const char * BLOCK = "block"
 The block message transmits a single serialized block. More...
 
const char * GETADDR = "getaddr"
 The getaddr message requests an addr message from the receiving node, preferably one with lots of IP addresses of other receiving nodes. More...
 
const char * MEMPOOL = "mempool"
 The mempool message requests the TXIDs of transactions that the receiving node has verified as valid but which have not yet appeared in a block. More...
 
const char * PING = "ping"
 The ping message is sent periodically to help confirm that the receiving peer is still connected. More...
 
const char * PONG = "pong"
 The pong message replies to a ping message, proving to the pinging node that the ponging node is still alive. More...
 
const char * NOTFOUND = "notfound"
 The notfound message is a reply to a getdata message which requested an object the receiving node does not have available for relay. More...
 
const char * FILTERLOAD = "filterload"
 The filterload message tells the receiving peer to filter all relayed transactions and requested merkle blocks through the provided filter. More...
 
const char * FILTERADD = "filteradd"
 The filteradd message tells the receiving peer to add a single element to a previously-set bloom filter, such as a new public key. More...
 
const char * FILTERCLEAR = "filterclear"
 The filterclear message tells the receiving peer to remove a previously-set bloom filter. More...
 
const char * SENDHEADERS = "sendheaders"
 Indicates that a node prefers to receive new block announcements via a "headers" message rather than an "inv". More...
 
const char * FEEFILTER = "feefilter"
 The feefilter message tells the receiving peer not to inv us any txs which do not meet the specified min fee rate. More...
 
const char * SENDCMPCT = "sendcmpct"
 Contains a 1-byte bool and 8-byte LE version number. More...
 
const char * CMPCTBLOCK = "cmpctblock"
 Contains a CBlockHeaderAndShortTxIDs object - providing a header and list of "short txids". More...
 
const char * GETBLOCKTXN = "getblocktxn"
 Contains a BlockTransactionsRequest Peer should respond with "blocktxn" message. More...
 
const char * BLOCKTXN = "blocktxn"
 Contains a BlockTransactions. More...
 
const char * GETCFILTERS = "getcfilters"
 getcfilters requests compact filters for a range of blocks. More...
 
const char * CFILTER = "cfilter"
 cfilter is a response to a getcfilters request containing a single compact filter. More...
 
const char * GETCFHEADERS = "getcfheaders"
 getcfheaders requests a compact filter header and the filter hashes for a range of blocks, which can then be used to reconstruct the filter headers for those blocks. More...
 
const char * CFHEADERS = "cfheaders"
 cfheaders is a response to a getcfheaders request containing a filter header and a vector of filter hashes for each subsequent block in the requested range. More...
 
const char * GETCFCHECKPT = "getcfcheckpt"
 getcfcheckpt requests evenly spaced compact filter headers, enabling parallelized download and validation of the headers between them. More...
 
const char * CFCHECKPT = "cfcheckpt"
 cfcheckpt is a response to a getcfcheckpt request containing a vector of evenly spaced filter headers for blocks on the requested chain. More...
 
const char * AVAHELLO = "avahello"
 Contains a delegation and a signature. More...
 
const char * AVAPOLL = "avapoll"
 Contains an avalanche::Poll. More...
 
const char * AVARESPONSE = "avaresponse"
 Contains an avalanche::Response. More...
 
const char * AVAPROOF = "avaproof"
 Contains an avalanche::Proof. More...
 
const char * GETAVAADDR = "getavaaddr"
 The getavaaddr message requests an addr message from the receiving node, containing IP addresses of the most active avalanche nodes. More...
 
const char * GETAVAPROOFS = "getavaproofs"
 The getavaproofs message requests an avaproofs message that provides the proof short ids of all the valid proofs known by our peer. More...
 
const char * AVAPROOFS = "avaproofs"
 The avaproofs message the proof short ids of all the valid proofs that we know. More...
 
const char * AVAPROOFSREQ = "avaproofsreq"
 Request for missing avalanche proofs after an avaproofs message has been processed. More...
 

Detailed Description

Bitcoin protocol message types.

When adding new message types, don't forget to update allNetMessageTypes in protocol.cpp.

Function Documentation

◆ IsBlockLike()

bool NetMsgType::IsBlockLike ( const std::string &  strCommand)

Indicate if the message is used to transmit the content of a block.

These messages can be significantly larger than usual messages and therefore may need to be processed differently.

Definition at line 59 of file protocol.cpp.

Here is the caller graph for this function:

Variable Documentation

◆ ADDR

const char * NetMsgType::ADDR = "addr"

The addr (IP address) message relays connection information for peers on the network.

Definition at line 19 of file protocol.cpp.

◆ ADDRV2

const char * NetMsgType::ADDRV2 = "addrv2"

The addrv2 message relays connection information for peers on the network just like the addr message, but is extended to allow gossiping of longer node addresses (see BIP155).

Definition at line 20 of file protocol.cpp.

◆ AVAHELLO

const char * NetMsgType::AVAHELLO = "avahello"

Contains a delegation and a signature.

Definition at line 50 of file protocol.cpp.

◆ AVAPOLL

const char * NetMsgType::AVAPOLL = "avapoll"

Contains an avalanche::Poll.

Peer should respond with "avaresponse" message.

Definition at line 51 of file protocol.cpp.

◆ AVAPROOF

const char * NetMsgType::AVAPROOF = "avaproof"

Contains an avalanche::Proof.

Sent in response to a "getdata" message with inventory type MSG_AVA_PROOF.

Definition at line 53 of file protocol.cpp.

◆ AVAPROOFS

const char * NetMsgType::AVAPROOFS = "avaproofs"

The avaproofs message the proof short ids of all the valid proofs that we know.

Definition at line 56 of file protocol.cpp.

◆ AVAPROOFSREQ

const char * NetMsgType::AVAPROOFSREQ = "avaproofsreq"

Request for missing avalanche proofs after an avaproofs message has been processed.

Definition at line 57 of file protocol.cpp.

◆ AVARESPONSE

const char * NetMsgType::AVARESPONSE = "avaresponse"

Contains an avalanche::Response.

Sent in response to a "avapoll" message.

Definition at line 52 of file protocol.cpp.

◆ BLOCK

const char * NetMsgType::BLOCK = "block"

The block message transmits a single serialized block.

Definition at line 29 of file protocol.cpp.

◆ BLOCKTXN

const char * NetMsgType::BLOCKTXN = "blocktxn"

Contains a BlockTransactions.

Sent in response to a "getblocktxn" message.

Since
protocol version 70014 as described by BIP 152

Definition at line 43 of file protocol.cpp.

◆ CFCHECKPT

const char * NetMsgType::CFCHECKPT = "cfcheckpt"

cfcheckpt is a response to a getcfcheckpt request containing a vector of evenly spaced filter headers for blocks on the requested chain.

Definition at line 49 of file protocol.cpp.

◆ CFHEADERS

const char * NetMsgType::CFHEADERS = "cfheaders"

cfheaders is a response to a getcfheaders request containing a filter header and a vector of filter hashes for each subsequent block in the requested range.

Definition at line 47 of file protocol.cpp.

◆ CFILTER

const char * NetMsgType::CFILTER = "cfilter"

cfilter is a response to a getcfilters request containing a single compact filter.

Definition at line 45 of file protocol.cpp.

◆ CMPCTBLOCK

const char * NetMsgType::CMPCTBLOCK = "cmpctblock"

Contains a CBlockHeaderAndShortTxIDs object - providing a header and list of "short txids".

Since
protocol version 70014 as described by BIP 152

Definition at line 41 of file protocol.cpp.

◆ FEEFILTER

const char * NetMsgType::FEEFILTER = "feefilter"

The feefilter message tells the receiving peer not to inv us any txs which do not meet the specified min fee rate.

Since
protocol version 70013 as described by BIP133

Definition at line 39 of file protocol.cpp.

◆ FILTERADD

const char * NetMsgType::FILTERADD = "filteradd"

The filteradd message tells the receiving peer to add a single element to a previously-set bloom filter, such as a new public key.

Since
protocol version 70001 as described by BIP37. Only available with service bit NODE_BLOOM since protocol version 70011 as described by BIP111.

Definition at line 36 of file protocol.cpp.

◆ FILTERCLEAR

const char * NetMsgType::FILTERCLEAR = "filterclear"

The filterclear message tells the receiving peer to remove a previously-set bloom filter.

Since
protocol version 70001 as described by BIP37. Only available with service bit NODE_BLOOM since protocol version 70011 as described by BIP111.

Definition at line 37 of file protocol.cpp.

◆ FILTERLOAD

const char * NetMsgType::FILTERLOAD = "filterload"

The filterload message tells the receiving peer to filter all relayed transactions and requested merkle blocks through the provided filter.

Since
protocol version 70001 as described by BIP37. Only available with service bit NODE_BLOOM since protocol version 70011 as described by BIP111.

Definition at line 35 of file protocol.cpp.

◆ GETADDR

const char * NetMsgType::GETADDR = "getaddr"

The getaddr message requests an addr message from the receiving node, preferably one with lots of IP addresses of other receiving nodes.

Definition at line 30 of file protocol.cpp.

◆ GETAVAADDR

const char * NetMsgType::GETAVAADDR = "getavaaddr"

The getavaaddr message requests an addr message from the receiving node, containing IP addresses of the most active avalanche nodes.

Definition at line 54 of file protocol.cpp.

◆ GETAVAPROOFS

const char * NetMsgType::GETAVAPROOFS = "getavaproofs"

The getavaproofs message requests an avaproofs message that provides the proof short ids of all the valid proofs known by our peer.

Definition at line 55 of file protocol.cpp.

◆ GETBLOCKS

const char * NetMsgType::GETBLOCKS = "getblocks"

The getblocks message requests an inv message that provides block header hashes starting from a particular point in the block chain.

Definition at line 25 of file protocol.cpp.

◆ GETBLOCKTXN

const char * NetMsgType::GETBLOCKTXN = "getblocktxn"

Contains a BlockTransactionsRequest Peer should respond with "blocktxn" message.

Since
protocol version 70014 as described by BIP 152

Definition at line 42 of file protocol.cpp.

◆ GETCFCHECKPT

const char * NetMsgType::GETCFCHECKPT = "getcfcheckpt"

getcfcheckpt requests evenly spaced compact filter headers, enabling parallelized download and validation of the headers between them.

Only available with service bit NODE_COMPACT_FILTERS as described by BIP 157 & 158.

Definition at line 48 of file protocol.cpp.

◆ GETCFHEADERS

const char * NetMsgType::GETCFHEADERS = "getcfheaders"

getcfheaders requests a compact filter header and the filter hashes for a range of blocks, which can then be used to reconstruct the filter headers for those blocks.

Only available with service bit NODE_COMPACT_FILTERS as described by BIP 157 & 158.

Definition at line 46 of file protocol.cpp.

◆ GETCFILTERS

const char * NetMsgType::GETCFILTERS = "getcfilters"

getcfilters requests compact filters for a range of blocks.

Only available with service bit NODE_COMPACT_FILTERS as described by BIP 157 & 158.

Definition at line 44 of file protocol.cpp.

◆ GETDATA

const char * NetMsgType::GETDATA = "getdata"

The getdata message requests one or more data objects from another node.

Definition at line 23 of file protocol.cpp.

◆ GETHEADERS

const char * NetMsgType::GETHEADERS = "getheaders"

The getheaders message requests a headers message that provides block headers starting from a particular point in the block chain.

Since
protocol version 31800.

Definition at line 26 of file protocol.cpp.

◆ HEADERS

const char * NetMsgType::HEADERS = "headers"

The headers message sends one or more block headers to a node which previously requested certain headers with a getheaders message.

Since
protocol version 31800.

Definition at line 28 of file protocol.cpp.

◆ INV

const char * NetMsgType::INV = "inv"

The inv message (inventory message) transmits one or more inventories of objects known to the transmitting peer.

Definition at line 22 of file protocol.cpp.

◆ MEMPOOL

const char * NetMsgType::MEMPOOL = "mempool"

The mempool message requests the TXIDs of transactions that the receiving node has verified as valid but which have not yet appeared in a block.

Since
protocol version 60002.

Definition at line 31 of file protocol.cpp.

◆ MERKLEBLOCK

const char * NetMsgType::MERKLEBLOCK = "merkleblock"

The merkleblock message is a reply to a getdata message which requested a block using the inventory type MSG_MERKLEBLOCK.

Since
protocol version 70001 as described by BIP37.

Definition at line 24 of file protocol.cpp.

◆ NOTFOUND

const char * NetMsgType::NOTFOUND = "notfound"

The notfound message is a reply to a getdata message which requested an object the receiving node does not have available for relay.

Since
protocol version 70001.

Definition at line 34 of file protocol.cpp.

◆ PING

const char * NetMsgType::PING = "ping"

The ping message is sent periodically to help confirm that the receiving peer is still connected.

Definition at line 32 of file protocol.cpp.

◆ PONG

const char * NetMsgType::PONG = "pong"

The pong message replies to a ping message, proving to the pinging node that the ponging node is still alive.

Since
protocol version 60001 as described by BIP31.

Definition at line 33 of file protocol.cpp.

◆ SENDADDRV2

const char * NetMsgType::SENDADDRV2 = "sendaddrv2"

The sendaddrv2 message signals support for receiving ADDRV2 messages (BIP155).

It also implies that its sender can encode as ADDRV2 and would send ADDRV2 instead of ADDR to a peer that has signaled ADDRV2 support by sending SENDADDRV2.

Definition at line 21 of file protocol.cpp.

◆ SENDCMPCT

const char * NetMsgType::SENDCMPCT = "sendcmpct"

Contains a 1-byte bool and 8-byte LE version number.

Indicates that a node is willing to provide blocks via "cmpctblock" messages. May indicate that a node prefers to receive new block announcements via a "cmpctblock" message rather than an "inv", depending on message contents.

Since
protocol version 70014 as described by BIP 152

Definition at line 40 of file protocol.cpp.

◆ SENDHEADERS

const char * NetMsgType::SENDHEADERS = "sendheaders"

Indicates that a node prefers to receive new block announcements via a "headers" message rather than an "inv".

Since
protocol version 70012 as described by BIP130.

Definition at line 38 of file protocol.cpp.

◆ TX

const char * NetMsgType::TX = "tx"

The tx message transmits a single transaction.

Definition at line 27 of file protocol.cpp.

◆ VERACK

const char * NetMsgType::VERACK = "verack"

The verack message acknowledges a previously-received version message, informing the connecting node that it can begin to send other messages.

Definition at line 18 of file protocol.cpp.

◆ VERSION

const char * NetMsgType::VERSION = "version"

The version message provides information about the transmitting node to the receiving node at the beginning of a connection.

Definition at line 17 of file protocol.cpp.