Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"gateway_config.contract_class_manager_config.native_compiler_config.max_memory_usage": 16106127360,
"gateway_config.contract_class_manager_config.native_compiler_config.max_memory_usage.#is_none": false,
"gateway_config.contract_class_manager_config.native_compiler_config.optimization_level": 2,
"gateway_config.proof_archive_writer_config.bucket_name": "proof-archive",
"gateway_config.stateful_tx_validator_config.max_allowed_nonce_gap": 200,
"gateway_config.stateful_tx_validator_config.max_nonce_for_validation_skip": "0x1",
"gateway_config.stateful_tx_validator_config.min_gas_price_percentage": 100,
Expand All @@ -34,4 +35,4 @@
"gateway_config.stateless_tx_validator_config.min_sierra_version.major": 1,
"gateway_config.stateless_tx_validator_config.min_sierra_version.minor": 1,
"gateway_config.stateless_tx_validator_config.min_sierra_version.patch": 0
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"gateway_config.contract_class_manager_config.native_compiler_config.max_memory_usage": 16106127360,
"gateway_config.contract_class_manager_config.native_compiler_config.max_memory_usage.#is_none": false,
"gateway_config.contract_class_manager_config.native_compiler_config.optimization_level": 2,
"gateway_config.proof_archive_writer_config.bucket_name": "proof-archive",
"gateway_config.stateful_tx_validator_config.max_allowed_nonce_gap": "$$$_GATEWAY_CONFIG-STATEFUL_TX_VALIDATOR_CONFIG-MAX_ALLOWED_NONCE_GAP_$$$",
"gateway_config.stateful_tx_validator_config.max_nonce_for_validation_skip": "0x1",
"gateway_config.stateful_tx_validator_config.min_gas_price_percentage": 100,
Expand Down
2 changes: 2 additions & 0 deletions crates/apollo_gateway/src/gateway_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ use apollo_config::dumping::SerializeConfig;
use apollo_config::loading::load_and_process_config;
use apollo_gateway_config::config::{
GatewayConfig,
ProofArchiveWriterConfig,
StatefulTransactionValidatorConfig,
StatelessTransactionValidatorConfig,
};
Expand Down Expand Up @@ -126,6 +127,7 @@ fn mock_dependencies() -> MockDependencies {
chain_info: ChainInfo::create_for_testing(),
block_declare: false,
authorized_declarer_accounts: None,
proof_archive_writer_config: ProofArchiveWriterConfig::default(),
};
let state_reader_factory =
local_test_state_reader_factory(CairoVersion::Cairo1(RunnableCairo1::Casm), true);
Expand Down
13 changes: 8 additions & 5 deletions crates/apollo_gateway/src/proof_archive_writer.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use apollo_gateway_config::config::ProofArchiveWriterConfig;
use async_trait::async_trait;
#[cfg(any(feature = "testing", test))]
use mockall::automock;
Expand All @@ -22,13 +23,15 @@ pub enum ProofArchiveError {
}

#[derive(Clone, Default)]
// TODO(Einat): Add GCS related fields.
pub struct GcsProofArchiveWriter;
pub struct GcsProofArchiveWriter {
// TODO(Einat): remove #[allow(dead_code)] once implemented.
#[allow(dead_code)]
config: ProofArchiveWriterConfig,
}

impl GcsProofArchiveWriter {
pub fn new() -> Self {
// TODO(Einat): connect to GCS client.
Self
pub fn new(config: ProofArchiveWriterConfig) -> Self {
Self { config }
}
}

Expand Down
29 changes: 29 additions & 0 deletions crates/apollo_gateway_config/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ use validator::Validate;
use crate::compiler_version::VersionId;

const JSON_RPC_VERSION: &str = "2.0";
const DEFAULT_BUCKET_NAME: &str = "proof-archive";

#[derive(Clone, Debug, Serialize, Deserialize, Validate, PartialEq)]
pub struct GatewayConfig {
Expand All @@ -33,6 +34,7 @@ pub struct GatewayConfig {
pub block_declare: bool,
#[serde(default, deserialize_with = "deserialize_comma_separated_str")]
pub authorized_declarer_accounts: Option<Vec<ContractAddress>>,
pub proof_archive_writer_config: ProofArchiveWriterConfig,
}

impl Default for GatewayConfig {
Expand All @@ -47,6 +49,7 @@ impl Default for GatewayConfig {
chain_info: ChainInfo::default(),
block_declare: false,
authorized_declarer_accounts: None,
proof_archive_writer_config: ProofArchiveWriterConfig::default(),
}
}
}
Expand Down Expand Up @@ -80,6 +83,10 @@ impl SerializeConfig for GatewayConfig {
Addresses are in hex format and separated by a comma with no space.",
ParamPrivacyInput::Public,
));
dump.extend(prepend_sub_config_name(
self.proof_archive_writer_config.dump(),
"proof_archive_writer_config",
));
dump
}
}
Expand Down Expand Up @@ -302,3 +309,25 @@ impl SerializeConfig for StatefulTransactionValidatorConfig {
dump
}
}

#[derive(Clone, Debug, Serialize, Deserialize, Validate, PartialEq)]
pub struct ProofArchiveWriterConfig {
pub bucket_name: String,
}

impl Default for ProofArchiveWriterConfig {
fn default() -> Self {
Self { bucket_name: DEFAULT_BUCKET_NAME.to_string() }
}
}

impl SerializeConfig for ProofArchiveWriterConfig {
fn dump(&self) -> BTreeMap<ParamPath, SerializedParam> {
BTreeMap::from_iter([ser_param(
"bucket_name",
&self.bucket_name,
"The name of the bucket to write proofs to.",
ParamPrivacyInput::Public,
)])
}
}
3 changes: 3 additions & 0 deletions crates/apollo_integration_tests/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ use apollo_consensus_orchestrator::cende::RECORDER_WRITE_BLOB_PATH;
use apollo_consensus_orchestrator_config::config::{CendeConfig, ContextConfig};
use apollo_gateway_config::config::{
GatewayConfig,
ProofArchiveWriterConfig,
StatefulTransactionValidatorConfig,
StatelessTransactionValidatorConfig,
};
Expand Down Expand Up @@ -629,6 +630,7 @@ pub fn create_gateway_config(
..Default::default()
};
let contract_class_manager_config = ContractClassManagerConfig::default();
let proof_archive_writer_config = ProofArchiveWriterConfig::default();

GatewayConfig {
stateless_tx_validator_config,
Expand All @@ -637,6 +639,7 @@ pub fn create_gateway_config(
chain_info,
block_declare: false,
authorized_declarer_accounts: None,
proof_archive_writer_config,
}
}

Expand Down
5 changes: 5 additions & 0 deletions crates/apollo_node/resources/config_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -2499,6 +2499,11 @@
"privacy": "Public",
"value": 2
},
"gateway_config.proof_archive_writer_config.bucket_name": {
"description": "The name of the bucket to write proofs to.",
"privacy": "Public",
"value": "proof-archive"
},
"gateway_config.stateful_tx_validator_config.max_allowed_nonce_gap": {
"description": "The maximum allowed gap between the account nonce and the transaction nonce.",
"privacy": "Public",
Expand Down
Loading