From 33b1d87cb57393f7ec25edfb27c211162022db4c Mon Sep 17 00:00:00 2001 From: Greg Coppola Date: Fri, 28 Jan 2022 03:05:54 +0000 Subject: [PATCH] looks good --- src/chainstate/stacks/miner.rs | 14 +++++++++----- src/chainstate/stacks/mod.rs | 2 +- src/clarity_vm/clarity.rs | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/chainstate/stacks/miner.rs b/src/chainstate/stacks/miner.rs index 574298c353..eefc7071d9 100644 --- a/src/chainstate/stacks/miner.rs +++ b/src/chainstate/stacks/miner.rs @@ -54,7 +54,6 @@ use crate::types::chainstate::{BlockHeaderHash, StacksAddress, StacksWorkScore}; use crate::types::chainstate::{StacksBlockHeader, StacksBlockId, StacksMicroblockHeader}; use crate::types::proof::TrieHash; use chainstate::stacks::db::blocks::SetupBlockResult; -use clarity_vm::clarity::MAX_EPOCH_SIZE; use clarity_vm::clarity::ProductionBlockLimitFns; #[derive(Debug, Clone)] @@ -603,7 +602,7 @@ impl<'a> StacksMicroblockBuilder<'a> { /// # Pre-Checks /// - skip if the `anchor_mode` rules out micro-blocks /// - skip if 'tx.txid()` is already in `considered` - /// - skip if adding the block would result in a block size bigger than `MAX_EPOCH_SIZE` + /// - skip if adding the block would result in a block size bigger than the block maximum /// /// # Error Handling /// - If the error when processing a tx is `CostOverflowError`, reset the cost of the block. @@ -635,7 +634,11 @@ impl<'a> StacksMicroblockBuilder<'a> { considered.insert(tx.txid()); } - let max_epoch_size = self.header_reader.clarity_state.block_limits_fns.output_length_limit; + let max_epoch_size = self + .header_reader + .clarity_state + .block_limits_fns + .output_length_limit; if bytes_so_far + tx_len >= max_epoch_size.into() { info!( "Adding microblock tx {} would exceed epoch data size", @@ -1302,11 +1305,12 @@ impl StacksBlockBuilder { .map_err(Error::CodecError)?; let tx_len = tx_bytes.len() as u64; - if self.bytes_so_far + tx_len >= MAX_EPOCH_SIZE.into() { + let max_epoch_size = self.block_limits_fns.output_length_limit.into(); + if self.bytes_so_far + tx_len >= max_epoch_size { warn!( "Epoch size is {} >= {}", self.bytes_so_far + tx_len, - MAX_EPOCH_SIZE + max_epoch_size ); } diff --git a/src/chainstate/stacks/mod.rs b/src/chainstate/stacks/mod.rs index 9d3cde21dc..235d46f942 100644 --- a/src/chainstate/stacks/mod.rs +++ b/src/chainstate/stacks/mod.rs @@ -878,7 +878,7 @@ pub struct StacksBlockBuilder { parent_header_hash: BlockHeaderHash, parent_microblock_hash: Option, miner_id: usize, - block_limits_fns:BlockLimitsFunctions, + block_limits_fns: BlockLimitsFunctions, } // maximum microblock size is 64KB, but note that the current leader has a space budget of diff --git a/src/clarity_vm/clarity.rs b/src/clarity_vm/clarity.rs index 69385e725f..1565118a88 100644 --- a/src/clarity_vm/clarity.rs +++ b/src/clarity_vm/clarity.rs @@ -287,7 +287,7 @@ impl ClarityBlockConnection<'_> { } // Maximum amount of data a leader can send during its epoch (2MB). -pub const MAX_EPOCH_SIZE: u32 = 2 * 1024 * 1024; +const MAX_EPOCH_SIZE: u32 = 2 * 1024 * 1024; /// `BlockLimitsFunctions` for production. Use `MAX_EPOCH_SIZE` for length limit and get block /// limits from `StacksEpoch`.