fix: restore seen root dedupe for column created block inputs - #9162
fix: restore seen root dedupe for column created block inputs#9162nflaig wants to merge 1 commit into
Conversation
Fulu can cache a BlockInput from data columns before the full beacon block is available. PR #9025 narrowed seenBlock() to only treat roots with a cached block as seen, which caused the network processor to start unknownBlockRoot sync for roots that were already being assembled locally from columns. Restore the broader seen-root check for BlockInput cache entries while keeping hasBlock() available for the narrower "full block present" query. Add a regression test covering a Fulu column-first cache entry.
There was a problem hiding this comment.
Code Review
This pull request introduces a new has method to the SeenBlockInput cache and updates the BeaconChain's seenBlock logic to utilize it. This change ensures that blocks currently being assembled from data columns are recognized as seen, which helps prevent redundant synchronization requests. Additionally, a unit test has been added to verify the behavior for column-only block inputs. I have no feedback to provide as the existing review comments were explanatory and did not identify any issues or areas for improvement.
Performance Report🚀🚀 Significant benchmark improvement detected
Full benchmark results
|
twoeths
left a comment
There was a problem hiding this comment.
we need "seenBlock", not "seenBlockHex"
ie we want to know if the chain see an imported beacon_block
so we should keep the current behavior of seenBlock() function
but I do see we have a bug: DataColumnSidecar does not need a BeaconBlock to be validated in its p2p validation rule, we should search for the block, but do not await for it
we should fix it instead
I suppose you mean for fulu? then yes we should definitely not delay column import |
yes, for fulu only |
exactly, I thought the fulu case we already pass through, need to fix that before we cut a rc today |
|
closing |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## unstable #9162 +/- ##
=========================================
Coverage 52.52% 52.52%
=========================================
Files 848 848
Lines 61447 61447
Branches 4528 4528
=========================================
Hits 32272 32272
Misses 29110 29110
Partials 65 65 🚀 New features to boost your workflow:
|
Fulu can cache a
BlockInputfrom data columns before the full beacon block is available.PR #9025 narrowed
seenBlock()to only treat roots with a cached block as seen, which caused the network processor to startunknownBlockRootsync for roots that were already being assembled locally from columns.Restore the broader seen root check for
BlockInputcache entries while keepinghasBlock()available for the narrower "full block present" query. Add a regression test covering a Fulu column first cache entry.