62 lines
2.4 KiB
Rust
62 lines
2.4 KiB
Rust
//! Zebrad Config
|
|
//!
|
|
//! See instructions in `commands.rs` to specify the path to your
|
|
//! application's configuration file and/or command-line options
|
|
//! for specifying it.
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
/// Configuration for `zebrad`.
|
|
///
|
|
/// The `zebrad` config is a TOML-encoded version of this structure. The meaning
|
|
/// of each field is described in the documentation, although it may be necessary
|
|
/// to click through to the sub-structures for each section.
|
|
///
|
|
/// The path to the configuration file can also be specified with the `--config` flag when running Zebra.
|
|
///
|
|
/// The default path to the `zebrad` config is platform dependent, based on
|
|
/// [`dirs::preference_dir`](https://docs.rs/dirs/latest/dirs/fn.preference_dir.html):
|
|
///
|
|
/// | Platform | Value | Example |
|
|
/// | -------- | ------------------------------------- | ---------------------------------------------- |
|
|
/// | Linux | `$XDG_CONFIG_HOME` or `$HOME/.config` | `/home/alice/.config/zebrad.toml` |
|
|
/// | macOS | `$HOME/Library/Preferences` | `/Users/Alice/Library/Preferences/zebrad.toml` |
|
|
/// | Windows | `{FOLDERID_RoamingAppData}` | `C:\Users\Alice\AppData\Local\zebrad.toml` |
|
|
#[derive(Clone, Default, Debug, Eq, PartialEq, Deserialize, Serialize)]
|
|
#[serde(deny_unknown_fields, default)]
|
|
pub struct ZebradConfig {
|
|
/// Consensus configuration
|
|
//
|
|
// These configs use full paths to avoid a rustdoc link bug (#7048).
|
|
pub consensus: zebra_consensus::config::Config,
|
|
|
|
/// Metrics configuration
|
|
pub metrics: crate::components::metrics::Config,
|
|
|
|
/// Networking configuration
|
|
pub network: zebra_network::config::Config,
|
|
|
|
/// State configuration
|
|
pub state: zebra_state::config::Config,
|
|
|
|
/// Tracing configuration
|
|
pub tracing: crate::components::tracing::Config,
|
|
|
|
/// Sync configuration
|
|
pub sync: crate::components::sync::Config,
|
|
|
|
/// Mempool configuration
|
|
pub mempool: crate::components::mempool::Config,
|
|
|
|
/// RPC configuration
|
|
pub rpc: zebra_rpc::config::Config,
|
|
|
|
#[serde(skip_serializing_if = "zebra_rpc::config::mining::Config::skip_getblocktemplate")]
|
|
/// Mining configuration
|
|
pub mining: zebra_rpc::config::mining::Config,
|
|
|
|
#[cfg(feature = "shielded-scan")]
|
|
/// Scanner configuration
|
|
pub shielded_scan: zebra_scan::config::Config,
|
|
}
|