Clarify data column sidecar validation rules#4880
Merged
jtraglia merged 3 commits intoethereum:masterfrom Jan 30, 2026
Merged
Conversation
Member
Author
|
@kasey My observation is that we're getting closer to needing the "offload then callback" mechanism for Gossipsub validation. |
jtraglia
reviewed
Jan 29, 2026
jtraglia
approved these changes
Jan 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ideally this would be merged on top of #4875.
Given that columns are no longer self-sufficient for the purposes of validation and they now depend on the current block containing the bid, it's appropriate to raise this MAY to a MUST to properly deal with race conditions.
Concretely, if we receive columns before the block, clients not implementing the MAY would discard and mark them as seen, therefore preventing later copies from being reconsidered, even if the block was made available in the interim.
Note: this was probably inherited from the previous spec, which only triggered this condition if the parent of the inlined beacon block header was unknown (i.e. not in intra-slot races).
Additionally, we add the requirement to unwind and retroactively downscore forwarding peers when the column turned out to be invalid, if we had to defer its validation. Gossipsub implementations currently have no mechanism for this, but it should be farily simple to implement.
Similarly, we add the requirement that clients re-broadcast columns after passing deferred validation, thus resuming the propagation that would've taken place originally. In the current gossipsub, it's possible our peers could've sent IDONTWANTs and IHAVEs in the meantime, and implementations should already be equipped to suppress the sends in those scenarios.