From c573f0bcd6b9350ed4806db8378d0ef24fb28fc6 Mon Sep 17 00:00:00 2001 From: Ayelet Zilber Date: Wed, 9 Oct 2024 15:51:14 +0300 Subject: [PATCH] chore(batcher): impl default to ExecutionConfig for addition to BatcherConfig --- crates/batcher/src/batcher.rs | 19 +---------- crates/batcher/src/block_builder.rs | 14 ++++++++ crates/blockifier/src/blockifier/config.rs | 2 +- crates/blockifier/src/bouncer.rs | 32 ++++++++++++++++++- .../src/test_utils/transfers_generator.rs | 2 +- crates/blockifier/src/versioned_constants.rs | 10 ++++++ 6 files changed, 58 insertions(+), 21 deletions(-) diff --git a/crates/batcher/src/batcher.rs b/crates/batcher/src/batcher.rs index 99958d0181..1c348d9ecb 100644 --- a/crates/batcher/src/batcher.rs +++ b/crates/batcher/src/batcher.rs @@ -1,16 +1,11 @@ use std::collections::HashMap; use std::sync::Arc; -use blockifier::blockifier::config::TransactionExecutorConfig; -use blockifier::bouncer::BouncerConfig; -use blockifier::context::ChainInfo; use blockifier::state::global_cache::GlobalContractCache; -use blockifier::versioned_constants::VersionedConstantsOverrides; #[cfg(test)] use mockall::automock; use papyrus_storage::state::StateStorageReader; use starknet_api::block::BlockNumber; -use starknet_api::core::ContractAddress; use starknet_api::executable_transaction::Transaction; use starknet_batcher_types::batcher_types::{ BatcherResult, @@ -123,19 +118,7 @@ pub fn create_batcher(config: BatcherConfig, mempool_client: SharedMempoolClient .expect("Failed to open batcher's storage"); // TODO(Arni): use real config - add as part of batcher config. - let execution_config = ExecutionConfig { - chain_info: ChainInfo::default(), - execute_config: TransactionExecutorConfig::default(), - bouncer_config: BouncerConfig::empty(), - sequencer_address: ContractAddress::default(), - use_kzg_da: true, - tx_chunk_size: 100, - versioned_constants_overrides: VersionedConstantsOverrides { - validate_max_n_steps: 1000000, - max_recursion_depth: 50, - invoke_tx_max_n_steps: 4000000, - }, - }; + let execution_config = ExecutionConfig::default(); let cache_size = 100; let block_builder_factory = Arc::new(BlockBuilderFactory { diff --git a/crates/batcher/src/block_builder.rs b/crates/batcher/src/block_builder.rs index 7d72d35c69..83891d9c0f 100644 --- a/crates/batcher/src/block_builder.rs +++ b/crates/batcher/src/block_builder.rs @@ -57,6 +57,20 @@ pub struct ExecutionConfig { pub versioned_constants_overrides: VersionedConstantsOverrides, } +impl Default for ExecutionConfig { + fn default() -> Self { + Self { + chain_info: ChainInfo::default(), + execute_config: TransactionExecutorConfig::default(), + bouncer_config: BouncerConfig::default(), + sequencer_address: ContractAddress::default(), + use_kzg_da: true, + tx_chunk_size: 100, + versioned_constants_overrides: VersionedConstantsOverrides::default(), + } + } +} + #[async_trait] impl BlockBuilderTrait for BlockBuilder { async fn build_block( diff --git a/crates/blockifier/src/blockifier/config.rs b/crates/blockifier/src/blockifier/config.rs index 25781aaa42..12692feee7 100644 --- a/crates/blockifier/src/blockifier/config.rs +++ b/crates/blockifier/src/blockifier/config.rs @@ -11,7 +11,7 @@ impl TransactionExecutorConfig { } } -#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[derive(Clone, Default, Debug, Deserialize, PartialEq, Serialize)] pub struct ConcurrencyConfig { pub enabled: bool, pub n_workers: usize, diff --git a/crates/blockifier/src/bouncer.rs b/crates/blockifier/src/bouncer.rs index 987cce5479..174db6082e 100644 --- a/crates/blockifier/src/bouncer.rs +++ b/crates/blockifier/src/bouncer.rs @@ -38,7 +38,7 @@ macro_rules! impl_checked_sub { pub type HashMapWrapper = HashMap; -#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] +#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] pub struct BouncerConfig { pub block_max_capacity: BouncerWeights, } @@ -129,6 +129,19 @@ impl BouncerWeights { } } +impl Default for BouncerWeights { + fn default() -> Self { + Self { + gas: 2500000, + n_steps: 2500000, + message_segment_length: 3750, + n_events: 5000, + state_diff_size: 4000, + builtin_count: BuiltinCount::default(), + } + } +} + impl std::fmt::Display for BouncerWeights { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { write!( @@ -275,6 +288,23 @@ impl std::fmt::Display for BuiltinCount { } } +impl Default for BuiltinCount { + fn default() -> Self { + Self { + add_mod: 156250, + bitwise: 39062, + ecdsa: 1220, + ec_op: 2441, + keccak: 1220, + mul_mod: 156250, + pedersen: 78125, + poseidon: 78125, + range_check: 156250, + range_check96: 156250, + } + } +} + #[derive(Debug, PartialEq)] #[cfg_attr(test, derive(Clone))] pub struct Bouncer { diff --git a/crates/blockifier/src/test_utils/transfers_generator.rs b/crates/blockifier/src/test_utils/transfers_generator.rs index c6d4f80195..8833e73a12 100644 --- a/crates/blockifier/src/test_utils/transfers_generator.rs +++ b/crates/blockifier/src/test_utils/transfers_generator.rs @@ -49,7 +49,7 @@ impl Default for TransfersGeneratorConfig { cairo_version: CAIRO_VERSION, tx_version: TRANSACTION_VERSION, recipient_generator_type: RECIPIENT_GENERATOR_TYPE, - concurrency_config: ConcurrencyConfig::default(), + concurrency_config: ConcurrencyConfig::create_for_testing(false), } } } diff --git a/crates/blockifier/src/versioned_constants.rs b/crates/blockifier/src/versioned_constants.rs index 4655d32c1d..6e34afe523 100644 --- a/crates/blockifier/src/versioned_constants.rs +++ b/crates/blockifier/src/versioned_constants.rs @@ -859,3 +859,13 @@ pub struct VersionedConstantsOverrides { pub max_recursion_depth: usize, pub invoke_tx_max_n_steps: u32, } + +impl Default for VersionedConstantsOverrides { + fn default() -> Self { + Self { + validate_max_n_steps: 1000000, + max_recursion_depth: 50, + invoke_tx_max_n_steps: 10000000, + } + } +}