diff --git a/chain/epoch-manager/src/lib.rs b/chain/epoch-manager/src/lib.rs index 3d4bdbcc67b..8636bfbb364 100644 --- a/chain/epoch-manager/src/lib.rs +++ b/chain/epoch-manager/src/lib.rs @@ -499,7 +499,6 @@ impl EpochManager { let mut chunk_stats = ChunkValidatorStats::default(); for (_, tracker) in chunk_validator_tracker.iter() { if let Some(stat) = tracker.get(&(i as u64)) { - println!("{i} FOUND STAT {stat:?}"); *chunk_stats.expected_mut() += stat.expected(); *chunk_stats.produced_mut() += stat.produced(); chunk_stats.endorsement_stats_mut().produced += @@ -508,7 +507,6 @@ impl EpochManager { stat.endorsement_stats().expected; } } - println!("{i} {:?}", chunk_stats); total_stake += v.stake(); let is_already_kicked_out = prev_validator_kickout.contains_key(account_id); if (max_validator.is_none() || block_stats.produced > maximum_block_prod) @@ -601,7 +599,6 @@ impl EpochManager { version_tracker, .. } = self.get_epoch_info_aggregator_upto_last(last_block_hash)?; - println!("{:?}", chunk_validator_tracker); let mut proposals = vec![]; let mut validator_kickout = HashMap::new(); diff --git a/chain/epoch-manager/src/tests/mod.rs b/chain/epoch-manager/src/tests/mod.rs index a8295837741..9b9c78b7cab 100644 --- a/chain/epoch-manager/src/tests/mod.rs +++ b/chain/epoch-manager/src/tests/mod.rs @@ -1535,7 +1535,7 @@ fn test_chunk_validator_kickout() { let total_supply = stake_amount * validators.len() as u128; let num_shards = 2; let epoch_config = - epoch_config_with_production_config(epoch_length, num_shards, 2, 2, 0, 0, 75, false); + epoch_config_with_production_config(epoch_length, num_shards, 2, 2, 90, 40, 75, false); let mut em = EpochManager::new( create_test_store(), epoch_config, @@ -1553,10 +1553,6 @@ fn test_chunk_validator_kickout() { for (prev_block, (height, curr_block)) in hashes.iter().zip(hashes.iter().enumerate().skip(1)) { let height = height as u64; let epoch_id = em.get_epoch_id_from_prev_block(prev_block).unwrap(); - let ei = em.get_epoch_info(&epoch_id).unwrap(); - println!("{:?}", ei.block_producers_settlement()); - println!("{:?}", ei.chunk_producers_settlement()); - println!("{:?}", ei.validator_mandates()); let chunk_mask = if height < epoch_length { (0..num_shards).map(|i| (height + i) % 2 == 0).collect() } else { @@ -1579,11 +1575,21 @@ fn test_chunk_validator_kickout() { } let last_epoch_info = hashes.iter().filter_map(|x| em.get_epoch_info(&EpochId(*x)).ok()).last(); + let total_expected_chunks = num_shards * (epoch_length - 1); + // Every second chunk is skipped. + let total_produced_chunks = total_expected_chunks / 2; + + // Chunk producers skip only every second chunk and pass the threshold. + // Chunk validator validates all chunks, so its performance is determined + // by the chunk production ratio, which is not enough. assert_eq!( last_epoch_info.unwrap().validator_kickout(), &[( "test2".parse().unwrap(), - NotEnoughChunkEndorsements { produced: 0, expected: num_shards * epoch_length } + NotEnoughChunkEndorsements { + produced: total_produced_chunks, + expected: total_expected_chunks + } )] .into_iter() .collect::>(),