diff --git a/zebra-consensus/src/verify.rs b/zebra-consensus/src/verify.rs index 1d4d62722..3379d1c2d 100644 --- a/zebra-consensus/src/verify.rs +++ b/zebra-consensus/src/verify.rs @@ -18,6 +18,7 @@ use tower::{buffer::Buffer, Service}; use zebra_chain::block::Block; +mod script; mod transaction; /// Block verification service. diff --git a/zebra-consensus/src/verify/script.rs b/zebra-consensus/src/verify/script.rs new file mode 100644 index 000000000..80b0ab68e --- /dev/null +++ b/zebra-consensus/src/verify/script.rs @@ -0,0 +1,22 @@ +//! Script verification for Zebra. +//! +//! Verification occurs in multiple stages: +//! - getting transactions from blocks or the mempool (disk- or network-bound) +//! - context-free verification of scripts, signatures, and proofs (CPU-bound) +//! - context-dependent verification of transactions against the chain state +//! (awaits an up-to-date chain) +//! +//! Verification is provided via a `tower::Service`, to support backpressure and batch +//! verification. +//! +//! This is an internal module. Use `verify::BlockVerifier` for blocks and their +//! transactions, or `mempool::MempoolTransactionVerifier` for mempool transactions. + +/// Internal script verification service. +/// +/// After verification, the script future completes. State changes are handled by +/// `BlockVerifier` or `MempoolTransactionVerifier`. +/// +/// `ScriptVerifier` is not yet implemented. +#[derive(Default)] +pub(crate) struct ScriptVerifier {}