diff --git a/core/src/broadcast_stage/broadcast_fake_blobs_run.rs b/core/src/broadcast_stage/broadcast_fake_blobs_run.rs index 619cca45e9..b20ea3976e 100644 --- a/core/src/broadcast_stage/broadcast_fake_blobs_run.rs +++ b/core/src/broadcast_stage/broadcast_fake_blobs_run.rs @@ -77,7 +77,6 @@ impl BroadcastRun for BroadcastFakeBlobsRun { } blocktree.insert_shreds(data_shreds.clone(), None)?; - blocktree.insert_shreds(coding_shreds.clone(), None)?; // 3) Start broadcast step let peers = cluster_info.read().unwrap().tvu_peers(); diff --git a/core/src/broadcast_stage/standard_broadcast_run.rs b/core/src/broadcast_stage/standard_broadcast_run.rs index e75158e88a..e3f21d6643 100644 --- a/core/src/broadcast_stage/standard_broadcast_run.rs +++ b/core/src/broadcast_stage/standard_broadcast_run.rs @@ -170,9 +170,17 @@ impl StandardBroadcastRun { let bank_epoch = bank.get_leader_schedule_epoch(bank.slot()); let stakes = staking_utils::staked_nodes_at_epoch(&bank, bank_epoch); - self.insert_and_broadcast(data_shreds, blocktree, cluster_info, stakes.as_ref(), sock)?; - self.insert_and_broadcast( + self.maybe_insert_and_broadcast( + data_shreds, + true, + blocktree, + cluster_info, + stakes.as_ref(), + sock, + )?; + self.maybe_insert_and_broadcast( coding_shreds, + false, blocktree, cluster_info, stakes.as_ref(), @@ -193,9 +201,10 @@ impl StandardBroadcastRun { Ok(()) } - fn insert_and_broadcast( + fn maybe_insert_and_broadcast( &mut self, shreds: Vec, + insert: bool, blocktree: &Arc, cluster_info: &Arc>, stakes: Option<&HashMap>, @@ -207,9 +216,11 @@ impl StandardBroadcastRun { // Insert shreds into blocktree let insert_shreds_start = Instant::now(); - blocktree - .insert_shreds(shreds.clone(), None) - .expect("Failed to insert shreds in blocktree"); + if insert { + blocktree + .insert_shreds(shreds.clone(), None) + .expect("Failed to insert shreds in blocktree"); + } let insert_shreds_elapsed = insert_shreds_start.elapsed(); // Broadcast the shreds