diff --git a/config/sequencer/default_config.json b/config/sequencer/default_config.json index 42884102f96..f1007558cf9 100644 --- a/config/sequencer/default_config.json +++ b/config/sequencer/default_config.json @@ -69,6 +69,11 @@ "privacy": "Public", "value": 2500000 }, + "batcher_config.block_builder_config.bouncer_config.block_max_capacity.sierra_gas": { + "description": "An upper bound on the total sierra_gas used in a block.", + "privacy": "Public", + "value": 1000000 + }, "batcher_config.block_builder_config.bouncer_config.block_max_capacity.state_diff_size": { "description": "An upper bound on the total state diff size in a block.", "privacy": "Public", diff --git a/crates/blockifier/src/abi/constants.rs b/crates/blockifier/src/abi/constants.rs index c62a1904c17..b7ffc8339a2 100644 --- a/crates/blockifier/src/abi/constants.rs +++ b/crates/blockifier/src/abi/constants.rs @@ -33,6 +33,7 @@ pub const N_EVENTS: &str = "n_events"; pub const MESSAGE_SEGMENT_LENGTH: &str = "message_segment_length"; pub const STATE_DIFF_SIZE: &str = "state_diff_size"; pub const N_MEMORY_HOLES: &str = "n_memory_holes"; +pub const SIERRA_GAS: &str = "sierra_gas"; // Casm hash calculation-related constants. pub const CAIRO0_ENTRY_POINT_STRUCT_SIZE: usize = 2; diff --git a/crates/blockifier/src/bouncer.rs b/crates/blockifier/src/bouncer.rs index e303d21651a..9618a87ad5a 100644 --- a/crates/blockifier/src/bouncer.rs +++ b/crates/blockifier/src/bouncer.rs @@ -6,6 +6,7 @@ use papyrus_config::dumping::{append_sub_config_name, ser_param, SerializeConfig use papyrus_config::{ParamPath, ParamPrivacyInput, SerializedParam}; use serde::{Deserialize, Serialize}; use starknet_api::core::ClassHash; +use starknet_api::execution_resources::GasAmount; use crate::blockifier::transaction_executor::{ TransactionExecutorError, @@ -98,6 +99,7 @@ pub struct BouncerWeights { pub n_events: usize, pub n_steps: usize, pub state_diff_size: usize, + pub sierra_gas: GasAmount, } impl BouncerWeights { @@ -107,7 +109,8 @@ impl BouncerWeights { message_segment_length, n_events, n_steps, - state_diff_size + state_diff_size, + sierra_gas ); pub fn has_room(&self, other: Self) -> bool { @@ -122,6 +125,7 @@ impl BouncerWeights { state_diff_size: usize::MAX, n_events: usize::MAX, builtin_count: BuiltinCount::max(), + sierra_gas: GasAmount::MAX, } } @@ -133,6 +137,7 @@ impl BouncerWeights { message_segment_length: 0, n_steps: 0, state_diff_size: 0, + sierra_gas: GasAmount::ZERO, } } } @@ -147,6 +152,7 @@ impl Default for BouncerWeights { n_events: 5000, state_diff_size: 4000, builtin_count: BuiltinCount::default(), + sierra_gas: GasAmount(1000000), // TODO(AvivG): replace w desired val. } } } @@ -184,6 +190,12 @@ impl SerializeConfig for BouncerWeights { "An upper bound on the total state diff size in a block.", ParamPrivacyInput::Public, )])); + dump.append(&mut BTreeMap::from([ser_param( + "sierra_gas", + &self.sierra_gas, + "An upper bound on the total sierra_gas used in a block.", + ParamPrivacyInput::Public, + )])); dump } } @@ -193,13 +205,14 @@ impl std::fmt::Display for BouncerWeights { write!( f, "BouncerWeights {{ l1_gas: {}, n_steps: {}, message_segment_length: {}, n_events: {}, \ - state_diff_size: {}, builtin_count: {} }}", + state_diff_size: {}, builtin_count: {}, sierra_gas: {} }}", self.l1_gas, self.n_steps, self.message_segment_length, self.n_events, self.state_diff_size, - self.builtin_count + self.builtin_count, + self.sierra_gas ) } } @@ -539,6 +552,7 @@ pub fn get_tx_weights( n_steps: vm_resources.total_n_steps(), builtin_count: BuiltinCount::from(vm_resources.prover_builtins()), state_diff_size: get_onchain_data_segment_length(&state_changes_keys.count()), + sierra_gas: tx_resources.computation.sierra_gas, }) } diff --git a/crates/blockifier/src/bouncer_test.rs b/crates/blockifier/src/bouncer_test.rs index 9685c90a375..b1cb09ee807 100644 --- a/crates/blockifier/src/bouncer_test.rs +++ b/crates/blockifier/src/bouncer_test.rs @@ -4,6 +4,7 @@ use assert_matches::assert_matches; use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::vm::runners::cairo_runner::ExecutionResources; use rstest::rstest; +use starknet_api::execution_resources::GasAmount; use starknet_api::transaction::fields::Fee; use starknet_api::{class_hash, contract_address, storage_key}; @@ -42,6 +43,7 @@ fn test_block_weights_has_room() { n_events: 10, n_steps: 10, state_diff_size: 10, + sierra_gas: GasAmount(10), // TODO(AvivG): replace w desired val. }; let bouncer_weights = BouncerWeights { @@ -62,6 +64,7 @@ fn test_block_weights_has_room() { n_steps: 0, n_events: 2, state_diff_size: 7, + sierra_gas: GasAmount::ZERO, // TODO(AvivG): replace w desired val. }; assert!(max_bouncer_weights.has_room(bouncer_weights)); @@ -84,6 +87,7 @@ fn test_block_weights_has_room() { n_steps: 5, n_events: 5, state_diff_size: 5, + sierra_gas: GasAmount(5), // TODO(AvivG): replace w desired val. }; assert!(!max_bouncer_weights.has_room(bouncer_weights_exceeds_max)); @@ -119,6 +123,7 @@ fn test_block_weights_has_room() { n_steps: 10, n_events: 10, state_diff_size: 10, + sierra_gas: GasAmount(10), // TODO(AvivG): replace w desired val. }, })] fn test_bouncer_update(#[case] initial_bouncer: Bouncer) { @@ -149,6 +154,7 @@ fn test_bouncer_update(#[case] initial_bouncer: Bouncer) { n_steps: 0, n_events: 1, state_diff_size: 2, + sierra_gas: GasAmount(9), // TODO(AvivG): replace w desired val. }; let state_changes_keys_to_update = @@ -202,6 +208,7 @@ fn test_bouncer_try_update(#[case] added_ecdsa: usize, #[case] scenario: &'stati n_steps: 20, n_events: 20, state_diff_size: 20, + sierra_gas: GasAmount(20), // TODO(AvivG): replace w desired val. }; let bouncer_config = BouncerConfig { block_max_capacity }; @@ -223,6 +230,7 @@ fn test_bouncer_try_update(#[case] added_ecdsa: usize, #[case] scenario: &'stati n_steps: 10, n_events: 10, state_diff_size: 10, + sierra_gas: GasAmount(10), // TODO(AvivG): replace w desired val. }; let mut bouncer = Bouncer { accumulated_weights, bouncer_config, ..Bouncer::empty() }; diff --git a/crates/native_blockifier/src/py_objects.rs b/crates/native_blockifier/src/py_objects.rs index c1ea996c2de..b674818446a 100644 --- a/crates/native_blockifier/src/py_objects.rs +++ b/crates/native_blockifier/src/py_objects.rs @@ -10,6 +10,7 @@ use blockifier::versioned_constants::VersionedConstantsOverrides; use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::vm::runners::cairo_runner::ExecutionResources; use pyo3::prelude::*; +use starknet_api::execution_resources::GasAmount; use crate::errors::{ InvalidNativeBlockifierInputError, @@ -125,6 +126,9 @@ fn hash_map_into_bouncer_weights( let state_diff_size = data.remove(constants::STATE_DIFF_SIZE).expect("state_diff_size must be present"); let n_events = data.remove(constants::N_EVENTS).expect("n_events must be present"); + let sierra_gas = GasAmount( + data.remove(constants::SIERRA_GAS).expect("sierra_gas must be present").try_into().unwrap(), + ); Ok(BouncerWeights { l1_gas, n_steps, @@ -132,6 +136,7 @@ fn hash_map_into_bouncer_weights( state_diff_size, n_events, builtin_count: hash_map_into_builtin_count(data)?, + sierra_gas, }) } diff --git a/crates/starknet_api/src/execution_resources.rs b/crates/starknet_api/src/execution_resources.rs index e3c14d1dbb7..6a81a05c9c1 100644 --- a/crates/starknet_api/src/execution_resources.rs +++ b/crates/starknet_api/src/execution_resources.rs @@ -7,12 +7,12 @@ use strum_macros::EnumIter; use crate::block::{GasPrice, GasPriceVector, NonzeroGasPrice}; use crate::transaction::fields::{Fee, Resource}; -#[cfg_attr( - any(test, feature = "testing"), - derive(derive_more::Add, derive_more::Sum, derive_more::AddAssign, derive_more::Div) -)] +#[cfg_attr(any(test, feature = "testing"), derive(derive_more::Sum, derive_more::Div))] #[derive( derive_more::Display, + derive_more::Sub, + derive_more::Add, + derive_more::AddAssign, Clone, Copy, Debug, @@ -55,6 +55,10 @@ impl GasAmount { self.0.checked_add(rhs.0).map(Self) } + pub fn checked_sub(self, rhs: Self) -> Option { + self.0.checked_sub(rhs.0).map(Self) + } + pub const fn nonzero_saturating_mul(self, rhs: NonzeroGasPrice) -> Fee { rhs.saturating_mul(self) } diff --git a/deployments/sequencer/references/sequencer-node/ConfigMap.sequencer-node-config.k8s.yaml b/deployments/sequencer/references/sequencer-node/ConfigMap.sequencer-node-config.k8s.yaml index f5a6f27fe25..d05d313ebd6 100644 --- a/deployments/sequencer/references/sequencer-node/ConfigMap.sequencer-node-config.k8s.yaml +++ b/deployments/sequencer/references/sequencer-node/ConfigMap.sequencer-node-config.k8s.yaml @@ -4,4 +4,4 @@ metadata: name: sequencer-node-config namespace: test data: - config: "{\"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.add_mod\": {\"description\": \"Max number of add mod builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 156250}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.bitwise\": {\"description\": \"Max number of bitwise builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 39062}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.ec_op\": {\"description\": \"Max number of EC operation builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 2441}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.ecdsa\": {\"description\": \"Max number of ECDSA builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 1220}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.keccak\": {\"description\": \"Max number of keccak builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 1220}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.mul_mod\": {\"description\": \"Max number of mul mod builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 156250}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.pedersen\": {\"description\": \"Max number of pedersen builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 78125}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.poseidon\": {\"description\": \"Max number of poseidon builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 78125}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.range_check\": {\"description\": \"Max number of range check builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 156250}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.range_check96\": {\"description\": \"Max number of range check 96 builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 156250}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.l1gas\": {\"description\": \"An upper bound on the total gas used in a block.\", \"privacy\": \"Public\", \"value\": 2500000}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.message_segment_length\": {\"description\": \"An upper bound on the message segment length in a block.\", \"privacy\": \"Public\", \"value\": 3700}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.n_events\": {\"description\": \"An upper bound on the total number of events generated in a block.\", \"privacy\": \"Public\", \"value\": 5000}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.n_steps\": {\"description\": \"An upper bound on the total number of steps in a block.\", \"privacy\": \"Public\", \"value\": 2500000}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.state_diff_size\": {\"description\": \"An upper bound on the total state diff size in a block.\", \"privacy\": \"Public\", \"value\": 4000}, \"batcher_config.block_builder_config.chain_info.chain_id\": {\"description\": \"The chain ID of the StarkNet chain.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.chain_info.fee_token_addresses.eth_fee_token_address\": {\"description\": \"Address of the ETH fee token.\", \"pointer_target\": \"eth_fee_token_address\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.chain_info.fee_token_addresses.strk_fee_token_address\": {\"description\": \"Address of the STRK fee token.\", \"pointer_target\": \"strk_fee_token_address\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.execute_config.concurrency_config.chunk_size\": {\"description\": \"The size of the transaction chunk executed in parallel.\", \"privacy\": \"Public\", \"value\": 0}, \"batcher_config.block_builder_config.execute_config.concurrency_config.enabled\": {\"description\": \"Enables concurrency of transaction execution.\", \"privacy\": \"Public\", \"value\": false}, \"batcher_config.block_builder_config.execute_config.concurrency_config.n_workers\": {\"description\": \"Number of parallel transaction execution workers.\", \"privacy\": \"Public\", \"value\": 0}, \"batcher_config.block_builder_config.sequencer_address\": {\"description\": \"The address of the sequencer.\", \"pointer_target\": \"sequencer_address\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.tx_chunk_size\": {\"description\": \"The size of the transaction chunk.\", \"privacy\": \"Public\", \"value\": 100}, \"batcher_config.block_builder_config.use_kzg_da\": {\"description\": \"Indicates whether the kzg mechanism is used for data availability.\", \"privacy\": \"Public\", \"value\": true}, \"batcher_config.block_builder_config.versioned_constants_overrides.invoke_tx_max_n_steps\": {\"description\": \"Maximum number of steps the invoke function is allowed to run.\", \"pointer_target\": \"versioned_constants_overrides.invoke_tx_max_n_steps\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.versioned_constants_overrides.max_recursion_depth\": {\"description\": \"Maximum recursion depth for nested calls during blockifier validation.\", \"pointer_target\": \"versioned_constants_overrides.max_recursion_depth\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.versioned_constants_overrides.validate_max_n_steps\": {\"description\": \"Maximum number of steps the validation function is allowed to run.\", \"pointer_target\": \"versioned_constants_overrides.validate_max_n_steps\", \"privacy\": \"Public\"}, \"batcher_config.global_contract_cache_size\": {\"description\": \"Cache size for the global_class_hash_to_class. Initialized with this size on creation.\", \"privacy\": \"Public\", \"value\": 400}, \"batcher_config.input_stream_content_buffer_size\": {\"description\": \"Sets the buffer size for the input transaction channel. Adding more transactions beyond this limit will block until space is available.\", \"privacy\": \"Public\", \"value\": 400}, \"batcher_config.max_l1_handler_txs_per_block_proposal\": {\"description\": \"The maximum number of L1 handler transactions to include in a block proposal.\", \"privacy\": \"Public\", \"value\": 3}, \"batcher_config.outstream_content_buffer_size\": {\"description\": \"The maximum number of items to include in a single get_proposal_content response.\", \"privacy\": \"Public\", \"value\": 100}, \"batcher_config.storage.db_config.chain_id\": {\"description\": \"The chain to follow. For more details see https://docs.starknet.io/documentation/architecture_and_concepts/Blocks/transactions/#chain-id.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"batcher_config.storage.db_config.enforce_file_exists\": false, \"batcher_config.storage.db_config.growth_step\": {\"description\": \"The growth step in bytes, must be greater than zero to allow the database to grow.\", \"privacy\": \"Public\", \"value\": 4294967296}, \"batcher_config.storage.db_config.max_size\": {\"description\": \"The maximum size of the node's storage in bytes.\", \"privacy\": \"Public\", \"value\": 1099511627776}, \"batcher_config.storage.db_config.min_size\": {\"description\": \"The minimum size of the node's storage in bytes.\", \"privacy\": \"Public\", \"value\": 1048576}, \"batcher_config.storage.db_config.path_prefix\": \"/data\", \"batcher_config.storage.mmap_file_config.growth_step\": {\"description\": \"The growth step in bytes, must be greater than max_object_size.\", \"privacy\": \"Public\", \"value\": 1073741824}, \"batcher_config.storage.mmap_file_config.max_object_size\": {\"description\": \"The maximum size of a single object in the file in bytes\", \"privacy\": \"Public\", \"value\": 268435456}, \"batcher_config.storage.mmap_file_config.max_size\": {\"description\": \"The maximum size of a memory mapped file in bytes. Must be greater than growth_step.\", \"privacy\": \"Public\", \"value\": 1099511627776}, \"batcher_config.storage.scope\": {\"description\": \"The categories of data saved in storage.\", \"privacy\": \"Public\", \"value\": \"StateOnly\"}, \"chain_id\": \"0x5\", \"compiler_config.max_bytecode_size\": {\"description\": \"Limitation of contract bytecode size.\", \"privacy\": \"Public\", \"value\": 81920}, \"components.batcher.execution_mode\": \"Disabled\", \"components.batcher.local_server_config.#is_none\": true, \"components.batcher.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.batcher.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.batcher.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.batcher.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.batcher.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.batcher.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.batcher.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.batcher.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.consensus_manager.execution_mode\": \"Disabled\", \"components.consensus_manager.local_server_config.#is_none\": true, \"components.consensus_manager.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.consensus_manager.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.consensus_manager.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.consensus_manager.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.consensus_manager.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.consensus_manager.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.consensus_manager.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.consensus_manager.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.gateway.execution_mode\": \"Disabled\", \"components.gateway.local_server_config.#is_none\": true, \"components.gateway.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.gateway.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.gateway.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.gateway.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.gateway.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.gateway.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.gateway.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.gateway.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.http_server.execution_mode\": \"Disabled\", \"components.http_server.local_server_config.#is_none\": true, \"components.http_server.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.http_server.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.http_server.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.http_server.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.http_server.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.http_server.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.http_server.remote_server_config.#is_none\": true, \"components.http_server.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.mempool.execution_mode\": \"Disabled\", \"components.mempool.local_server_config.#is_none\": true, \"components.mempool.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.mempool.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.mempool.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.mempool.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.mempool.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.mempool.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.mempool.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.mempool.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.mempool_p2p.execution_mode\": \"Disabled\", \"components.mempool_p2p.local_server_config.#is_none\": true, \"components.mempool_p2p.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.mempool_p2p.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.mempool_p2p.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.mempool_p2p.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.mempool_p2p.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.mempool_p2p.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.mempool_p2p.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.mempool_p2p.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.monitoring_endpoint.execution_mode\": {\"description\": \"The component execution mode.\", \"privacy\": \"Public\", \"value\": \"LocalExecutionWithRemoteEnabled\"}, \"components.monitoring_endpoint.local_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": false}, \"components.monitoring_endpoint.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.monitoring_endpoint.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.monitoring_endpoint.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.monitoring_endpoint.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.monitoring_endpoint.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.monitoring_endpoint.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.monitoring_endpoint.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": false}, \"components.monitoring_endpoint.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.state_sync.execution_mode\": {\"description\": \"The component execution mode.\", \"privacy\": \"Public\", \"value\": \"LocalExecutionWithRemoteDisabled\"}, \"components.state_sync.local_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": false}, \"components.state_sync.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.state_sync.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.state_sync.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.state_sync.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.state_sync.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.state_sync.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.state_sync.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.state_sync.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"consensus_manager_config.consensus_config.consensus_delay\": {\"description\": \"Delay (seconds) before starting consensus to give time for network peering.\", \"privacy\": \"Public\", \"value\": 5}, \"consensus_manager_config.consensus_config.network_config.advertised_multiaddr\": {\"description\": \"The external address other peers see this node. If this is set, the node will not try to find out which addresses it has and will write this address as external instead\", \"privacy\": \"Public\", \"value\": \"\"}, \"consensus_manager_config.consensus_config.network_config.advertised_multiaddr.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"consensus_manager_config.consensus_config.network_config.bootstrap_peer_multiaddr\": {\"description\": \"The multiaddress of the peer node. It should include the peer's id. For more info: https://docs.libp2p.io/concepts/fundamentals/peers/\", \"privacy\": \"Public\", \"value\": \"\"}, \"consensus_manager_config.consensus_config.network_config.bootstrap_peer_multiaddr.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"consensus_manager_config.consensus_config.network_config.chain_id\": {\"description\": \"The chain to follow. For more details see https://docs.starknet.io/documentation/architecture_and_concepts/Blocks/transactions/#chain-id.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"consensus_manager_config.consensus_config.network_config.discovery_config.bootstrap_dial_retry_config.base_delay_millis\": {\"description\": \"The base delay in milliseconds for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 2}, \"consensus_manager_config.consensus_config.network_config.discovery_config.bootstrap_dial_retry_config.factor\": {\"description\": \"The factor for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 5}, \"consensus_manager_config.consensus_config.network_config.discovery_config.bootstrap_dial_retry_config.max_delay_seconds\": {\"description\": \"The maximum delay in seconds for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 5}, \"consensus_manager_config.consensus_config.network_config.discovery_config.heartbeat_interval\": {\"description\": \"The interval between each discovery (Kademlia) query in milliseconds.\", \"privacy\": \"Public\", \"value\": 100}, \"consensus_manager_config.consensus_config.network_config.idle_connection_timeout\": {\"description\": \"Amount of time in seconds that a connection with no active sessions will stay alive.\", \"privacy\": \"Public\", \"value\": 120}, \"consensus_manager_config.consensus_config.network_config.peer_manager_config.malicious_timeout_seconds\": {\"description\": \"The duration in seconds a peer is blacklisted after being marked as malicious.\", \"privacy\": \"Public\", \"value\": 31536000}, \"consensus_manager_config.consensus_config.network_config.peer_manager_config.unstable_timeout_millis\": {\"description\": \"The duration in milliseconds a peer blacklisted after being reported as unstable.\", \"privacy\": \"Public\", \"value\": 1000}, \"consensus_manager_config.consensus_config.network_config.quic_port\": {\"description\": \"The port that the node listens on for incoming quic connections.\", \"privacy\": \"Public\", \"value\": 10101}, \"consensus_manager_config.consensus_config.network_config.secret_key\": {\"description\": \"The secret key used for building the peer id. If it's an empty string a random one will be used.\", \"privacy\": \"Private\", \"value\": \"\"}, \"consensus_manager_config.consensus_config.network_config.session_timeout\": {\"description\": \"Maximal time in seconds that each session can take before failing on timeout.\", \"privacy\": \"Public\", \"value\": 120}, \"consensus_manager_config.consensus_config.network_config.tcp_port\": {\"description\": \"The port that the node listens on for incoming tcp connections.\", \"privacy\": \"Public\", \"value\": 10100}, \"consensus_manager_config.consensus_config.network_topic\": {\"description\": \"The network topic of the consensus.\", \"privacy\": \"Public\", \"value\": \"consensus\"}, \"consensus_manager_config.consensus_config.num_validators\": {\"description\": \"The number of validators in the consensus.\", \"privacy\": \"Public\", \"value\": 1}, \"consensus_manager_config.consensus_config.start_height\": {\"description\": \"The height to start the consensus from.\", \"privacy\": \"Public\", \"value\": 0}, \"consensus_manager_config.consensus_config.timeouts.precommit_timeout\": {\"description\": \"The timeout (seconds) for a precommit.\", \"privacy\": \"Public\", \"value\": 1.0}, \"consensus_manager_config.consensus_config.timeouts.prevote_timeout\": {\"description\": \"The timeout (seconds) for a prevote.\", \"privacy\": \"Public\", \"value\": 1.0}, \"consensus_manager_config.consensus_config.timeouts.proposal_timeout\": {\"description\": \"The timeout (seconds) for a proposal.\", \"privacy\": \"Public\", \"value\": 3.0}, \"consensus_manager_config.consensus_config.validator_id\": {\"description\": \"The validator id of the node.\", \"privacy\": \"Public\", \"value\": \"0x0\"}, \"eth_fee_token_address\": \"0x6\", \"gateway_config.chain_info.chain_id\": {\"description\": \"The chain ID of the StarkNet chain.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"gateway_config.chain_info.fee_token_addresses.eth_fee_token_address\": {\"description\": \"Address of the ETH fee token.\", \"pointer_target\": \"eth_fee_token_address\", \"privacy\": \"Public\"}, \"gateway_config.chain_info.fee_token_addresses.strk_fee_token_address\": {\"description\": \"Address of the STRK fee token.\", \"pointer_target\": \"strk_fee_token_address\", \"privacy\": \"Public\"}, \"gateway_config.stateful_tx_validator_config.max_nonce_for_validation_skip\": {\"description\": \"Maximum nonce for which the validation is skipped.\", \"privacy\": \"Public\", \"value\": \"0x1\"}, \"gateway_config.stateful_tx_validator_config.versioned_constants_overrides.invoke_tx_max_n_steps\": {\"description\": \"Maximum number of steps the invoke function is allowed to run.\", \"pointer_target\": \"versioned_constants_overrides.invoke_tx_max_n_steps\", \"privacy\": \"Public\"}, \"gateway_config.stateful_tx_validator_config.versioned_constants_overrides.max_recursion_depth\": {\"description\": \"Maximum recursion depth for nested calls during blockifier validation.\", \"pointer_target\": \"versioned_constants_overrides.max_recursion_depth\", \"privacy\": \"Public\"}, \"gateway_config.stateful_tx_validator_config.versioned_constants_overrides.validate_max_n_steps\": {\"description\": \"Maximum number of steps the validation function is allowed to run.\", \"pointer_target\": \"versioned_constants_overrides.validate_max_n_steps\", \"privacy\": \"Public\"}, \"gateway_config.stateless_tx_validator_config.max_calldata_length\": {\"description\": \"Limitation of calldata length.\", \"privacy\": \"Public\", \"value\": 4000}, \"gateway_config.stateless_tx_validator_config.max_contract_class_object_size\": {\"description\": \"Limitation of contract class object size.\", \"privacy\": \"Public\", \"value\": 4089446}, \"gateway_config.stateless_tx_validator_config.max_sierra_version.major\": {\"description\": \"The major version of the configuration.\", \"privacy\": \"Public\", \"value\": 1}, \"gateway_config.stateless_tx_validator_config.max_sierra_version.minor\": {\"description\": \"The minor version of the configuration.\", \"privacy\": \"Public\", \"value\": 5}, \"gateway_config.stateless_tx_validator_config.max_sierra_version.patch\": {\"description\": \"The patch version of the configuration.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"gateway_config.stateless_tx_validator_config.max_signature_length\": {\"description\": \"Limitation of signature length.\", \"privacy\": \"Public\", \"value\": 4000}, \"gateway_config.stateless_tx_validator_config.min_sierra_version.major\": {\"description\": \"The major version of the configuration.\", \"privacy\": \"Public\", \"value\": 1}, \"gateway_config.stateless_tx_validator_config.min_sierra_version.minor\": {\"description\": \"The minor version of the configuration.\", \"privacy\": \"Public\", \"value\": 1}, \"gateway_config.stateless_tx_validator_config.min_sierra_version.patch\": {\"description\": \"The patch version of the configuration.\", \"privacy\": \"Public\", \"value\": 0}, \"gateway_config.stateless_tx_validator_config.validate_non_zero_l1_data_gas_fee\": {\"description\": \"If true, validates that a transaction has non-zero L1 Data (Blob) resource bounds.\", \"privacy\": \"Public\", \"value\": false}, \"gateway_config.stateless_tx_validator_config.validate_non_zero_l1_gas_fee\": {\"description\": \"If true, validates that a transaction has non-zero L1 resource bounds.\", \"privacy\": \"Public\", \"value\": true}, \"gateway_config.stateless_tx_validator_config.validate_non_zero_l2_gas_fee\": {\"description\": \"If true, validates that a transaction has non-zero L2 resource bounds.\", \"privacy\": \"Public\", \"value\": false}, \"http_server_config.ip\": {\"description\": \"The http server ip.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0\"}, \"http_server_config.port\": {\"description\": \"The http server port.\", \"privacy\": \"Public\", \"value\": 8080}, \"mempool_p2p_config.network_buffer_size\": {\"description\": \"Network buffer size.\", \"privacy\": \"Public\", \"value\": 10000}, \"mempool_p2p_config.network_config.advertised_multiaddr\": {\"description\": \"The external address other peers see this node. If this is set, the node will not try to find out which addresses it has and will write this address as external instead\", \"privacy\": \"Public\", \"value\": \"\"}, \"mempool_p2p_config.network_config.advertised_multiaddr.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"mempool_p2p_config.network_config.bootstrap_peer_multiaddr\": {\"description\": \"The multiaddress of the peer node. It should include the peer's id. For more info: https://docs.libp2p.io/concepts/fundamentals/peers/\", \"privacy\": \"Public\", \"value\": \"\"}, \"mempool_p2p_config.network_config.bootstrap_peer_multiaddr.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"mempool_p2p_config.network_config.chain_id\": {\"description\": \"The chain to follow. For more details see https://docs.starknet.io/documentation/architecture_and_concepts/Blocks/transactions/#chain-id.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"mempool_p2p_config.network_config.discovery_config.bootstrap_dial_retry_config.base_delay_millis\": {\"description\": \"The base delay in milliseconds for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 2}, \"mempool_p2p_config.network_config.discovery_config.bootstrap_dial_retry_config.factor\": {\"description\": \"The factor for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 5}, \"mempool_p2p_config.network_config.discovery_config.bootstrap_dial_retry_config.max_delay_seconds\": {\"description\": \"The maximum delay in seconds for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 5}, \"mempool_p2p_config.network_config.discovery_config.heartbeat_interval\": {\"description\": \"The interval between each discovery (Kademlia) query in milliseconds.\", \"privacy\": \"Public\", \"value\": 100}, \"mempool_p2p_config.network_config.idle_connection_timeout\": {\"description\": \"Amount of time in seconds that a connection with no active sessions will stay alive.\", \"privacy\": \"Public\", \"value\": 120}, \"mempool_p2p_config.network_config.peer_manager_config.malicious_timeout_seconds\": {\"description\": \"The duration in seconds a peer is blacklisted after being marked as malicious.\", \"privacy\": \"Public\", \"value\": 31536000}, \"mempool_p2p_config.network_config.peer_manager_config.unstable_timeout_millis\": {\"description\": \"The duration in milliseconds a peer blacklisted after being reported as unstable.\", \"privacy\": \"Public\", \"value\": 1000}, \"mempool_p2p_config.network_config.quic_port\": {\"description\": \"The port that the node listens on for incoming quic connections.\", \"privacy\": \"Public\", \"value\": 10001}, \"mempool_p2p_config.network_config.secret_key\": {\"description\": \"The secret key used for building the peer id. If it's an empty string a random one will be used.\", \"privacy\": \"Private\", \"value\": \"\"}, \"mempool_p2p_config.network_config.session_timeout\": {\"description\": \"Maximal time in seconds that each session can take before failing on timeout.\", \"privacy\": \"Public\", \"value\": 120}, \"mempool_p2p_config.network_config.tcp_port\": {\"description\": \"The port that the node listens on for incoming tcp connections.\", \"privacy\": \"Public\", \"value\": 10000}, \"monitoring_endpoint_config.ip\": {\"description\": \"The monitoring endpoint ip address.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0\"}, \"monitoring_endpoint_config.port\": {\"description\": \"The monitoring endpoint port.\", \"privacy\": \"Public\", \"value\": 8082}, \"rpc_state_reader_config.json_rpc_version\": {\"description\": \"The json rpc version.\", \"privacy\": \"Public\", \"value\": \"\"}, \"rpc_state_reader_config.url\": {\"description\": \"The url of the rpc server.\", \"privacy\": \"Public\", \"value\": \"\"}, \"sequencer_address\": {\"description\": \"A required param! The sequencer address.\", \"param_type\": \"String\", \"privacy\": \"TemporaryValue\"}, \"strk_fee_token_address\": \"0x7\", \"versioned_constants_overrides.invoke_tx_max_n_steps\": {\"description\": \"Maximum number of steps the invoke function is allowed to run.\", \"privacy\": \"TemporaryValue\", \"value\": 10000000}, \"versioned_constants_overrides.max_recursion_depth\": {\"description\": \"Maximum recursion depth for nested calls during blockifier validation.\", \"privacy\": \"TemporaryValue\", \"value\": 50}, \"versioned_constants_overrides.validate_max_n_steps\": {\"description\": \"Maximum number of steps the validation function is allowed to run.\", \"privacy\": \"TemporaryValue\", \"value\": 1000000}}" + config: "{\"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.add_mod\": {\"description\": \"Max number of add mod builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 156250}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.bitwise\": {\"description\": \"Max number of bitwise builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 39062}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.ec_op\": {\"description\": \"Max number of EC operation builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 2441}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.ecdsa\": {\"description\": \"Max number of ECDSA builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 1220}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.keccak\": {\"description\": \"Max number of keccak builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 1220}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.mul_mod\": {\"description\": \"Max number of mul mod builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 156250}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.pedersen\": {\"description\": \"Max number of pedersen builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 78125}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.poseidon\": {\"description\": \"Max number of poseidon builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 78125}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.range_check\": {\"description\": \"Max number of range check builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 156250}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.builtin_count.range_check96\": {\"description\": \"Max number of range check 96 builtin usage in a block.\", \"privacy\": \"Public\", \"value\": 156250}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.l1gas\": {\"description\": \"An upper bound on the total gas used in a block.\", \"privacy\": \"Public\", \"value\": 2500000}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.message_segment_length\": {\"description\": \"An upper bound on the message segment length in a block.\", \"privacy\": \"Public\", \"value\": 3700}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.n_events\": {\"description\": \"An upper bound on the total number of events generated in a block.\", \"privacy\": \"Public\", \"value\": 5000}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.n_steps\": {\"description\": \"An upper bound on the total number of steps in a block.\", \"privacy\": \"Public\", \"value\": 2500000}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.state_diff_size\": {\"description\": \"An upper bound on the total state diff size in a block.\", \"privacy\": \"Public\", \"value\": 4000}, \"batcher_config.block_builder_config.bouncer_config.block_max_capacity.sierra_gas\": {\"description\": \"An upper bound on the total sierra_gas used in a block.\", \"privacy\": \"Public\", \"value\": 1000000}, \"batcher_config.block_builder_config.chain_info.chain_id\": {\"description\": \"The chain ID of the StarkNet chain.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.chain_info.fee_token_addresses.eth_fee_token_address\": {\"description\": \"Address of the ETH fee token.\", \"pointer_target\": \"eth_fee_token_address\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.chain_info.fee_token_addresses.strk_fee_token_address\": {\"description\": \"Address of the STRK fee token.\", \"pointer_target\": \"strk_fee_token_address\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.execute_config.concurrency_config.chunk_size\": {\"description\": \"The size of the transaction chunk executed in parallel.\", \"privacy\": \"Public\", \"value\": 0}, \"batcher_config.block_builder_config.execute_config.concurrency_config.enabled\": {\"description\": \"Enables concurrency of transaction execution.\", \"privacy\": \"Public\", \"value\": false}, \"batcher_config.block_builder_config.execute_config.concurrency_config.n_workers\": {\"description\": \"Number of parallel transaction execution workers.\", \"privacy\": \"Public\", \"value\": 0}, \"batcher_config.block_builder_config.sequencer_address\": {\"description\": \"The address of the sequencer.\", \"pointer_target\": \"sequencer_address\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.tx_chunk_size\": {\"description\": \"The size of the transaction chunk.\", \"privacy\": \"Public\", \"value\": 100}, \"batcher_config.block_builder_config.use_kzg_da\": {\"description\": \"Indicates whether the kzg mechanism is used for data availability.\", \"privacy\": \"Public\", \"value\": true}, \"batcher_config.block_builder_config.versioned_constants_overrides.invoke_tx_max_n_steps\": {\"description\": \"Maximum number of steps the invoke function is allowed to run.\", \"pointer_target\": \"versioned_constants_overrides.invoke_tx_max_n_steps\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.versioned_constants_overrides.max_recursion_depth\": {\"description\": \"Maximum recursion depth for nested calls during blockifier validation.\", \"pointer_target\": \"versioned_constants_overrides.max_recursion_depth\", \"privacy\": \"Public\"}, \"batcher_config.block_builder_config.versioned_constants_overrides.validate_max_n_steps\": {\"description\": \"Maximum number of steps the validation function is allowed to run.\", \"pointer_target\": \"versioned_constants_overrides.validate_max_n_steps\", \"privacy\": \"Public\"}, \"batcher_config.global_contract_cache_size\": {\"description\": \"Cache size for the global_class_hash_to_class. Initialized with this size on creation.\", \"privacy\": \"Public\", \"value\": 400}, \"batcher_config.input_stream_content_buffer_size\": {\"description\": \"Sets the buffer size for the input transaction channel. Adding more transactions beyond this limit will block until space is available.\", \"privacy\": \"Public\", \"value\": 400}, \"batcher_config.max_l1_handler_txs_per_block_proposal\": {\"description\": \"The maximum number of L1 handler transactions to include in a block proposal.\", \"privacy\": \"Public\", \"value\": 3}, \"batcher_config.outstream_content_buffer_size\": {\"description\": \"The maximum number of items to include in a single get_proposal_content response.\", \"privacy\": \"Public\", \"value\": 100}, \"batcher_config.storage.db_config.chain_id\": {\"description\": \"The chain to follow. For more details see https://docs.starknet.io/documentation/architecture_and_concepts/Blocks/transactions/#chain-id.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"batcher_config.storage.db_config.enforce_file_exists\": false, \"batcher_config.storage.db_config.growth_step\": {\"description\": \"The growth step in bytes, must be greater than zero to allow the database to grow.\", \"privacy\": \"Public\", \"value\": 4294967296}, \"batcher_config.storage.db_config.max_size\": {\"description\": \"The maximum size of the node's storage in bytes.\", \"privacy\": \"Public\", \"value\": 1099511627776}, \"batcher_config.storage.db_config.min_size\": {\"description\": \"The minimum size of the node's storage in bytes.\", \"privacy\": \"Public\", \"value\": 1048576}, \"batcher_config.storage.db_config.path_prefix\": \"/data\", \"batcher_config.storage.mmap_file_config.growth_step\": {\"description\": \"The growth step in bytes, must be greater than max_object_size.\", \"privacy\": \"Public\", \"value\": 1073741824}, \"batcher_config.storage.mmap_file_config.max_object_size\": {\"description\": \"The maximum size of a single object in the file in bytes\", \"privacy\": \"Public\", \"value\": 268435456}, \"batcher_config.storage.mmap_file_config.max_size\": {\"description\": \"The maximum size of a memory mapped file in bytes. Must be greater than growth_step.\", \"privacy\": \"Public\", \"value\": 1099511627776}, \"batcher_config.storage.scope\": {\"description\": \"The categories of data saved in storage.\", \"privacy\": \"Public\", \"value\": \"StateOnly\"}, \"chain_id\": \"0x5\", \"compiler_config.max_bytecode_size\": {\"description\": \"Limitation of contract bytecode size.\", \"privacy\": \"Public\", \"value\": 81920}, \"components.batcher.execution_mode\": \"Disabled\", \"components.batcher.local_server_config.#is_none\": true, \"components.batcher.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.batcher.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.batcher.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.batcher.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.batcher.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.batcher.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.batcher.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.batcher.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.consensus_manager.execution_mode\": \"Disabled\", \"components.consensus_manager.local_server_config.#is_none\": true, \"components.consensus_manager.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.consensus_manager.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.consensus_manager.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.consensus_manager.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.consensus_manager.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.consensus_manager.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.consensus_manager.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.consensus_manager.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.gateway.execution_mode\": \"Disabled\", \"components.gateway.local_server_config.#is_none\": true, \"components.gateway.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.gateway.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.gateway.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.gateway.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.gateway.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.gateway.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.gateway.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.gateway.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.http_server.execution_mode\": \"Disabled\", \"components.http_server.local_server_config.#is_none\": true, \"components.http_server.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.http_server.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.http_server.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.http_server.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.http_server.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.http_server.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.http_server.remote_server_config.#is_none\": true, \"components.http_server.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.mempool.execution_mode\": \"Disabled\", \"components.mempool.local_server_config.#is_none\": true, \"components.mempool.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.mempool.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.mempool.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.mempool.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.mempool.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.mempool.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.mempool.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.mempool.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.mempool_p2p.execution_mode\": \"Disabled\", \"components.mempool_p2p.local_server_config.#is_none\": true, \"components.mempool_p2p.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.mempool_p2p.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.mempool_p2p.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.mempool_p2p.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.mempool_p2p.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.mempool_p2p.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.mempool_p2p.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.mempool_p2p.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.monitoring_endpoint.execution_mode\": {\"description\": \"The component execution mode.\", \"privacy\": \"Public\", \"value\": \"LocalExecutionWithRemoteEnabled\"}, \"components.monitoring_endpoint.local_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": false}, \"components.monitoring_endpoint.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.monitoring_endpoint.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.monitoring_endpoint.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.monitoring_endpoint.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.monitoring_endpoint.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.monitoring_endpoint.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.monitoring_endpoint.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": false}, \"components.monitoring_endpoint.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.state_sync.execution_mode\": {\"description\": \"The component execution mode.\", \"privacy\": \"Public\", \"value\": \"LocalExecutionWithRemoteDisabled\"}, \"components.state_sync.local_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": false}, \"components.state_sync.local_server_config.channel_buffer_size\": {\"description\": \"The communication channel buffer size.\", \"privacy\": \"Public\", \"value\": 32}, \"components.state_sync.remote_client_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.state_sync.remote_client_config.idle_connections\": {\"description\": \"The maximum number of idle connections to keep alive.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"components.state_sync.remote_client_config.idle_timeout\": {\"description\": \"The duration in seconds to keep an idle connection open before closing.\", \"privacy\": \"Public\", \"value\": 90}, \"components.state_sync.remote_client_config.retries\": {\"description\": \"The max number of retries for sending a message.\", \"privacy\": \"Public\", \"value\": 3}, \"components.state_sync.remote_client_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"components.state_sync.remote_server_config.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"components.state_sync.remote_server_config.socket\": {\"description\": \"The remote component server socket.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0:8080\"}, \"consensus_manager_config.consensus_config.consensus_delay\": {\"description\": \"Delay (seconds) before starting consensus to give time for network peering.\", \"privacy\": \"Public\", \"value\": 5}, \"consensus_manager_config.consensus_config.network_config.advertised_multiaddr\": {\"description\": \"The external address other peers see this node. If this is set, the node will not try to find out which addresses it has and will write this address as external instead\", \"privacy\": \"Public\", \"value\": \"\"}, \"consensus_manager_config.consensus_config.network_config.advertised_multiaddr.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"consensus_manager_config.consensus_config.network_config.bootstrap_peer_multiaddr\": {\"description\": \"The multiaddress of the peer node. It should include the peer's id. For more info: https://docs.libp2p.io/concepts/fundamentals/peers/\", \"privacy\": \"Public\", \"value\": \"\"}, \"consensus_manager_config.consensus_config.network_config.bootstrap_peer_multiaddr.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"consensus_manager_config.consensus_config.network_config.chain_id\": {\"description\": \"The chain to follow. For more details see https://docs.starknet.io/documentation/architecture_and_concepts/Blocks/transactions/#chain-id.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"consensus_manager_config.consensus_config.network_config.discovery_config.bootstrap_dial_retry_config.base_delay_millis\": {\"description\": \"The base delay in milliseconds for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 2}, \"consensus_manager_config.consensus_config.network_config.discovery_config.bootstrap_dial_retry_config.factor\": {\"description\": \"The factor for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 5}, \"consensus_manager_config.consensus_config.network_config.discovery_config.bootstrap_dial_retry_config.max_delay_seconds\": {\"description\": \"The maximum delay in seconds for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 5}, \"consensus_manager_config.consensus_config.network_config.discovery_config.heartbeat_interval\": {\"description\": \"The interval between each discovery (Kademlia) query in milliseconds.\", \"privacy\": \"Public\", \"value\": 100}, \"consensus_manager_config.consensus_config.network_config.idle_connection_timeout\": {\"description\": \"Amount of time in seconds that a connection with no active sessions will stay alive.\", \"privacy\": \"Public\", \"value\": 120}, \"consensus_manager_config.consensus_config.network_config.peer_manager_config.malicious_timeout_seconds\": {\"description\": \"The duration in seconds a peer is blacklisted after being marked as malicious.\", \"privacy\": \"Public\", \"value\": 31536000}, \"consensus_manager_config.consensus_config.network_config.peer_manager_config.unstable_timeout_millis\": {\"description\": \"The duration in milliseconds a peer blacklisted after being reported as unstable.\", \"privacy\": \"Public\", \"value\": 1000}, \"consensus_manager_config.consensus_config.network_config.quic_port\": {\"description\": \"The port that the node listens on for incoming quic connections.\", \"privacy\": \"Public\", \"value\": 10101}, \"consensus_manager_config.consensus_config.network_config.secret_key\": {\"description\": \"The secret key used for building the peer id. If it's an empty string a random one will be used.\", \"privacy\": \"Private\", \"value\": \"\"}, \"consensus_manager_config.consensus_config.network_config.session_timeout\": {\"description\": \"Maximal time in seconds that each session can take before failing on timeout.\", \"privacy\": \"Public\", \"value\": 120}, \"consensus_manager_config.consensus_config.network_config.tcp_port\": {\"description\": \"The port that the node listens on for incoming tcp connections.\", \"privacy\": \"Public\", \"value\": 10100}, \"consensus_manager_config.consensus_config.network_topic\": {\"description\": \"The network topic of the consensus.\", \"privacy\": \"Public\", \"value\": \"consensus\"}, \"consensus_manager_config.consensus_config.num_validators\": {\"description\": \"The number of validators in the consensus.\", \"privacy\": \"Public\", \"value\": 1}, \"consensus_manager_config.consensus_config.start_height\": {\"description\": \"The height to start the consensus from.\", \"privacy\": \"Public\", \"value\": 0}, \"consensus_manager_config.consensus_config.timeouts.precommit_timeout\": {\"description\": \"The timeout (seconds) for a precommit.\", \"privacy\": \"Public\", \"value\": 1.0}, \"consensus_manager_config.consensus_config.timeouts.prevote_timeout\": {\"description\": \"The timeout (seconds) for a prevote.\", \"privacy\": \"Public\", \"value\": 1.0}, \"consensus_manager_config.consensus_config.timeouts.proposal_timeout\": {\"description\": \"The timeout (seconds) for a proposal.\", \"privacy\": \"Public\", \"value\": 3.0}, \"consensus_manager_config.consensus_config.validator_id\": {\"description\": \"The validator id of the node.\", \"privacy\": \"Public\", \"value\": \"0x0\"}, \"eth_fee_token_address\": \"0x6\", \"gateway_config.chain_info.chain_id\": {\"description\": \"The chain ID of the StarkNet chain.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"gateway_config.chain_info.fee_token_addresses.eth_fee_token_address\": {\"description\": \"Address of the ETH fee token.\", \"pointer_target\": \"eth_fee_token_address\", \"privacy\": \"Public\"}, \"gateway_config.chain_info.fee_token_addresses.strk_fee_token_address\": {\"description\": \"Address of the STRK fee token.\", \"pointer_target\": \"strk_fee_token_address\", \"privacy\": \"Public\"}, \"gateway_config.stateful_tx_validator_config.max_nonce_for_validation_skip\": {\"description\": \"Maximum nonce for which the validation is skipped.\", \"privacy\": \"Public\", \"value\": \"0x1\"}, \"gateway_config.stateful_tx_validator_config.versioned_constants_overrides.invoke_tx_max_n_steps\": {\"description\": \"Maximum number of steps the invoke function is allowed to run.\", \"pointer_target\": \"versioned_constants_overrides.invoke_tx_max_n_steps\", \"privacy\": \"Public\"}, \"gateway_config.stateful_tx_validator_config.versioned_constants_overrides.max_recursion_depth\": {\"description\": \"Maximum recursion depth for nested calls during blockifier validation.\", \"pointer_target\": \"versioned_constants_overrides.max_recursion_depth\", \"privacy\": \"Public\"}, \"gateway_config.stateful_tx_validator_config.versioned_constants_overrides.validate_max_n_steps\": {\"description\": \"Maximum number of steps the validation function is allowed to run.\", \"pointer_target\": \"versioned_constants_overrides.validate_max_n_steps\", \"privacy\": \"Public\"}, \"gateway_config.stateless_tx_validator_config.max_calldata_length\": {\"description\": \"Limitation of calldata length.\", \"privacy\": \"Public\", \"value\": 4000}, \"gateway_config.stateless_tx_validator_config.max_contract_class_object_size\": {\"description\": \"Limitation of contract class object size.\", \"privacy\": \"Public\", \"value\": 4089446}, \"gateway_config.stateless_tx_validator_config.max_sierra_version.major\": {\"description\": \"The major version of the configuration.\", \"privacy\": \"Public\", \"value\": 1}, \"gateway_config.stateless_tx_validator_config.max_sierra_version.minor\": {\"description\": \"The minor version of the configuration.\", \"privacy\": \"Public\", \"value\": 5}, \"gateway_config.stateless_tx_validator_config.max_sierra_version.patch\": {\"description\": \"The patch version of the configuration.\", \"privacy\": \"Public\", \"value\": 18446744073709551615}, \"gateway_config.stateless_tx_validator_config.max_signature_length\": {\"description\": \"Limitation of signature length.\", \"privacy\": \"Public\", \"value\": 4000}, \"gateway_config.stateless_tx_validator_config.min_sierra_version.major\": {\"description\": \"The major version of the configuration.\", \"privacy\": \"Public\", \"value\": 1}, \"gateway_config.stateless_tx_validator_config.min_sierra_version.minor\": {\"description\": \"The minor version of the configuration.\", \"privacy\": \"Public\", \"value\": 1}, \"gateway_config.stateless_tx_validator_config.min_sierra_version.patch\": {\"description\": \"The patch version of the configuration.\", \"privacy\": \"Public\", \"value\": 0}, \"gateway_config.stateless_tx_validator_config.validate_non_zero_l1_data_gas_fee\": {\"description\": \"If true, validates that a transaction has non-zero L1 Data (Blob) resource bounds.\", \"privacy\": \"Public\", \"value\": false}, \"gateway_config.stateless_tx_validator_config.validate_non_zero_l1_gas_fee\": {\"description\": \"If true, validates that a transaction has non-zero L1 resource bounds.\", \"privacy\": \"Public\", \"value\": true}, \"gateway_config.stateless_tx_validator_config.validate_non_zero_l2_gas_fee\": {\"description\": \"If true, validates that a transaction has non-zero L2 resource bounds.\", \"privacy\": \"Public\", \"value\": false}, \"http_server_config.ip\": {\"description\": \"The http server ip.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0\"}, \"http_server_config.port\": {\"description\": \"The http server port.\", \"privacy\": \"Public\", \"value\": 8080}, \"mempool_p2p_config.network_buffer_size\": {\"description\": \"Network buffer size.\", \"privacy\": \"Public\", \"value\": 10000}, \"mempool_p2p_config.network_config.advertised_multiaddr\": {\"description\": \"The external address other peers see this node. If this is set, the node will not try to find out which addresses it has and will write this address as external instead\", \"privacy\": \"Public\", \"value\": \"\"}, \"mempool_p2p_config.network_config.advertised_multiaddr.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"mempool_p2p_config.network_config.bootstrap_peer_multiaddr\": {\"description\": \"The multiaddress of the peer node. It should include the peer's id. For more info: https://docs.libp2p.io/concepts/fundamentals/peers/\", \"privacy\": \"Public\", \"value\": \"\"}, \"mempool_p2p_config.network_config.bootstrap_peer_multiaddr.#is_none\": {\"description\": \"Flag for an optional field.\", \"privacy\": \"TemporaryValue\", \"value\": true}, \"mempool_p2p_config.network_config.chain_id\": {\"description\": \"The chain to follow. For more details see https://docs.starknet.io/documentation/architecture_and_concepts/Blocks/transactions/#chain-id.\", \"pointer_target\": \"chain_id\", \"privacy\": \"Public\"}, \"mempool_p2p_config.network_config.discovery_config.bootstrap_dial_retry_config.base_delay_millis\": {\"description\": \"The base delay in milliseconds for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 2}, \"mempool_p2p_config.network_config.discovery_config.bootstrap_dial_retry_config.factor\": {\"description\": \"The factor for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 5}, \"mempool_p2p_config.network_config.discovery_config.bootstrap_dial_retry_config.max_delay_seconds\": {\"description\": \"The maximum delay in seconds for the exponential backoff strategy.\", \"privacy\": \"Public\", \"value\": 5}, \"mempool_p2p_config.network_config.discovery_config.heartbeat_interval\": {\"description\": \"The interval between each discovery (Kademlia) query in milliseconds.\", \"privacy\": \"Public\", \"value\": 100}, \"mempool_p2p_config.network_config.idle_connection_timeout\": {\"description\": \"Amount of time in seconds that a connection with no active sessions will stay alive.\", \"privacy\": \"Public\", \"value\": 120}, \"mempool_p2p_config.network_config.peer_manager_config.malicious_timeout_seconds\": {\"description\": \"The duration in seconds a peer is blacklisted after being marked as malicious.\", \"privacy\": \"Public\", \"value\": 31536000}, \"mempool_p2p_config.network_config.peer_manager_config.unstable_timeout_millis\": {\"description\": \"The duration in milliseconds a peer blacklisted after being reported as unstable.\", \"privacy\": \"Public\", \"value\": 1000}, \"mempool_p2p_config.network_config.quic_port\": {\"description\": \"The port that the node listens on for incoming quic connections.\", \"privacy\": \"Public\", \"value\": 10001}, \"mempool_p2p_config.network_config.secret_key\": {\"description\": \"The secret key used for building the peer id. If it's an empty string a random one will be used.\", \"privacy\": \"Private\", \"value\": \"\"}, \"mempool_p2p_config.network_config.session_timeout\": {\"description\": \"Maximal time in seconds that each session can take before failing on timeout.\", \"privacy\": \"Public\", \"value\": 120}, \"mempool_p2p_config.network_config.tcp_port\": {\"description\": \"The port that the node listens on for incoming tcp connections.\", \"privacy\": \"Public\", \"value\": 10000}, \"monitoring_endpoint_config.ip\": {\"description\": \"The monitoring endpoint ip address.\", \"privacy\": \"Public\", \"value\": \"0.0.0.0\"}, \"monitoring_endpoint_config.port\": {\"description\": \"The monitoring endpoint port.\", \"privacy\": \"Public\", \"value\": 8082}, \"rpc_state_reader_config.json_rpc_version\": {\"description\": \"The json rpc version.\", \"privacy\": \"Public\", \"value\": \"\"}, \"rpc_state_reader_config.url\": {\"description\": \"The url of the rpc server.\", \"privacy\": \"Public\", \"value\": \"\"}, \"sequencer_address\": {\"description\": \"A required param! The sequencer address.\", \"param_type\": \"String\", \"privacy\": \"TemporaryValue\"}, \"strk_fee_token_address\": \"0x7\", \"versioned_constants_overrides.invoke_tx_max_n_steps\": {\"description\": \"Maximum number of steps the invoke function is allowed to run.\", \"privacy\": \"TemporaryValue\", \"value\": 10000000}, \"versioned_constants_overrides.max_recursion_depth\": {\"description\": \"Maximum recursion depth for nested calls during blockifier validation.\", \"privacy\": \"TemporaryValue\", \"value\": 50}, \"versioned_constants_overrides.validate_max_n_steps\": {\"description\": \"Maximum number of steps the validation function is allowed to run.\", \"privacy\": \"TemporaryValue\", \"value\": 1000000}}"