diff --git a/src/dfx/src/commands/replica.rs b/src/dfx/src/commands/replica.rs index 4560464023..4b470e0fd6 100644 --- a/src/dfx/src/commands/replica.rs +++ b/src/dfx/src/commands/replica.rs @@ -3,9 +3,7 @@ use crate::config::dfinity::ConfigDefaultsReplica; use crate::lib::environment::Environment; use crate::lib::error::{DfxError, DfxResult}; use crate::lib::message::UserMessage; -use crate::lib::replica_config::{ - HttpHandlerConfig, ReplicaConfig, SchedulerConfig, StateManagerConfig, -}; +use crate::lib::replica_config::{HttpHandlerConfig, ReplicaConfig, SchedulerConfig}; use clap::{App, Arg, ArgMatches, SubCommand}; use crossbeam::channel::{Receiver, Sender}; @@ -61,14 +59,11 @@ fn get_config(env: &dyn Environment, args: &ArgMatches<'_>) -> DfxResult) -> DfxResult { let request_stop_echo = request_stop.clone(); let rcv_wait_fwatcher = rcv_wait.clone(); b.set_message("Generating IC local replica configuration."); - let replica_config = ReplicaConfig::new(&state_root) + let replica_config = ReplicaConfig::new(state_root) .with_random_port(&client_port_path) .to_toml()?; diff --git a/src/dfx/src/lib/replica_config.rs b/src/dfx/src/lib/replica_config.rs index 9146990142..fc6d124bcf 100644 --- a/src/dfx/src/lib/replica_config.rs +++ b/src/dfx/src/lib/replica_config.rs @@ -33,6 +33,16 @@ impl SchedulerConfig { } } +#[derive(Clone, Debug, Default, Serialize, Deserialize)] +pub struct ArtifactPoolConfig { + pub consensus_pool_path: PathBuf, +} + +#[derive(Clone, Debug, Default, Serialize, Deserialize)] +pub struct CryptoConfig { + pub crypto_root: PathBuf, +} + #[derive(Clone, Debug, Default, Serialize, Deserialize)] pub struct StateManagerConfig { pub state_root: PathBuf, @@ -43,10 +53,12 @@ pub struct ReplicaConfig { pub http_handler: HttpHandlerConfig, pub scheduler: SchedulerConfig, pub state_manager: StateManagerConfig, + pub crypto: CryptoConfig, + pub artifact_pool: ArtifactPoolConfig, } impl ReplicaConfig { - pub fn new(state_root: &Path) -> Self { + pub fn new(state_root: PathBuf) -> Self { ReplicaConfig { http_handler: HttpHandlerConfig { write_port_to: None, @@ -57,7 +69,13 @@ impl ReplicaConfig { round_gas_max: None, }, state_manager: StateManagerConfig { - state_root: state_root.to_path_buf(), + state_root: state_root.join("replicated_state"), + }, + crypto: CryptoConfig { + crypto_root: state_root.join("crypto_store"), + }, + artifact_pool: ArtifactPoolConfig { + consensus_pool_path: state_root.join("consensus_pool"), }, } }