Skip to main content

Module node_tcp

Module node_tcp 

Source
Expand description

Framed TCP P2P (mainnet magic, command allowlist supplied by the node). Not BIP324 v2 transport. Bitcoin TCP v1 framed messages: standard header (magic, command, length, checksum) plus payload.

This is the full ProtocolMessage union and TcpFramedParser (parse/serialize) used by the full node (blvm-node). BIP324 v2 encrypted transport is the separate v2_transport module (enable feature = "bip324"), not this stack.

The embedding binary supplies which command strings are accepted (e.g. node ALLOWED_COMMANDS).

Re-exports§

pub use crate::p2p_framing::BITCOIN_MAGIC_MAINNET;
pub use crate::p2p_framing::BITCOIN_MAGIC_REGTEST;
pub use crate::p2p_framing::BITCOIN_MAGIC_TESTNET;
pub use crate::p2p_framing::BITCOIN_P2P_MAGIC_MAINNET_LE;
pub use crate::p2p_framing::MAX_ADDR_TO_SEND;
pub use crate::p2p_framing::MAX_HEADERS_RESULTS;
pub use crate::p2p_framing::MAX_INV_SZ;
pub use crate::p2p_framing::MAX_PROTOCOL_MESSAGE_LENGTH;
pub use crate::service_flags::commons::NODE_BAN_LIST_SHARING;
pub use crate::service_flags::commons::NODE_FIBRE;
pub use crate::service_flags::commons::NODE_GOVERNANCE;
pub use crate::service_flags::commons::NODE_PACKAGE_RELAY;
pub use crate::service_flags::commons::NODE_DANDELION;
pub use crate::service_flags::commons::NODE_UTXO_COMMITMENTS;
pub use crate::service_flags::commons::NODE_ERLAY;
pub use crate::p2p_commands::cmd;
pub use crate::network::NetworkAddress;
pub use crate::BlockMessage;
pub use crate::CompactBlockMessage;
pub use crate::FilterPreferences;
pub use crate::GetFilteredBlockMessage;
pub use crate::GetUTXOProofMessage;
pub use crate::GetUTXOSetMessage;
pub use crate::TxMessage;
pub use crate::UTXOCommitment;
pub use crate::UTXOProofMessage;
pub use crate::UTXOSetMessage;
pub use crate::network::AddrMessage;
pub use crate::network::AddrV2Message;
pub use crate::network::BlockTxnMessage;
pub use crate::network::FeeFilterMessage;
pub use crate::network::GetBlockTxnMessage;
pub use crate::network::GetBlocksMessage;
pub use crate::network::GetDataMessage;
pub use crate::network::GetHeadersMessage;
pub use crate::network::HeadersMessage;
pub use crate::network::InvMessage;
pub use crate::network::InventoryVector;
pub use crate::network::NotFoundMessage;
pub use crate::network::PingMessage;
pub use crate::network::PongMessage;
pub use crate::network::RejectMessage;
pub use crate::network::SendCmpctMessage;

Structs§

BanEntry
Single ban entry
BanListMessage
BanList message - Response with ban list or hash
Bip158FilterData
BIP158 filter data (embedded in FilteredBlock message)
CfcheckptMessage
cfcheckpt message - Filter checkpoint response
CfheadersMessage
cfheaders message - Filter headers response
CfilterMessage
cfilter message - Compact block filter response
FilterHeaderData
Filter header data (for serialization)
FilteredBlockMessage
FilteredBlock message - Response with filtered transactions
GetBanListMessage
GetBanList message - Request peer’s ban list (or hashed version)
GetCfcheckptMessage
getcfcheckpt message - Request filter checkpoints
GetCfheadersMessage
getcfheaders message - Request filter headers
GetCfiltersMessage
getcfilters message - Request filters for block range
GetModuleByHashMessage
getmodulebyhash message - Request module by hash (content-addressable)
GetModuleListMessage
getmodulelist message - Request list of available modules
GetModuleMessage
getmodule message - Request module by name
GetPaymentRequestMessage
getpaymentrequest message - Request payment details from merchant
ModuleByHashMessage
modulebyhash message - Module response by hash
ModuleInvMessage
moduleinv message - Module inventory (announce available modules)
ModuleInventoryItem
Module inventory item
ModuleListMessage
modulelist message - List of available modules
ModuleMessage
module message - Module response
PaymentACKMessage
paymentack message - Merchant payment confirmation
PaymentMessage
payment message - Customer payment transaction(s)
PaymentProofMessage
paymentproof message - CTV covenant proof for payment commitment
PaymentRequestMessage
paymentrequest message - Merchant payment request response
PkgTxnMessage
pkgtxn message - Package of transactions
PkgTxnRejectMessage
pkgtxnreject message - Package rejection
ReqReconMessage
reqrecon message - Request reconciliation
ReqSktMessage
reqskt message - Request sketch
SendPkgTxnMessage
sendpkgtxn message - Request to send package of transactions
SendTxRcnclMessage
sendtxrcncl message - Announce Erlay support and negotiate parameters
SettlementNotificationMessage
settlementnotification message - Settlement status update
SketchMessage
sketch message - Send reconciliation sketch
SpamBreakdown
SpamBreakdown - Breakdown of spam by category
SpamSummary
SpamSummary - Summary of filtered spam transactions
TcpFramedParser
Bitcoin P2P framed message parser (TCP path). Pass allowed commands from the node.
VersionMessage
Version message

Enums§

ProtocolMessage
Bitcoin protocol message types