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 theTransactionFetcher
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 theEthVersion
of the announcement. Any hashes that don’t fit into the request, are buffered in theTransactionFetcher
. 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. TheGetPooledTransactions
request is then sent to the peer’s session, this marks the peer as active with respect toMAX_CONCURRENT_TX_REQUESTS_PER_PEER
. - validation
- Validation of
NewPooledTransactionHashes66
andNewPooledTransactionHashes68
announcements. Validation and filtering of announcements is network dependent.
Structs§
- EthMessage
Filter - Filter for announcements containing EIP [
TxType
]s. - Message
Filter - 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 toEthMessageFilter
. - Peer
Metadata - Tracks a single peer in the context of
TransactionsManager
. - Pending
Pool Imports Info - Tracks stats about the
TransactionsManager
. - Transaction
Fetcher Config - Configuration for fetching transactions.
- Transactions
Handle - Api to interact with
TransactionsManager
task. - Transactions
Manager - Manages transactions on top of the p2p network.
- Transactions
Manager Config - Configuration for managing transactions within the network.
Enums§
- Filter
Outcome - Outcome from filtering
NewPooledTransactionHashes68
. Signals to caller whether to penalize the sender of the announcement or not. - Network
Transaction Event - All events related to transactions emitted by the network.
- Transaction
Propagation Mode - Determines how new pending transactions are propagated to other peers in full.
- Validation
Outcome - Outcomes from validating a
(ty, hash, size)
entry from aNewPooledTransactionHashes68
. 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 aGetPooledTransactions
request. This defaults to less than theSOFT_LIMIT_BYTE_SIZE_POOLED_TRANSACTIONS_RESPONSE
, at 2 MiB, used when assembling aPooledTransactions
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 aGetPooledTransactions
request.
Traits§
- Filter
Announcement - Filters valid entries in
NewPooledTransactionHashes68
andNewPooledTransactionHashes66
in place, and flags misbehaving peers. - Partially
Filter Message - Generic filter for announcements and responses. Checks for empty message and unique hashes/ transactions in message.
- Validate
Tx68 - Interface for validating a
(ty, size, hash)
tuple from aNewPooledTransactionHashes68
..
Type Aliases§
- Pool
Import Future - The future for importing transactions into the pool.