Skip to content

Commit 3cf656f

Browse files
apollo_gateway_config: create proof archive writer config
1 parent e9c9b5f commit 3cf656f

File tree

10 files changed

+60
-10
lines changed

10 files changed

+60
-10
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"proof_manager_config.persistent_root": "/data/proofs"
3-
}
2+
"proof_manager_config.persistent_root": "/data/proofs"
3+
}
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
{
22
"base_layer_config.ordered_l1_endpoint_urls": "http://anvil-service.anvil.svc.cluster.local:8545",
33
"consensus_manager_config.network_config.secret_key": "0x0101010101010101010101010101010101010101010101010101010101010101",
4+
"gateway_config.proof_archive_writer_config.bucket_name": "test-proof-archive-bucket",
45
"l1_gas_price_provider_config.eth_to_strk_oracle_config.url_header_list": "http://dummy-eth2strk-oracle-service.dummy-eth2strk-oracle.svc.cluster.local/eth_to_strk_oracle?timestamp=:9000",
5-
"mempool_p2p_config.network_config.secret_key" : "0x0101010101010101010101010101010101010101010101010101010101010101",
6+
"mempool_p2p_config.network_config.secret_key": "0x0101010101010101010101010101010101010101010101010101010101010101",
67
"recorder_url": "http://dummy-recorder-service.dummy-recorder.svc.cluster.local:8080",
78
"state_sync_config.central_sync_client_config.central_source_config.http_headers": "",
8-
"state_sync_config.network_config.secret_key" : "0x0101010101010101010101010101010101010101010101010101010101010101"
9+
"state_sync_config.network_config.secret_key": "0x0101010101010101010101010101010101010101010101010101010101010101"
910
}

crates/apollo_deployments/src/test_utils.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ pub struct SecretsConfigOverride {
2121
serialize_with = "serialize_optional_vec_u8_wrapper"
2222
)]
2323
consensus_manager_config_network_config_secret_key: Option<Vec<u8>>,
24+
#[serde(rename = "gateway_config.proof_archive_writer_config.bucket_name")]
25+
gateway_config_proof_archive_writer_config_bucket_name: String,
26+
2427
#[serde(
2528
rename = "l1_gas_price_provider_config.eth_to_strk_oracle_config.url_header_list",
2629
serialize_with = "serialize_optional_list_with_url_and_headers_wrapper"
@@ -52,6 +55,8 @@ impl Default for SecretsConfigOverride {
5255
Url::parse("https://arbitrary.ordered_l1_endpoint_2.url").unwrap(),
5356
],
5457
consensus_manager_config_network_config_secret_key: None,
58+
gateway_config_proof_archive_writer_config_bucket_name: "arbitrary_bucket_name"
59+
.to_string(),
5560
l1_gas_price_provider_config_config_eth_to_strk_oracle_config_url_header_list: Some(
5661
vec![UrlAndHeaders {
5762
url: Url::parse("https://arbitrary.eth_to_strk_oracle.url").unwrap(),

crates/apollo_gateway/src/gateway.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,8 @@ pub fn create_gateway(
246246
let stateless_tx_validator = Arc::new(StatelessTransactionValidator {
247247
config: config.stateless_tx_validator_config.clone(),
248248
});
249-
let proof_archive_writer = Arc::new(GcsProofArchiveWriter::new());
249+
let proof_archive_writer =
250+
Arc::new(GcsProofArchiveWriter::new(config.proof_archive_writer_config.clone()));
250251
Gateway::new(
251252
config,
252253
state_reader_factory,

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
};
@@ -127,6 +128,7 @@ fn mock_dependencies() -> MockDependencies {
127128
chain_info: ChainInfo::create_for_testing(),
128129
block_declare: false,
129130
authorized_declarer_accounts: None,
131+
proof_archive_writer_config: ProofArchiveWriterConfig::default(),
130132
};
131133
let state_reader_factory =
132134
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: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use apollo_config::dumping::{
1111
ser_param,
1212
SerializeConfig,
1313
};
14+
use apollo_config::secrets::Sensitive;
1415
use apollo_config::{ParamPath, ParamPrivacyInput, SerializedParam};
1516
use blockifier::blockifier::config::ContractClassManagerConfig;
1617
use blockifier::blockifier_versioned_constants::VersionedConstantsOverrides;
@@ -23,6 +24,7 @@ use validator::Validate;
2324
use crate::compiler_version::VersionId;
2425

2526
const JSON_RPC_VERSION: &str = "2.0";
27+
const DEFAULT_BUCKET_NAME: &str = "proof-archive";
2628

2729
#[derive(Clone, Debug, Serialize, Deserialize, Validate, PartialEq)]
2830
pub struct GatewayConfig {
@@ -33,6 +35,7 @@ pub struct GatewayConfig {
3335
pub block_declare: bool,
3436
#[serde(default, deserialize_with = "deserialize_comma_separated_str")]
3537
pub authorized_declarer_accounts: Option<Vec<ContractAddress>>,
38+
pub proof_archive_writer_config: ProofArchiveWriterConfig,
3639
}
3740

3841
impl Default for GatewayConfig {
@@ -47,6 +50,7 @@ impl Default for GatewayConfig {
4750
chain_info: ChainInfo::default(),
4851
block_declare: false,
4952
authorized_declarer_accounts: None,
53+
proof_archive_writer_config: ProofArchiveWriterConfig::default(),
5054
}
5155
}
5256
}
@@ -80,6 +84,10 @@ impl SerializeConfig for GatewayConfig {
8084
Addresses are in hex format and separated by a comma with no space.",
8185
ParamPrivacyInput::Public,
8286
));
87+
dump.extend(prepend_sub_config_name(
88+
self.proof_archive_writer_config.dump(),
89+
"proof_archive_writer_config",
90+
));
8391
dump
8492
}
8593
}
@@ -292,3 +300,25 @@ impl SerializeConfig for StatefulTransactionValidatorConfig {
292300
dump
293301
}
294302
}
303+
304+
#[derive(Clone, Debug, Serialize, Deserialize, Validate, PartialEq)]
305+
pub struct ProofArchiveWriterConfig {
306+
pub bucket_name: Sensitive<String>,
307+
}
308+
309+
impl Default for ProofArchiveWriterConfig {
310+
fn default() -> Self {
311+
Self { bucket_name: DEFAULT_BUCKET_NAME.to_string().into() }
312+
}
313+
}
314+
315+
impl SerializeConfig for ProofArchiveWriterConfig {
316+
fn dump(&self) -> BTreeMap<ParamPath, SerializedParam> {
317+
BTreeMap::from_iter([ser_param(
318+
"bucket_name",
319+
&self.bucket_name,
320+
"The name of the bucket to write proofs to.",
321+
ParamPrivacyInput::Private,
322+
)])
323+
}
324+
}

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
};
@@ -630,6 +631,7 @@ pub fn create_gateway_config(
630631
..Default::default()
631632
};
632633
let contract_class_manager_config = ContractClassManagerConfig::default();
634+
let proof_archive_writer_config = ProofArchiveWriterConfig::default();
633635

634636
GatewayConfig {
635637
stateless_tx_validator_config,
@@ -638,6 +640,7 @@ pub fn create_gateway_config(
638640
chain_info,
639641
block_declare: false,
640642
authorized_declarer_accounts: None,
643+
proof_archive_writer_config,
641644
}
642645
}
643646

crates/apollo_node/resources/config_schema.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2489,6 +2489,11 @@
24892489
"privacy": "Public",
24902490
"value": 2
24912491
},
2492+
"gateway_config.proof_archive_writer_config.bucket_name": {
2493+
"description": "The name of the bucket to write proofs to.",
2494+
"privacy": "Private",
2495+
"value": "<<redacted>>"
2496+
},
24922497
"gateway_config.stateful_tx_validator_config.max_allowed_nonce_gap": {
24932498
"description": "The maximum allowed gap between the account nonce and the transaction nonce.",
24942499
"privacy": "Public",

crates/apollo_node/resources/config_secrets_schema.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[
22
"base_layer_config.ordered_l1_endpoint_urls",
33
"consensus_manager_config.network_config.secret_key",
4+
"gateway_config.proof_archive_writer_config.bucket_name",
45
"l1_gas_price_provider_config.eth_to_strk_oracle_config.url_header_list",
56
"mempool_p2p_config.network_config.secret_key",
67
"recorder_url",

0 commit comments

Comments
 (0)