Skip to main content

miden_node_store/state/
apply_proof.rs

1use miden_protocol::block::BlockNumber;
2use tracing::instrument;
3
4use crate::COMPONENT;
5use crate::state::{ProofNotification, State};
6
7impl State {
8    /// Saves a block proof, advances the proven-in-sequence tip, and notifies replica subscribers.
9    #[instrument(target = COMPONENT, skip_all, err, fields(block.number = block_num.as_u32()))]
10    pub async fn apply_proof(
11        &self,
12        block_num: BlockNumber,
13        proof_bytes: Vec<u8>,
14    ) -> anyhow::Result<()> {
15        self.block_store.commit_proof(block_num, &proof_bytes).await?;
16        self.proof_cache
17            .push(block_num, ProofNotification::new(block_num, proof_bytes))
18            .expect("proof cache receives sequential block numbers");
19        self.proven_tip.advance(block_num);
20        Ok(())
21    }
22}