feat: add TreeConfig (#9833)

This commit is contained in:
Federico Gimenez
2024-07-26 17:16:51 +02:00
committed by GitHub
parent 41c34608b0
commit 77f5ed1a7b
6 changed files with 106 additions and 16 deletions

View File

@ -8,7 +8,7 @@ use reth_engine_tree::{
download::BasicBlockDownloader,
engine::{EngineApiRequestHandler, EngineHandler},
persistence::PersistenceHandle,
tree::EngineApiTreeHandlerImpl,
tree::{EngineApiTreeHandlerImpl, TreeConfig},
};
pub use reth_engine_tree::{
chain::{ChainEvent, ChainOrchestrator},
@ -68,6 +68,7 @@ where
blockchain_db: BlockchainProvider2<DB>,
pruner: Pruner<DB, ProviderFactory<DB>>,
payload_builder: PayloadBuilderHandle<EthEngineTypes>,
tree_config: TreeConfig,
) -> Self {
let consensus = Arc::new(EthBeaconConsensus::new(chain_spec.clone()));
let downloader = BasicBlockDownloader::new(client, consensus.clone());
@ -89,6 +90,7 @@ where
persistence_handle,
payload_builder,
canonical_in_memory_state,
tree_config,
);
let engine_handler = EngineApiRequestHandler::new(to_tree_tx, from_tree);
@ -174,6 +176,7 @@ mod tests {
blockchain_db,
pruner,
PayloadBuilderHandle::new(tx),
TreeConfig::default(),
);
}
}

View File

@ -36,6 +36,7 @@ reth-node-events.workspace = true
reth-node-core.workspace = true
reth-exex.workspace = true
reth-blockchain-tree.workspace = true
reth-engine-tree.workspace = true
# misc
eyre.workspace = true

View File

@ -6,6 +6,7 @@ use reth_beacon_consensus::{
BeaconConsensusEngineHandle,
};
use reth_blockchain_tree::BlockchainTreeConfig;
use reth_engine_tree::tree::TreeConfig;
use reth_ethereum_engine::service::{ChainEvent, EthService};
use reth_ethereum_engine_primitives::EthEngineTypes;
use reth_exex::ExExManagerHandle;
@ -171,6 +172,8 @@ where
let pruner_events = pruner.events();
info!(target: "reth::cli", prune_config=?ctx.prune_config().unwrap_or_default(), "Pruner initialized");
let tree_config = TreeConfig::default().with_persistence_threshold(120);
// Configure the consensus engine
let mut eth_service = EthService::new(
ctx.chain_spec(),
@ -182,6 +185,7 @@ where
ctx.blockchain_db().clone(),
pruner,
ctx.components().payload_builder().clone(),
tree_config,
);
let event_sender = EventSender::default();