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
- BanList
Message - BanList message - Response with ban list or hash
- Bip158
Filter Data - BIP158 filter data (embedded in FilteredBlock message)
- Cfcheckpt
Message - cfcheckpt message - Filter checkpoint response
- Cfheaders
Message - cfheaders message - Filter headers response
- Cfilter
Message - cfilter message - Compact block filter response
- Filter
Header Data - Filter header data (for serialization)
- Filtered
Block Message - FilteredBlock message - Response with filtered transactions
- GetBan
List Message - GetBanList message - Request peer’s ban list (or hashed version)
- GetCfcheckpt
Message - getcfcheckpt message - Request filter checkpoints
- GetCfheaders
Message - getcfheaders message - Request filter headers
- GetCfilters
Message - getcfilters message - Request filters for block range
- GetModule
ByHash Message - getmodulebyhash message - Request module by hash (content-addressable)
- GetModule
List Message - getmodulelist message - Request list of available modules
- GetModule
Message - getmodule message - Request module by name
- GetPayment
Request Message - getpaymentrequest message - Request payment details from merchant
- Module
ByHash Message - modulebyhash message - Module response by hash
- Module
InvMessage - moduleinv message - Module inventory (announce available modules)
- Module
Inventory Item - Module inventory item
- Module
List Message - modulelist message - List of available modules
- Module
Message - module message - Module response
- PaymentACK
Message - paymentack message - Merchant payment confirmation
- Payment
Message - payment message - Customer payment transaction(s)
- Payment
Proof Message - paymentproof message - CTV covenant proof for payment commitment
- Payment
Request Message - paymentrequest message - Merchant payment request response
- PkgTxn
Message - pkgtxn message - Package of transactions
- PkgTxn
Reject Message - pkgtxnreject message - Package rejection
- ReqRecon
Message - reqrecon message - Request reconciliation
- ReqSkt
Message - reqskt message - Request sketch
- Send
PkgTxn Message - sendpkgtxn message - Request to send package of transactions
- Send
TxRcncl Message - sendtxrcncl message - Announce Erlay support and negotiate parameters
- Settlement
Notification Message - settlementnotification message - Settlement status update
- Sketch
Message - sketch message - Send reconciliation sketch
- Spam
Breakdown - SpamBreakdown - Breakdown of spam by category
- Spam
Summary - SpamSummary - Summary of filtered spam transactions
- TcpFramed
Parser - Bitcoin P2P framed message parser (TCP path). Pass allowed commands from the node.
- Version
Message - Version message
Enums§
- Protocol
Message - Bitcoin protocol message types