enqueue block first, before reconstruction

This commit is contained in:
Agnish Ghosh 2024-11-12 13:56:25 +07:00
parent 73dba1057f
commit 68f979098d
No known key found for this signature in database
GPG Key ID: 7BDDA05D1B25E9F8
1 changed files with 9 additions and 7 deletions

View File

@ -393,9 +393,10 @@ proc processDataColumnSidecar*(
debug "Data column validated, putting data column in quarantine"
self.dataColumnQuarantine[].put(newClone(dataColumnSidecar))
self.dag.db.putDataColumnSidecar(dataColumnSidecar)
debug "Validated column belongs to custody, attempting to persist",
data_column = shortLog(dataColumnSidecar)
if self.dataColumnQuarantine[].supernode == false:
self.dag.db.putDataColumnSidecar(dataColumnSidecar)
debug "Validated column belongs to custody, attempting to persist",
data_column = shortLog(dataColumnSidecar)
let block_root = hash_tree_root(block_header)
if (let o = self.quarantine[].popColumnless(block_root); o.isSome):
@ -417,6 +418,10 @@ proc processDataColumnSidecar*(
elif self.dataColumnQuarantine[].hasEnoughDataColumns(forkyBlck):
let
columns = self.dataColumnQuarantine[].gatherDataColumns(block_root)
self.blockProcessor[].enqueueBlock(
MsgSource.gossip, columnless,
Opt.none(BlobSidecars),
Opt.some(self.dataColumnQuarantine[].popDataColumns(block_root, forkyBlck)))
if columns.len >= (NUMBER_OF_COLUMNS div 2) and
self.dataColumnQuarantine[].supernode:
let
@ -425,10 +430,7 @@ proc processDataColumnSidecar*(
for rc in reconstructed_columns.get:
if rc notin self.dataColumnQuarantine[].gatherDataColumns(block_root).mapIt(it[]):
self.dataColumnQuarantine[].put(newClone(rc))
self.blockProcessor[].enqueueBlock(
MsgSource.gossip, columnless,
Opt.none(BlobSidecars),
Opt.some(self.dataColumnQuarantine[].popDataColumns(block_root, forkyBlck)))
else:
discard self.quarantine[].addColumnless(
self.dag.finalizedHead.slot, forkyBlck)