Skip to content

feat(types): add Fulu cell dissemination SSZ types#283

Closed
lodekeeper-z wants to merge 2 commits intoChainSafe:mainfrom
lodekeeper-z:main
Closed

feat(types): add Fulu cell dissemination SSZ types#283
lodekeeper-z wants to merge 2 commits intoChainSafe:mainfrom
lodekeeper-z:main

Conversation

@lodekeeper-z
Copy link
Copy Markdown
Contributor

@lodekeeper-z lodekeeper-z commented Mar 27, 2026

Superseded by #284 (proper branch).

Add PartialDataColumnSidecar, PartialDataColumnPartsMetadata, and
PartialDataColumnHeader types from consensus-specs #4558.

These types support cell-level dissemination via Gossipsub partial
messages, allowing individual cells to be sent instead of full data
columns for more efficient data availability sampling.

🤖 Generated with AI assistance
@lodekeeper-z lodekeeper-z requested a review from a team as a code owner March 27, 2026 04:36
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces new SSZ container types required for Fulu cell-level dissemination. These additions enable more efficient data availability sampling by allowing peers to communicate cell availability and interest, as well as facilitating partial column dissemination via gossipsub.

Highlights

  • New SSZ Types: Added PartialDataColumnSidecar, PartialDataColumnPartsMetadata, and PartialDataColumnHeader to support Fulu cell dissemination.
  • Consensus Specification Compliance: Implemented the new container types as defined in Ethereum consensus-specs PR #4558.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces new SSZ container types for Cell Dissemination in src/consensus_types/fulu.zig, specifically PartialDataColumnSidecar, PartialDataColumnPartsMetadata, and PartialDataColumnHeader. A review comment identifies a violation of the repository style guide regarding the 100-column line length limit and suggests reformatting the affected code for compliance.

Comment thread src/consensus_types/fulu.zig Outdated
pub const PartialDataColumnHeader = ssz.VariableContainerType(struct {
kzg_commitments: ssz.FixedListType(p.KZGCommitment, preset.MAX_BLOB_COMMITMENTS_PER_BLOCK),
signed_block_header: SignedBeaconBlockHeader,
kzg_commitments_inclusion_proof: ssz.FixedVectorType(p.Bytes32, preset.KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This line exceeds the 100-column limit specified in the repository style guide. Please reformat it for better readability.

    kzg_commitments_inclusion_proof: ssz.FixedVectorType(
        p.Bytes32,
        preset.KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH,
    )
References
  1. Line 400: Hard limit all line lengths, without exception, to at most 100 columns for a good typographic "measure". Use it up. Never go beyond. Nothing should be hidden by a horizontal scrollbar. Let your editor help you by setting a column ruler. To wrap a function signature, call or data structure, add a trailing comma, close your eyes and let zig fmt do the rest. (link)

🤖 Generated with AI assistance
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant