Expand description
Re-exported from reth_blockchain_tree
.
Modules§
- Buffer of not executed blocks.
- Implementation of
BlockIndices
related tosuper::BlockchainTree
- Implementation of
BlockchainTree
- A chain in a
BlockchainTree
. - Blockchain tree configuration
- Error handling for the blockchain tree
- Blockchain tree externals.
- Common blockchain tree metrics.
- Implementation of Tree traits that does nothing.
- Wrapper around
BlockchainTree
that allows for it to be shared.
Structs§
- A chain in the blockchain tree that has functionality to execute blocks and append them to itself.
- Contains the tree of pending blocks that cannot be executed due to missing parent. It allows to store unconnected blocks for potential future inclusion.
- Internal indices of the blocks and chains.
- A Tree of chains.
- The configuration for the blockchain tree.
- Structure that combines references of required data to be a
ExecutionDataProvider
. - Structure that owns the relevant data needs to be a
ExecutionDataProvider
- Shareable blockchain tree that is behind a
RwLock
- A container for external components.
Enums§
- Represents what kind of block is being executed and validated.
- From Engine API spec, block inclusion can be valid, accepted or invalid. Invalid case is already covered by error, but we need to make distinction between valid blocks that extend canonical chain and the ones that fork off into side chains (see
BlockAttachment
). If we don’t know the block parent we are returning Disconnected status as we can’t make a claim if block is valid or not. - Block inclusion can be valid, accepted, or invalid. Invalid blocks are returned as an error variant.
- Represents the kind of validation that should be performed when inserting a block.
- All possible outcomes of a canonicalization attempt of
BlockchainTreeEngine::make_canonical
. - How a payload was inserted if it was valid.
- How a payload was inserted if it was valid.
Traits§
BlockchainTreeEngine::insert_block
: Connect block to chain, execute it and if valid insert block inside tree.BlockchainTreeEngine::finalize_block
: Remove chains that join to now finalized block, as chain becomes invalid.BlockchainTreeEngine::make_canonical
: Check if we have the hash of block that we want to finalize and commit it to db. If we don’t have the block, syncing should start to fetch the blocks from p2p. Do reorg in tables if canonical chain if needed.- Allows read only functionality on the blockchain tree.