Expand description
Re-exported from reth_node_builder
Modules§
- add_ons
- Node add-ons. Depend on core
NodeComponents. - aliases
- Type aliases for traits that are often used together
- common
- Helper types that can be used by launchers.
- components
- Support for configuring the components of a node. Support for configuring the components of a node.
- config
- Engine tree configuration.
- exex
- Support for installing the ExExs (execution extensions) in a node. Types for launching execution extensions (ExEx).
- hooks
- Node event hooks.
- invalid_
block_ hook - Invalid block hook helpers for the node builder.
- node
- Support for configuring the higher level node types.
- payload
- Abstractions for working with execution payloads.
- payload_
builder - This crate defines abstractions to create and update payloads (blocks)
- rpc
- Builder support for rpc components.
- setup
- Helpers for setting up parts of the node.
Structs§
- AddOns
- Additional node extensions.
- AddOns
Context - Context passed to
NodeAddOns::launch_add_ons, - AnyNode
- A
Nodetype builder - AnyNode
Types - A
NodeTypestype builder. - AnyNode
Types With Engine - A
NodeTypestype builder. - Builder
Context - Captures the necessary context for building the components of the node.
- Built
Payload Executed Block - Represents an executed block for payload building purposes.
- Consensus
Engine Handle - A cloneable sender type that can be used to send engine API messages.
- Debug
Node Launcher - Node launcher with support for launching various debugging utilities.
- Debug
Node Launcher Future - Future for the
DebugNodeLauncher. - Engine
ApiExt - Provides access to an
EngineApiinstance with a callback - Engine
Node Launcher - The engine node launcher.
- ExEx
Launcher - Can launch execution extensions.
- Forkchoice
State Tracker - The struct that keeps track of the received forkchoice state and their status.
- Full
Node - The launched node with all components including RPC handlers.
- Full
Node Types Adapter - An adapter type that adds the builtin provider type to the user configured node types.
- Invalid
Block Hooks - Multiple
InvalidBlockHooks that are executed in order. - Launch
Context - Reusable setup for launching a node.
- Next
Block EnvAttributes - Represents additional attributes required to configure the next block.
- Node
Adapter - Container for the node’s types and the components and other internals that can be used by addons of the node.
- Node
Builder - Declaratively construct a node.
- Node
Builder With Components - A fully type configured node builder.
- Node
Builder With Types - A node builder that also has the configured types.
- Node
Config - This includes all necessary configuration to launch the node. The individual configuration options can be overwritten before launching the node.
- Node
Handle - A Handle to the launched node.
- Node
Types Adapter - Container for the node’s types and the database the node uses.
- Node
Types WithDB Adapter - An adapter type combining
NodeTypesand db intoNodeTypesWithDB. - Noop
Invalid Block Hook - A no-op
InvalidBlockHookthat does nothing. - OnFork
Choice Updated - Represents the outcome of forkchoice update.
- Payload
Events - Represents a receiver for various payload events.
- Tree
Config - The configuration of the engine tree.
- With
Launch Context - A
NodeBuilderwith its launch context already configured.
Enums§
- Beacon
Engine Message - A message for the beacon engine from other components of the node (engine RPC API invoked by the consensus layer).
- Beacon
Fork Choice Update Error - Represents error cases for an applied forkchoice update.
- Beacon
OnNew Payload Error - Represents all error cases when handling a new payload.
- Consensus
Engine Event - Events emitted by the consensus engine.
- Engine
ApiMessage Version - The version of Engine API message.
- Engine
Object Validation Error - Thrown when the payload or attributes are known to be invalid before processing.
- Events
- Payload builder events.
- Forkchoice
State Hash - A helper type to check represent hashes of a
ForkchoiceState - Forkchoice
Status - A simplified representation of
PayloadStatusEnumspecifically for FCU. - Invalid
Payload Attributes Error - Thrown when validating the correctness of a payloadattributes object.
- Message
Validation Kind - A type that represents whether or not we are validating a payload or payload attributes.
- NewPayload
Error - Error validating payload received over
newPayloadAPI. - Payload
Builder Error - Possible error variants during payload building.
- Payload
Kind - Determines how we should choose the payload to return.
- Payload
OrAttributes - A unified type for handling both execution payloads and payload attributes.
- Version
Specific Validation Error - Thrown when validating an execution payload OR payload attributes fails due to:
Constants§
- DEFAULT_
MEMORY_ BLOCK_ BUFFER_ TARGET - How close to the canonical head we persist blocks.
- DEFAULT_
MULTIPROOF_ TASK_ CHUNK_ SIZE - The size of proof targets chunk to spawn in one multiproof calculation.
- DEFAULT_
MULTIPROOF_ TASK_ CHUNK_ SIZE_ V2 - The size of proof targets chunk to spawn in one multiproof calculation when V2 proofs are enabled. This is 4x the default chunk size to take advantage of more efficient V2 proof computation.
- DEFAULT_
PERSISTENCE_ THRESHOLD - Triggers persistence when the number of canonical blocks in memory exceeds this threshold.
- DEFAULT_
PREWARM_ MAX_ CONCURRENCY - Default maximum concurrency for prewarm task.
- DEFAULT_
RESERVED_ CPU_ CORES - Default number of reserved CPU cores for non-reth processes.
- MIN_
WORKER_ COUNT - Minimum number of workers we allow configuring explicitly.
Traits§
- Block
- Abstraction of block data type.
- Block
Body - Abstraction for block’s body.
- Block
Reader For - This is a type alias to make type bounds simpler, when we have a
NetworkPrimitivesand need aBlockReaderwhose associated types match theNetworkPrimitivesassociated types. - Build
Next Env - Trait to build the EVM environment for the next block from the given payload attributes.
- Built
Payload - Represents a successfully built execution payload (block).
- Configure
Engine Evm ConfigureEvmextension providing methods for executing payloads.- Configure
Evm - A complete configuration of EVM for Reth.
- Debug
Node Nodeextension with support for debugging utilities.- Engine
ApiValidator - Type that validates the payloads processed by the engine API.
- Engine
Types - This type defines the versioned types of the engine API based on the ethereum engine API.
- Executable
TxIterator - Iterator over executable transactions.
- Executable
TxTuple - A helper trait representing a pair of a “raw” transactions iterator and a closure that can be used to convert them to an executable transaction. This tuple is used in the engine to parallelize heavy work like decoding or recovery.
- Execution
Payload - Represents the core data structure of an execution payload.
- Full
Block - Helper trait that unifies all behaviour required by block to support full node operations.
- Full
Node Components - Encapsulates all types and components of the node.
- Full
Node Types - A helper trait that is downstream of the
NodeTypestrait and adds stateful components to the node. - Full
Provider - Helper trait to unify all provider traits for simplicity.
- Full
Receipt - Helper trait that unifies all behaviour required by receipt to support full node operations.
- Full
Signed Tx - Helper trait that unifies all behaviour required by block to support full node operations.
- Invalid
Block Hook - An invalid block hook.
- Launch
Node - A general purpose trait that launches a new node of any kind.
- Node
- A
crate::Nodeis aNodeTypesthat comes with preconfigured components. - Node
AddOns - Customizable node add-on types.
- Node
Components - An abstraction over the components of a node, consisting of:
- Node
Components Builder - A type that configures all the customizable components of the node and knows how to build them.
- Node
Primitives - Configures all the primitive types of the node.
- Node
Types - The type that configures the essential types of an Ethereum-like node.
- Node
Types WithDB - A helper trait that is downstream of the
NodeTypestrait and adds database to the node. - Payload
Attributes - Basic attributes required to initiate payload construction.
- Payload
Attributes Builder - Factory trait for creating payload attributes.
- Payload
Builder Attributes - Attributes used to guide the construction of a new execution payload.
- Payload
Builder Config - A trait that provides payload builder settings.
- Payload
Builder For - Helper trait to bound
PayloadBuilderto the node’s engine types. - Payload
Types - Core trait that defines the associated types for working with execution payloads.
- Payload
Validator - Type that validates an
ExecutionPayload. - Reth
Network Config - A trait that represents the configured network and can be used to apply additional configuration to the network.
- Reth
Transaction Pool Config - A trait that provides all basic config values for the transaction pool and is implemented by the
TxPoolArgstype.
Functions§
- has_
enough_ parallelism - Determines if the host has enough parallelism to run the payload processor.
- validate_
execution_ requests - Validates that execution requests are valid according to Engine API specification.
- validate_
parent_ beacon_ block_ root_ presence - Validate the presence of the
parentBeaconBlockRootfield according to the given timestamp. This method is meant to be used with either apayloadAttributesfield or a full payload, with theengine_forkchoiceUpdatedandengine_newPayloadmethods respectively. - validate_
payload_ timestamp - Validates the timestamp depending on the version called:
- validate_
version_ specific_ fields - Validates the presence or exclusion of fork-specific fields based on the ethereum execution payload, or payload attributes, and the message version.
- validate_
withdrawals_ presence - Validates the presence of the
withdrawalsfield according to the payload timestamp. After Shanghai, withdrawals field must be Some. Before Shanghai, withdrawals field must be None;
Type Aliases§
- Beacon
Consensus Engine Event Deprecated - Type alias for backwards compat
- Beacon
Consensus Engine Handle Deprecated - Type alias for backwards compat
- BlockTy
- Helper adapter type for accessing
NodePrimitives::BlockonNodeTypes. - BodyTy
- Helper adapter type for accessing
NodePrimitives::BlockBodyonNodeTypes. - Components
For - A helper type to obtain components for a given node when
FullNodeTypes::Typesis aNodeimplementation. - Default
Debug Block Provider - Type alias for the default debug block provider. We use etherscan provider to satisfy the bounds.
- Full
Node For - Helper type alias to define
FullNodefor a givenNode. - Header
Ty - Helper adapter type for accessing
NodePrimitives::BlockHeaderonNodeTypes. - Node
Handle For - Helper type alias to define
NodeHandlefor a givenNode. - Payload
Attr Ty - Helper adapter type for accessing
PayloadTypes::PayloadAttributesonNodeTypes. - Primitives
Ty - Helper type for getting the
Primitivesassociated type from aNodeTypes. - Receipt
Ty - Helper adapter type for accessing
NodePrimitives::ReceiptonNodeTypes. - Reth
Full Adapter - The adapter type for a reth node with the builtin provider type
- TxTy
- Helper adapter type for accessing
NodePrimitives::SignedTxonNodeTypes.