eth::protocol¶
Types¶
| Name | |
|---|---|
| using std::vector< uint8_t > | ByteBuffer |
| using rlp::EncodingResult< ByteBuffer > | EncodeResult |
| template <typename T > using rlp::Result< T > |
DecodeResult |
| using rlp::outcome::result< void, eth::StatusValidationError, rlp::outcome::policy::all_narrow > | ValidationResult Result type for Status validation (void on success, error on mismatch). Uses boost::outcome with StatusValidationError — mirrors go-ethereum's readStatus() return values from eth/protocols/eth/handshake.go. |
Functions¶
Attributes¶
| Name | |
|---|---|
| uint8_t | kStatusMessageId |
| std::chrono::seconds | kStatusHandshakeTimeout Maximum time to wait for a peer's ETH Status after sending ours. Matches go-ethereum's handshakeTimeout (eth/protocols/eth/handshake.go). If the peer does not reply within this window it is dropped as malicious or mismatched (e.g. a Polygon bor node on the Ethereum P2P network). |
| uint8_t | kNewBlockHashesMessageId |
| uint8_t | kTransactionsMessageId |
| uint8_t | kGetBlockHeadersMessageId |
| uint8_t | kBlockHeadersMessageId |
| uint8_t | kGetBlockBodiesMessageId |
| uint8_t | kBlockBodiesMessageId |
| uint8_t | kNewBlockMessageId |
| uint8_t | kNewPooledTransactionHashesMessageId |
| uint8_t | kGetPooledTransactionsMessageId |
| uint8_t | kPooledTransactionsMessageId |
| uint8_t | kGetReceiptsMessageId |
| uint8_t | kReceiptsMessageId |
Types Documentation¶
using ByteBuffer¶
using EncodeResult¶
using DecodeResult¶
using ValidationResult¶
using eth::protocol::ValidationResult = rlp::outcome::result<void, eth::StatusValidationError,
rlp::outcome::policy::all_narrow>;
Result type for Status validation (void on success, error on mismatch). Uses boost::outcome with StatusValidationError — mirrors go-ethereum's readStatus() return values from eth/protocols/eth/handshake.go.
Functions Documentation¶
function encode_status¶
function decode_status¶
function validate_status¶
ValidationResult validate_status(
const eth::StatusMessage & msg,
uint64_t expected_network_id,
const eth::Hash256 & expected_genesis
)
Validate a decoded StatusMessage against our expected chain parameters.
Parameters:
- msg The decoded peer Status message (variant).
- expected_network_id Our chain's network ID.
- expected_genesis Our chain's genesis block hash.
Return: Success, or the first validation error encountered.
Mirrors go-ethereum's readStatus() checks (handshake.go):
- NetworkID must match
expected_network_id - Genesis must match
expected_genesis - For ETH/69: EarliestBlock must be <= LatestBlock (when LatestBlock != 0)
function encode_new_block_hashes¶
function decode_new_block_hashes¶
function encode_new_pooled_tx_hashes¶
function decode_new_pooled_tx_hashes¶
DecodeResult< NewPooledTransactionHashesMessage > decode_new_pooled_tx_hashes(
rlp::ByteView rlp_data
)
function encode_get_block_headers¶
function decode_get_block_headers¶
function encode_block_headers¶
function decode_block_headers¶
function encode_get_receipts¶
function decode_get_receipts¶
function encode_receipts¶
function decode_receipts¶
function encode_get_pooled_transactions¶
function decode_get_pooled_transactions¶
DecodeResult< GetPooledTransactionsMessage > decode_get_pooled_transactions(
rlp::ByteView rlp_data
)
function encode_pooled_transactions¶
function decode_pooled_transactions¶
function encode_get_block_bodies¶
function decode_get_block_bodies¶
function encode_block_bodies¶
function decode_block_bodies¶
function encode_new_block¶
function decode_new_block¶
Attributes Documentation¶
variable kStatusMessageId¶
variable kStatusHandshakeTimeout¶
Maximum time to wait for a peer's ETH Status after sending ours. Matches go-ethereum's handshakeTimeout (eth/protocols/eth/handshake.go). If the peer does not reply within this window it is dropped as malicious or mismatched (e.g. a Polygon bor node on the Ethereum P2P network).
variable kNewBlockHashesMessageId¶
variable kTransactionsMessageId¶
variable kGetBlockHeadersMessageId¶
variable kBlockHeadersMessageId¶
variable kGetBlockBodiesMessageId¶
variable kBlockBodiesMessageId¶
variable kNewBlockMessageId¶
variable kNewPooledTransactionHashesMessageId¶
variable kGetPooledTransactionsMessageId¶
variable kPooledTransactionsMessageId¶
variable kGetReceiptsMessageId¶
variable kReceiptsMessageId¶
Updated on 2026-04-13 at 23:22:46 -0700