Crate types
Expand description
Types for the eth wire protocol: https://github.com/ethereum/devp2p/blob/master/caps/eth.md
Modules§
- blocks
- Implements the
GetBlockHeaders
,GetBlockBodies
,BlockHeaders
, andBlockBodies
message types. - broadcast
- Types for broadcasting new data.
- capability
- All capability related types
- disconnect_
reason RLPx
disconnect reason sent to/received from peer- header
- Header types.
- message
- Implements Ethereum wire protocol for versions 66, 67, and 68.
Defines structs/enums for messages, request-response pairs, and broadcasts.
Handles compatibility with
EthVersion
. - primitives
- Abstraction over primitive types in network messages.
- receipts
- Implements the
GetReceipts
andReceipts
message types. - snap
- Implements Ethereum SNAP message types.
Snap protocol runs on top of
RLPx
facilitating the exchange of Ethereum state snapshots between peers Reference: Ethereum Snapshot Protocol - state
- Implements the
GetNodeData
andNodeData
message types. - transactions
- Implements the
GetPooledTransactions
andPooledTransactions
message types. - version
- Support for representing the version of the
eth
Structs§
- Account
Data - Account data in the response.
- Account
Range Message - Response containing a number of consecutive accounts and the Merkle proofs for the entire range.
- Block
Bodies - The response to
GetBlockBodies
, containing the block bodies that the peer knows about if any were found. - Block
Hash Number - A block hash and a block number.
- Block
Headers - The response to
GetBlockHeaders
, containing headers if any headers were found. - Byte
Codes Message - Response containing a number of requested contract codes.
- Capabilities
- Represents all capabilities of a node.
- Capability
- A message indicating a supported capability and capability version.
- EthNetwork
Primitives - Network primitive types used by Ethereum networks.
- GetAccount
Range Message - Request for a range of accounts from the state trie.
- GetBlock
Bodies - A request for a peer to return block bodies for the given block hashes.
- GetBlock
Headers - A request for a peer to return block headers starting at the requested block.
The peer must return at most
limit
headers. If thereverse
field istrue
, the headers will be returned starting atstart_block
, traversing towards the genesis block. Otherwise, headers will be returned starting atstart_block
, traversing towards the latest block. - GetByte
Codes Message - Request to get a number of requested contract codes.
- GetNode
Data - A request for state tree nodes corresponding to the given hashes.
This message was removed in
eth/67
, only clients runningeth/66
or earlier will respond to this message. - GetPooled
Transactions - A list of transaction hashes that the peer would like transaction bodies for.
- GetReceipts
- A request for transaction receipts from the given block hashes.
- GetStorage
Ranges Message - Request for the storage slots of multiple accounts’ storage tries.
- GetTrie
Nodes Message - Request a number of state (either account or storage) Merkle trie nodes by path
- NewBlock
- A new block with the current total difficulty, which includes the difficulty of the returned block.
- NewBlock
Hashes - This informs peers of new blocks that have appeared on the network.
- NewPooled
Transaction Hashes66 - This informs peers of transaction hashes for transactions that have appeared on the network, but have not been included in a block.
- NewPooled
Transaction Hashes68 - Same as
NewPooledTransactionHashes66
but extends that beside the transaction hashes, the node sends the transaction types and their sizes (as defined in EIP-2718) as well. - Node
Data - The response to
GetNodeData
, containing the state tree nodes or contract bytecode corresponding to the requested hashes. - Partially
Valid Data - Data that has passed an initial validation pass that is not specific to any mempool message type.
- Pooled
Transactions - The response to
GetPooledTransactions
, containing the transaction bodies associated with the requested hashes. - Protocol
Message - An
eth
protocol message, containing a message ID and payload. - RawCapability
Message - A Capability message consisting of the message-id and the payload.
- Receipts
- The response to
GetReceipts
, containing receipt lists that correspond to each block requested. - Request
TxHashes - Hashes to request from a peer.
- Shared
Transactions - Same as
Transactions
but this is intended as egress message send from local to many peers. - Status
- The status message is used in the eth protocol handshake to ensure that peers are on the same network and are following the same fork.
- Status
Builder - Builder for
Status
messages. - Status
Eth69 - Similar to
Status
, but foreth/69
version, which does not contain thetotal_difficulty
field. - Storage
Data - Storage slot data in the response.
- Storage
Ranges Message - Response containing a number of consecutive storage slots for the requested account and optionally the merkle proofs for the last range (boundary proofs) if it only partially covers the storage trie.
- Transactions
- This informs peers of transactions that have appeared on the network and are not yet included in a block.
- Trie
Nodes Message - Response containing a number of requested state trie nodes
- Trie
Path - Path in the trie for an account and its storage
- Unknown
Disconnect Reason - This represents an unknown disconnect reason with the given code.
- Valid
Announcement Data - Partially validated data from an announcement or a
PooledTransactions
response.
Enums§
- Disconnect
Reason - RLPx disconnect reason.
- EthMessage
- Represents a message in the eth wire protocol, versions 66, 67 and 68.
- EthMessageID
- Represents message IDs for eth protocol messages.
- EthVersion
- The
eth
protocol version. - Hash
OrNumber - Either a hash or a block number
- Headers
Direction - Represents the direction for a headers request depending on the
reverse
field of the request. - NewPooled
Transaction Hashes - A wrapper type for all different new pooled transaction types
- Protocol
Version - RLPx
p2p
protocol version - Snap
Message Id - Message IDs for the snap sync protocol
- Snap
Protocol Message - Represents all types of messages in the snap sync protocol.
- Status
Message StatusMessage
can store either the Legacy version (with TD) or the eth/69 version (omits TD).
Traits§
- Dedup
Payload - Validation pass that checks for unique transaction hashes.
- Encodable2718
- Encoding trait for EIP-2718 envelopes.
- Handle
Mempool Data - Interface for handling mempool message data. Used in various filters in pipelines in
TransactionsManager
and in queries toTransactionPool
. - Handle
Versioned Mempool Data - Extension of
HandleMempoolData
interface, for mempool messages that are versioned. - NetPrimitives
For - This is a helper trait for use in bounds, where some of the
NetworkPrimitives
associated types must be the same as theNodePrimitives
associated types. - Network
Primitives - Abstraction over primitive types which might appear in network messages. See
crate::EthMessage
for more context.
Type Aliases§
- Block
Hash OrNumber - A block hash or a block number
- Eth68
TxMetadata - Value in
PartiallyValidData
map obtained from an announcement.