mirror of
https://github.com/logos-blockchain/logos-blockchain-testing.git
synced 2026-01-02 13:23:13 +00:00
Refactors long config builders into small, intent-named helpers.
- create_general_configs_with_blend_core_subset
- Before: validation + id/port gen + component config build + provider/genesis + kms + per-node assembly.
- After: validate_node_counts/generate_ids_and_ports/collect_blend_core_providers/
apply_consensus_genesis_tx/build_kms_configs/build_general_configs.
- build_blend_service_config
- Before: mixed constants parsing + user/deployment/network settings build.
- After: message_frequency_per_round/build_blend_user_config/
build_blend_deployment_settings/build_network_deployment_settings.
- create_validator_config/create_executor_config
- Before: large struct literals mixing deployment, DA network, storage, dispersal.
- After: deployment helpers + backend/settings helpers to keep top-level constructor readable.
- create_genesis_tx_with_declarations
- Before: inscription + op building + proof signing + tx wrapping in one block.
- After: build_genesis_inscription/build_genesis_ops/build_genesis_ops_proofs/build_genesis_tx.
111 lines
4.3 KiB
Rust
111 lines
4.3 KiB
Rust
use nomos_da_network_core::{
|
|
protocols::sampling::SubnetsConfig, swarm::DAConnectionPolicySettings,
|
|
};
|
|
use nomos_da_network_service::{
|
|
NetworkConfig as DaNetworkConfig, api::http::ApiAdapterSettings,
|
|
backends::libp2p::common::DaNetworkBackendSettings,
|
|
};
|
|
use nomos_node::{
|
|
Config as ValidatorConfig, RocksBackendSettings, config::deployment::DeploymentSettings,
|
|
};
|
|
use nomos_sdp::SdpSettings;
|
|
|
|
use crate::{
|
|
nodes::{
|
|
blend::build_blend_service_config,
|
|
common::{
|
|
cryptarchia_config, cryptarchia_deployment, da_sampling_config, da_verifier_config,
|
|
http_config, mempool_config, mempool_deployment, testing_http_config, time_config,
|
|
time_deployment, tracing_settings, wallet_settings,
|
|
},
|
|
},
|
|
topology::configs::GeneralConfig,
|
|
};
|
|
|
|
#[must_use]
|
|
pub fn create_validator_config(config: GeneralConfig) -> ValidatorConfig {
|
|
let network_config = config.network_config.clone();
|
|
let (blend_user_config, blend_deployment, network_deployment) =
|
|
build_blend_service_config(&config.blend_config);
|
|
|
|
let deployment_settings =
|
|
build_validator_deployment_settings(&config, blend_deployment, network_deployment);
|
|
|
|
ValidatorConfig {
|
|
network: network_config,
|
|
blend: blend_user_config,
|
|
deployment: deployment_settings,
|
|
cryptarchia: cryptarchia_config(&config),
|
|
da_network: DaNetworkConfig {
|
|
backend: build_validator_da_network_backend_settings(&config),
|
|
membership: config.da_config.membership.clone(),
|
|
api_adapter_settings: ApiAdapterSettings {
|
|
api_port: config.api_config.address.port(),
|
|
is_secure: false,
|
|
},
|
|
subnet_refresh_interval: config.da_config.subnets_refresh_interval,
|
|
subnet_threshold: config.da_config.num_samples as usize,
|
|
min_session_members: config.da_config.num_samples as usize,
|
|
},
|
|
da_verifier: da_verifier_config(&config),
|
|
tracing: tracing_settings(&config),
|
|
http: http_config(&config),
|
|
da_sampling: da_sampling_config(&config),
|
|
storage: rocks_storage_settings(),
|
|
time: time_config(&config),
|
|
mempool: mempool_config(),
|
|
sdp: SdpSettings { declaration: None },
|
|
testing_http: testing_http_config(&config),
|
|
wallet: wallet_settings(&config),
|
|
key_management: config.kms_config.clone(),
|
|
}
|
|
}
|
|
|
|
fn build_validator_deployment_settings(
|
|
config: &GeneralConfig,
|
|
blend_deployment: nomos_node::config::blend::deployment::Settings,
|
|
network_deployment: nomos_node::config::network::deployment::Settings,
|
|
) -> DeploymentSettings {
|
|
DeploymentSettings::new_custom(
|
|
blend_deployment,
|
|
network_deployment,
|
|
cryptarchia_deployment(config),
|
|
time_deployment(config),
|
|
mempool_deployment(),
|
|
)
|
|
}
|
|
|
|
fn build_validator_da_network_backend_settings(config: &GeneralConfig) -> DaNetworkBackendSettings {
|
|
let da_policy_settings = config.da_config.policy_settings.clone();
|
|
|
|
DaNetworkBackendSettings {
|
|
node_key: config.da_config.node_key.clone(),
|
|
listening_address: config.da_config.listening_address.clone(),
|
|
policy_settings: DAConnectionPolicySettings {
|
|
min_dispersal_peers: 0,
|
|
min_replication_peers: da_policy_settings.min_replication_peers,
|
|
max_dispersal_failures: da_policy_settings.max_dispersal_failures,
|
|
max_sampling_failures: da_policy_settings.max_sampling_failures,
|
|
max_replication_failures: da_policy_settings.max_replication_failures,
|
|
malicious_threshold: da_policy_settings.malicious_threshold,
|
|
},
|
|
monitor_settings: config.da_config.monitor_settings.clone(),
|
|
balancer_interval: config.da_config.balancer_interval,
|
|
redial_cooldown: config.da_config.redial_cooldown,
|
|
replication_settings: config.da_config.replication_settings,
|
|
subnets_settings: SubnetsConfig {
|
|
num_of_subnets: config.da_config.num_samples as usize,
|
|
shares_retry_limit: config.da_config.retry_shares_limit,
|
|
commitments_retry_limit: config.da_config.retry_commitments_limit,
|
|
},
|
|
}
|
|
}
|
|
|
|
fn rocks_storage_settings() -> RocksBackendSettings {
|
|
RocksBackendSettings {
|
|
db_path: "./db".into(),
|
|
read_only: false,
|
|
column_family: Some("blocks".into()),
|
|
}
|
|
}
|