From 1cf1a62367cbcab286ef96b3015c163f725d3827 Mon Sep 17 00:00:00 2001 From: Agnish Ghosh Date: Sun, 13 Oct 2024 17:11:37 +0530 Subject: [PATCH] make sure quarantine persistent across all threads --- beacon_chain/gossip_processing/eth2_processor.nim | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/beacon_chain/gossip_processing/eth2_processor.nim b/beacon_chain/gossip_processing/eth2_processor.nim index 44b16fcbc..b8e92c885 100644 --- a/beacon_chain/gossip_processing/eth2_processor.nim +++ b/beacon_chain/gossip_processing/eth2_processor.nim @@ -401,10 +401,15 @@ proc processDataColumnSidecar*( if self.dataColumnQuarantine[].gatherDataColumns(forkyBlck).len == max(SAMPLES_PER_SLOT, CUSTODY_REQUIREMENT) and self.dataColumnQuarantine[].hasMissingDataColumns(forkyBlck): - self.blockProcessor[].enqueueBlock( - MsgSource.gossip, columnless, - Opt.none(BlobSidecars), - Opt.some(self.dataColumnQuarantine[].gatherDataColumns(forkyBlck))) + if self.dataColumnQuarantine[].supernode == false: + let columns = + self.dataColumnQuarantine[].gatherDataColumns(forkyBlck).mapIt(it[]) + for gdc in columns: + self.dataColumnQuarantine[].put(newClone(gdc)) + self.blockProcessor[].enqueueBlock( + MsgSource.gossip, columnless, + Opt.none(BlobSidecars), + Opt.some(self.dataColumnQuarantine[].popDataColumns(block_root, forkyBlck))) elif self.dataColumnQuarantine[].hasEnoughDataColumns(forkyBlck): let columns = self.dataColumnQuarantine[].gatherDataColumns(forkyBlck)