Module transactions

Available on crate feature network only.
Expand description

Transactions management for the p2p network.

Modules§

config
Aggregation on configurable parameters for TransactionsManager.
constants
Default and spec’d bounds.
fetcher
Component responsible for fetching transactions from NewPooledTransactionHashes. TransactionFetcher is responsible for rate limiting and retry logic for fetching transactions. Upon receiving an announcement, functionality of the TransactionFetcher is used for filtering out hashes 1) for which the tx is already known and 2) unknown but the hash is already seen in a previous announcement. The hashes that remain from an announcement are then packed into a request with respect to the EthVersion of the announcement. Any hashes that don’t fit into the request, are buffered in the TransactionFetcher. If on the other hand, space remains, hashes that the peer has previously announced are taken out of buffered hashes to fill the request up. The GetPooledTransactions request is then sent to the peer’s session, this marks the peer as active with respect to MAX_CONCURRENT_TX_REQUESTS_PER_PEER.
validation
Validation of NewPooledTransactionHashes66 and NewPooledTransactionHashes68 announcements. Validation and filtering of announcements is network dependent.

Structs§

EthMessageFilter
Filter for announcements containing EIP [TxType]s.
MessageFilter
Wrapper for types that implement FilterAnnouncement. The definition of a valid announcement is network dependent. For example, different networks support different [TxType]s, and different [TxType]s have different transaction size constraints. Defaults to EthMessageFilter.
PeerMetadata
Tracks a single peer in the context of TransactionsManager.
PendingPoolImportsInfo
Tracks stats about the TransactionsManager.
TransactionFetcherConfig
Configuration for fetching transactions.
TransactionsHandle
Api to interact with TransactionsManager task.
TransactionsManager
Manages transactions on top of the p2p network.
TransactionsManagerConfig
Configuration for managing transactions within the network.

Enums§

FilterOutcome
Outcome from filtering NewPooledTransactionHashes68. Signals to caller whether to penalize the sender of the announcement or not.
NetworkTransactionEvent
All events related to transactions emitted by the network.
TransactionPropagationMode
Determines how new pending transactions are propagated to other peers in full.
ValidationOutcome
Outcomes from validating a (ty, hash, size) entry from a NewPooledTransactionHashes68. Signals to the caller how to deal with an announcement entry and the peer who sent the announcement.

Constants§

DEFAULT_SOFT_LIMIT_BYTE_SIZE_POOLED_TRANSACTIONS_RESP_ON_PACK_GET_POOLED_TRANSACTIONS_REQ
Default soft limit for the byte size of a PooledTransactions response on assembling a GetPooledTransactions request. This defaults to less than the SOFT_LIMIT_BYTE_SIZE_POOLED_TRANSACTIONS_RESPONSE, at 2 MiB, used when assembling a PooledTransactions response.
SIGNATURE_DECODED_SIZE_BYTES
The size of a decoded signature in bytes.
SOFT_LIMIT_BYTE_SIZE_POOLED_TRANSACTIONS_RESPONSE
Soft limit for the byte size of a PooledTransactions response on assembling a GetPooledTransactions request.

Traits§

FilterAnnouncement
Filters valid entries in NewPooledTransactionHashes68 and NewPooledTransactionHashes66 in place, and flags misbehaving peers.
PartiallyFilterMessage
Generic filter for announcements and responses. Checks for empty message and unique hashes/ transactions in message.
ValidateTx68
Interface for validating a (ty, size, hash) tuple from a NewPooledTransactionHashes68..

Type Aliases§

PoolImportFuture
The future for importing transactions into the pool.