Skip to content

Commit 24569f6

Browse files
apollo_gateway_config: create proof archive writer config
1 parent 207e94e commit 24569f6

File tree

7 files changed

+49
-6
lines changed

7 files changed

+49
-6
lines changed

crates/apollo_deployments/resources/app_configs/gateway_config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"gateway_config.contract_class_manager_config.native_compiler_config.max_memory_usage": 16106127360,
1818
"gateway_config.contract_class_manager_config.native_compiler_config.max_memory_usage.#is_none": false,
1919
"gateway_config.contract_class_manager_config.native_compiler_config.optimization_level": 2,
20+
"gateway_config.proof_archive_writer_config.bucket_name": "proof-archive",
2021
"gateway_config.stateful_tx_validator_config.max_allowed_nonce_gap": 200,
2122
"gateway_config.stateful_tx_validator_config.max_nonce_for_validation_skip": "0x1",
2223
"gateway_config.stateful_tx_validator_config.min_gas_price_percentage": 100,
@@ -34,4 +35,4 @@
3435
"gateway_config.stateless_tx_validator_config.min_sierra_version.major": 1,
3536
"gateway_config.stateless_tx_validator_config.min_sierra_version.minor": 1,
3637
"gateway_config.stateless_tx_validator_config.min_sierra_version.patch": 0
37-
}
38+
}

crates/apollo_deployments/resources/app_configs/replacer_gateway_config.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"gateway_config.contract_class_manager_config.native_compiler_config.max_memory_usage": 16106127360,
1818
"gateway_config.contract_class_manager_config.native_compiler_config.max_memory_usage.#is_none": false,
1919
"gateway_config.contract_class_manager_config.native_compiler_config.optimization_level": 2,
20+
"gateway_config.proof_archive_writer_config.bucket_name": "proof-archive",
2021
"gateway_config.stateful_tx_validator_config.max_allowed_nonce_gap": "$$$_GATEWAY_CONFIG-STATEFUL_TX_VALIDATOR_CONFIG-MAX_ALLOWED_NONCE_GAP_$$$",
2122
"gateway_config.stateful_tx_validator_config.max_nonce_for_validation_skip": "0x1",
2223
"gateway_config.stateful_tx_validator_config.min_gas_price_percentage": 100,

crates/apollo_gateway/src/gateway_test.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use apollo_config::dumping::SerializeConfig;
1111
use apollo_config::loading::load_and_process_config;
1212
use apollo_gateway_config::config::{
1313
GatewayConfig,
14+
ProofArchiveWriterConfig,
1415
StatefulTransactionValidatorConfig,
1516
StatelessTransactionValidatorConfig,
1617
};
@@ -126,6 +127,7 @@ fn mock_dependencies() -> MockDependencies {
126127
chain_info: ChainInfo::create_for_testing(),
127128
block_declare: false,
128129
authorized_declarer_accounts: None,
130+
proof_archive_writer_config: ProofArchiveWriterConfig::default(),
129131
};
130132
let state_reader_factory =
131133
local_test_state_reader_factory(CairoVersion::Cairo1(RunnableCairo1::Casm), true);

crates/apollo_gateway/src/proof_archive_writer.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use apollo_gateway_config::config::ProofArchiveWriterConfig;
12
use async_trait::async_trait;
23
#[cfg(any(feature = "testing", test))]
34
use mockall::automock;
@@ -22,13 +23,14 @@ pub enum ProofArchiveError {
2223
}
2324

2425
#[derive(Clone, Default)]
25-
// TODO(Einat): Add GCS related fields.
26-
pub struct GcsProofArchiveWriter;
26+
pub struct GcsProofArchiveWriter {
27+
#[allow(dead_code)]
28+
config: ProofArchiveWriterConfig,
29+
}
2730

2831
impl GcsProofArchiveWriter {
29-
pub fn new() -> Self {
30-
// TODO(Einat): connect to GCS client.
31-
Self
32+
pub fn new(config: ProofArchiveWriterConfig) -> Self {
33+
Self { config }
3234
}
3335
}
3436

crates/apollo_gateway_config/src/config.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use validator::Validate;
2323
use crate::compiler_version::VersionId;
2424

2525
const JSON_RPC_VERSION: &str = "2.0";
26+
const DEFAULT_BUCKET_NAME: &str = "proof-archive";
2627

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

3840
impl Default for GatewayConfig {
@@ -47,6 +49,7 @@ impl Default for GatewayConfig {
4749
chain_info: ChainInfo::default(),
4850
block_declare: false,
4951
authorized_declarer_accounts: None,
52+
proof_archive_writer_config: ProofArchiveWriterConfig::default(),
5053
}
5154
}
5255
}
@@ -80,6 +83,10 @@ impl SerializeConfig for GatewayConfig {
8083
Addresses are in hex format and separated by a comma with no space.",
8184
ParamPrivacyInput::Public,
8285
));
86+
dump.extend(prepend_sub_config_name(
87+
self.proof_archive_writer_config.dump(),
88+
"proof_archive_writer_config",
89+
));
8390
dump
8491
}
8592
}
@@ -302,3 +309,25 @@ impl SerializeConfig for StatefulTransactionValidatorConfig {
302309
dump
303310
}
304311
}
312+
313+
#[derive(Clone, Debug, Serialize, Deserialize, Validate, PartialEq)]
314+
pub struct ProofArchiveWriterConfig {
315+
pub bucket_name: String,
316+
}
317+
318+
impl Default for ProofArchiveWriterConfig {
319+
fn default() -> Self {
320+
Self { bucket_name: DEFAULT_BUCKET_NAME.to_string() }
321+
}
322+
}
323+
324+
impl SerializeConfig for ProofArchiveWriterConfig {
325+
fn dump(&self) -> BTreeMap<ParamPath, SerializedParam> {
326+
BTreeMap::from_iter([ser_param(
327+
"bucket_name",
328+
&self.bucket_name,
329+
"The name of the bucket to write proofs to.",
330+
ParamPrivacyInput::Public,
331+
)])
332+
}
333+
}

crates/apollo_integration_tests/src/utils.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ use apollo_consensus_orchestrator::cende::RECORDER_WRITE_BLOB_PATH;
2626
use apollo_consensus_orchestrator_config::config::{CendeConfig, ContextConfig};
2727
use apollo_gateway_config::config::{
2828
GatewayConfig,
29+
ProofArchiveWriterConfig,
2930
StatefulTransactionValidatorConfig,
3031
StatelessTransactionValidatorConfig,
3132
};
@@ -629,6 +630,7 @@ pub fn create_gateway_config(
629630
..Default::default()
630631
};
631632
let contract_class_manager_config = ContractClassManagerConfig::default();
633+
let proof_archive_writer_config = ProofArchiveWriterConfig::default();
632634

633635
GatewayConfig {
634636
stateless_tx_validator_config,
@@ -637,6 +639,7 @@ pub fn create_gateway_config(
637639
chain_info,
638640
block_declare: false,
639641
authorized_declarer_accounts: None,
642+
proof_archive_writer_config,
640643
}
641644
}
642645

crates/apollo_node/resources/config_schema.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2499,6 +2499,11 @@
24992499
"privacy": "Public",
25002500
"value": 2
25012501
},
2502+
"gateway_config.proof_archive_writer_config.bucket_name": {
2503+
"description": "The name of the bucket to write proofs to.",
2504+
"privacy": "Public",
2505+
"value": "proof-archive"
2506+
},
25022507
"gateway_config.stateful_tx_validator_config.max_allowed_nonce_gap": {
25032508
"description": "The maximum allowed gap between the account nonce and the transaction nonce.",
25042509
"privacy": "Public",

0 commit comments

Comments
 (0)