Skip to content

Commit 467bb28

Browse files
committed
feat(proofs): Wrap ledger proofs in Arc and share them
1 parent 62b75ca commit 467bb28

File tree

6 files changed

+10
-8
lines changed

6 files changed

+10
-8
lines changed

ledger/src/proofs/block.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1855,7 +1855,7 @@ pub(super) fn generate_block_proof(
18551855
} = params;
18561856

18571857
let (txn_snark_statement, txn_snark_proof) =
1858-
ledger_proof_opt(ledger_proof.as_ref(), next_state)?;
1858+
ledger_proof_opt(ledger_proof.as_deref(), next_state)?;
18591859
let prev_state_proof = &chain.proof;
18601860

18611861
let (new_state_hash, previous_proof_statements) = block_main(

mina-p2p-messages/src/v2/generated.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ pub struct ProverExtendBlockchainInputStableV2 {
271271
pub chain: BlockchainSnarkBlockchainStableV2,
272272
pub next_state: MinaStateProtocolStateValueStableV2,
273273
pub block: MinaStateSnarkTransitionValueStableV2,
274-
pub ledger_proof: Option<LedgerProofProdStableV2>,
274+
pub ledger_proof: Option<Arc<LedgerProofProdStableV2>>,
275275
pub prover_state: ConsensusStakeProofStableV2,
276276
pub pending_coinbase: MinaBasePendingCoinbaseWitnessStableV2,
277277
}

node/src/block_producer/block_producer_state.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ pub enum BlockProducerCurrentState {
8181
/// `protocol_state.blockchain_state.body_reference`
8282
diff_hash: v2::ConsensusBodyReferenceStableV1,
8383
staged_ledger_hash: v2::MinaBaseStagedLedgerHashStableV1,
84-
emitted_ledger_proof: Option<Box<v2::LedgerProofProdStableV2>>,
84+
emitted_ledger_proof: Option<Arc<v2::LedgerProofProdStableV2>>,
8585
pending_coinbase_update: v2::MinaBasePendingCoinbaseUpdateStableV1,
8686
pending_coinbase_witness: v2::MinaBasePendingCoinbaseWitnessStableV2,
8787
stake_proof_sparse_ledger: v2::MinaBaseSparseLedgerBaseStableV2,
@@ -91,7 +91,7 @@ pub enum BlockProducerCurrentState {
9191
won_slot: BlockProducerWonSlot,
9292
/// Chain that we are extending.
9393
chain: Vec<AppliedBlock>,
94-
emitted_ledger_proof: Option<Box<v2::LedgerProofProdStableV2>>,
94+
emitted_ledger_proof: Option<Arc<v2::LedgerProofProdStableV2>>,
9595
pending_coinbase_update: v2::MinaBasePendingCoinbaseUpdateStableV1,
9696
pending_coinbase_witness: v2::MinaBasePendingCoinbaseWitnessStableV2,
9797
stake_proof_sparse_ledger: v2::MinaBaseSparseLedgerBaseStableV2,
@@ -103,7 +103,7 @@ pub enum BlockProducerCurrentState {
103103
won_slot: BlockProducerWonSlot,
104104
/// Chain that we are extending.
105105
chain: Vec<AppliedBlock>,
106-
emitted_ledger_proof: Option<Box<v2::LedgerProofProdStableV2>>,
106+
emitted_ledger_proof: Option<Arc<v2::LedgerProofProdStableV2>>,
107107
pending_coinbase_update: v2::MinaBasePendingCoinbaseUpdateStableV1,
108108
pending_coinbase_witness: v2::MinaBasePendingCoinbaseWitnessStableV2,
109109
stake_proof_sparse_ledger: v2::MinaBaseSparseLedgerBaseStableV2,

node/src/block_producer_effectful/block_producer_effectful_effects.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ pub fn block_producer_effects<S: crate::Service>(
164164
.clone(),
165165
pending_coinbase_update: pending_coinbase_update.clone(),
166166
},
167-
ledger_proof: emitted_ledger_proof.as_ref().map(|proof| (**proof).clone()),
167+
ledger_proof: emitted_ledger_proof.clone(),
168168
prover_state: ConsensusStakeProofStableV2 {
169169
delegator: won_slot.delegator.1.into(),
170170
delegator_pk: won_slot.delegator.0.clone(),

node/src/block_producer_effectful/block_producer_effectful_service.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use std::sync::Arc;
2+
13
use ledger::proofs::provers::BlockProver;
24
use mina_p2p_messages::v2::{
35
ConsensusBodyReferenceStableV1, LedgerProofProdStableV2, MinaBasePendingCoinbaseUpdateStableV1,
@@ -13,7 +15,7 @@ pub struct StagedLedgerDiffCreateOutput {
1315
/// `protocol_state.blockchain_state.body_reference`
1416
pub diff_hash: ConsensusBodyReferenceStableV1,
1517
pub staged_ledger_hash: MinaBaseStagedLedgerHashStableV1,
16-
pub emitted_ledger_proof: Option<Box<LedgerProofProdStableV2>>,
18+
pub emitted_ledger_proof: Option<Arc<LedgerProofProdStableV2>>,
1719
pub pending_coinbase_update: MinaBasePendingCoinbaseUpdateStableV1,
1820
pub pending_coinbase_witness: MinaBasePendingCoinbaseWitnessStableV2,
1921
pub stake_proof_sparse_ledger: MinaBaseSparseLedgerBaseStableV2,

node/src/ledger/ledger_service.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1049,7 +1049,7 @@ impl LedgerCtx {
10491049
emitted_ledger_proof: res
10501050
.ledger_proof
10511051
.map(|(proof, ..)| (&proof).into())
1052-
.map(Box::new),
1052+
.map(Arc::new),
10531053
pending_coinbase_update: (&res.pending_coinbase_update.1).into(),
10541054
pending_coinbase_witness: MinaBasePendingCoinbaseWitnessStableV2 {
10551055
pending_coinbases: pending_coinbase_witness,

0 commit comments

Comments
 (0)