Module blockchain_tree

Source
Expand description

Re-exported from reth_blockchain_tree.

Modules§

block_buffer
Buffer of not executed blocks.
block_indices
Implementation of BlockIndices related to super::BlockchainTree
blockchain_tree
Implementation of BlockchainTree
chain
A chain in a BlockchainTree.
config
Blockchain tree configuration
error
Error handling for the blockchain tree
externals
Blockchain tree externals.
metrics
Common blockchain tree metrics.
noop
Implementation of Tree traits that does nothing.
shareable
Wrapper around BlockchainTree that allows for it to be shared.

Structs§

AppendableChain
A chain in the blockchain tree that has functionality to execute blocks and append them to itself.
BlockBuffer
Contains the tree of pending blocks that cannot be executed due to missing parent. It allows to store unconnected blocks for potential future inclusion.
BlockIndices
Internal indices of the blocks and chains.
BlockchainTree
A Tree of chains.
BlockchainTreeConfig
The configuration for the blockchain tree.
BundleStateDataRef
Structure that combines references of required data to be a ExecutionDataProvider.
ExecutionData
Structure that owns the relevant data needs to be a ExecutionDataProvider
ShareableBlockchainTree
Shareable blockchain tree that is behind a RwLock
TreeExternals
A container for external components.

Enums§

BlockAttachment
Represents what kind of block is being executed and validated.
BlockStatus
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.
BlockStatus2
Block inclusion can be valid, accepted, or invalid. Invalid blocks are returned as an error variant.
BlockValidationKind
Represents the kind of validation that should be performed when inserting a block.
CanonicalOutcome
All possible outcomes of a canonicalization attempt of BlockchainTreeEngine::make_canonical.
InsertPayloadOk
How a payload was inserted if it was valid.
InsertPayloadOk2
How a payload was inserted if it was valid.

Traits§

BlockchainTreeEngine
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.
BlockchainTreeViewer
Allows read only functionality on the blockchain tree.