feat(config): Allow to add keys to be scanned by the zebra-scan crate to config (#7949)
* allow user to add sapling keys to config * apply code review suggestions Co-authored-by: teor <teor@riseup.net> --------- Co-authored-by: teor <teor@riseup.net>
This commit is contained in:
parent
732ee01443
commit
a22c8d5f42
|
|
@ -5780,8 +5780,10 @@ dependencies = [
|
||||||
"color-eyre",
|
"color-eyre",
|
||||||
"ff",
|
"ff",
|
||||||
"group",
|
"group",
|
||||||
|
"indexmap 2.1.0",
|
||||||
"jubjub",
|
"jubjub",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
|
"serde",
|
||||||
"tokio",
|
"tokio",
|
||||||
"zcash_client_backend",
|
"zcash_client_backend",
|
||||||
"zcash_note_encryption",
|
"zcash_note_encryption",
|
||||||
|
|
@ -5959,6 +5961,7 @@ dependencies = [
|
||||||
"zebra-network",
|
"zebra-network",
|
||||||
"zebra-node-services",
|
"zebra-node-services",
|
||||||
"zebra-rpc",
|
"zebra-rpc",
|
||||||
|
"zebra-scan",
|
||||||
"zebra-state",
|
"zebra-state",
|
||||||
"zebra-test",
|
"zebra-test",
|
||||||
"zebra-utils",
|
"zebra-utils",
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,9 @@ categories = ["cryptography::cryptocurrencies"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.31" }
|
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.31" }
|
||||||
|
|
||||||
|
indexmap = { version = "2.0.1", features = ["serde"] }
|
||||||
|
serde = { version = "1.0.192", features = ["serde_derive"] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|
||||||
zcash_client_backend = "0.10.0-rc.1"
|
zcash_client_backend = "0.10.0-rc.1"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
//! Configuration for blockchain scanning tasks.
|
||||||
|
|
||||||
|
use indexmap::IndexMap;
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
use crate::storage::SaplingScanningKey;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
|
||||||
|
#[serde(deny_unknown_fields, default)]
|
||||||
|
/// Configuration for scanning.
|
||||||
|
pub struct Config {
|
||||||
|
/// The sapling keys to scan for and the birthday height of each of them.
|
||||||
|
// TODO: any value below sapling activation as the birthday height should default to sapling activation.
|
||||||
|
pub sapling_keys_to_scan: IndexMap<SaplingScanningKey, u32>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for Config {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
sapling_keys_to_scan: IndexMap::new(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#![doc(html_logo_url = "https://zfnd.org/wp-content/uploads/2022/03/zebra-icon.png")]
|
#![doc(html_logo_url = "https://zfnd.org/wp-content/uploads/2022/03/zebra-icon.png")]
|
||||||
#![doc(html_root_url = "https://docs.rs/zebra_scan")]
|
#![doc(html_root_url = "https://docs.rs/zebra_scan")]
|
||||||
|
|
||||||
|
pub mod config;
|
||||||
mod storage;
|
mod storage;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,9 @@ getblocktemplate-rpcs = [
|
||||||
"zebra-chain/getblocktemplate-rpcs",
|
"zebra-chain/getblocktemplate-rpcs",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Experimental shielded blockchain scanning
|
||||||
|
shielded-scan = ["zebra-scan"]
|
||||||
|
|
||||||
# Experimental elasticsearch indexing
|
# Experimental elasticsearch indexing
|
||||||
elasticsearch = [
|
elasticsearch = [
|
||||||
"zebra-state/elasticsearch",
|
"zebra-state/elasticsearch",
|
||||||
|
|
@ -152,6 +155,9 @@ zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.3
|
||||||
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.31" }
|
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.31" }
|
||||||
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.31" }
|
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.31" }
|
||||||
|
|
||||||
|
# Experimental shielded-scan feature
|
||||||
|
zebra-scan = { path = "../zebra-scan", version = "0.1.0-alpha.0", optional = true }
|
||||||
|
|
||||||
# Required for crates.io publishing, but it's only used in tests
|
# Required for crates.io publishing, but it's only used in tests
|
||||||
zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.31", optional = true }
|
zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.31", optional = true }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,4 +43,8 @@ pub struct ZebradConfig {
|
||||||
#[serde(skip_serializing_if = "zebra_rpc::config::mining::Config::skip_getblocktemplate")]
|
#[serde(skip_serializing_if = "zebra_rpc::config::mining::Config::skip_getblocktemplate")]
|
||||||
/// Mining configuration
|
/// Mining configuration
|
||||||
pub mining: zebra_rpc::config::mining::Config,
|
pub mining: zebra_rpc::config::mining::Config,
|
||||||
|
|
||||||
|
#[cfg(feature = "zebra-scan")]
|
||||||
|
/// Scanner configuration
|
||||||
|
pub shielded_scan: zebra_scan::config::Config,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue