mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-02-19 03:04:27 -05:00
feat: configurable EVM execution limits (#21088)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
This commit is contained in:
@@ -5,15 +5,16 @@
|
||||
use reth_ethereum::{
|
||||
chainspec::ChainSpec,
|
||||
cli::interface::Cli,
|
||||
evm::EthEvmConfig,
|
||||
node::{
|
||||
api::{BlockTy, FullNodeTypes, NodeTypes},
|
||||
api::{FullNodeTypes, NodeTypes},
|
||||
builder::{components::PoolBuilder, BuilderContext},
|
||||
node::EthereumAddOns,
|
||||
EthereumNode,
|
||||
},
|
||||
pool::{
|
||||
blobstore::InMemoryBlobStore, CoinbaseTipOrdering, EthPooledTransaction,
|
||||
EthTransactionPool, Pool, PoolConfig, TransactionValidationTaskExecutor,
|
||||
blobstore::InMemoryBlobStore, CoinbaseTipOrdering, EthTransactionPool, Pool, PoolConfig,
|
||||
TransactionValidationTaskExecutor,
|
||||
},
|
||||
provider::CanonStateSubscriptions,
|
||||
EthPrimitives,
|
||||
@@ -49,28 +50,24 @@ pub struct CustomPoolBuilder {
|
||||
/// Implement the [`PoolBuilder`] trait for the custom pool builder
|
||||
///
|
||||
/// This will be used to build the transaction pool and its maintenance tasks during launch.
|
||||
impl<Node> PoolBuilder<Node> for CustomPoolBuilder
|
||||
impl<Node> PoolBuilder<Node, EthEvmConfig> for CustomPoolBuilder
|
||||
where
|
||||
Node: FullNodeTypes<Types: NodeTypes<ChainSpec = ChainSpec, Primitives = EthPrimitives>>,
|
||||
{
|
||||
type Pool = EthTransactionPool<
|
||||
Node::Provider,
|
||||
InMemoryBlobStore,
|
||||
EthPooledTransaction,
|
||||
BlockTy<Node::Types>,
|
||||
>;
|
||||
type Pool = EthTransactionPool<Node::Provider, InMemoryBlobStore>;
|
||||
|
||||
async fn build_pool(self, ctx: &BuilderContext<Node>) -> eyre::Result<Self::Pool> {
|
||||
async fn build_pool(
|
||||
self,
|
||||
ctx: &BuilderContext<Node>,
|
||||
evm_config: EthEvmConfig,
|
||||
) -> eyre::Result<Self::Pool> {
|
||||
let data_dir = ctx.config().datadir();
|
||||
let blob_store = InMemoryBlobStore::default();
|
||||
let validator = TransactionValidationTaskExecutor::eth_builder(ctx.provider().clone())
|
||||
.with_head_timestamp(ctx.head().timestamp)
|
||||
.kzg_settings(ctx.kzg_settings()?)
|
||||
.with_additional_tasks(ctx.config().txpool.additional_validation_tasks)
|
||||
.build_with_tasks::<_, _, _, BlockTy<Node::Types>>(
|
||||
ctx.task_executor().clone(),
|
||||
blob_store.clone(),
|
||||
);
|
||||
let validator =
|
||||
TransactionValidationTaskExecutor::eth_builder(ctx.provider().clone(), evm_config)
|
||||
.kzg_settings(ctx.kzg_settings()?)
|
||||
.with_additional_tasks(ctx.config().txpool.additional_validation_tasks)
|
||||
.build_with_tasks(ctx.task_executor().clone(), blob_store.clone());
|
||||
|
||||
let transaction_pool =
|
||||
Pool::new(validator, CoinbaseTipOrdering::default(), blob_store, self.pool_config);
|
||||
|
||||
Reference in New Issue
Block a user