zebra/zebra-scan/src/init.rs

32 lines
727 B
Rust

//! Initializing the scanner and gRPC server.
use color_eyre::Report;
use tower::ServiceBuilder;
use zebra_chain::parameters::Network;
use zebra_state::ChainTipChange;
use crate::{scan, service::ScanService, Config};
/// Initialize [`ScanService`] based on its config.
///
/// TODO: add a test for this function.
pub async fn init(
config: Config,
network: Network,
state: scan::State,
chain_tip_change: ChainTipChange,
) -> Result<(), Report> {
let scan_service = ServiceBuilder::new().buffer(10).service(ScanService::new(
&config,
network,
state,
chain_tip_change,
));
// Start the gRPC server.
zebra_grpc::server::init(scan_service).await?;
Ok(())
}