Skip to content

BlobsBundle proof-count validation mismatch breaks Fulu blob tests #485

Description

@0w3n-d

Status

Three tests are currently broken on develop (discovered while re-enabling CI's unit-test job): bid_submission::tests::fulu_bid_submission, bid_submission::tests::fulu_bid_submission_ssz, blobs::tests::test_payload_and_blobs_equivalence (all in crates/types).

Why

BlobsBundle's SSZ decode validation (crates/types/src/blobs.rs) requires proofs.len() == blobs.len() * CELLS_PER_EXT_BLOB (256 cell-proofs per blob, Fulu's PeerDAS scheme). Two independent things violate this:

  • BlobsBundle::random_for_test (crates/types/src/blobs.rs) pushes exactly one proof per blob instead of 256, so any test that round-trips a randomly generated bundle through SSZ fails deterministically.
  • The committed fixture crates/types/src/testdata/signed-bid-submission-fulu.json itself only carries 1 proof per blob (2 proofs for 2 blobs) — looks like it predates the 256-proofs-per-blob requirement and needs regenerating, or the validation is stricter than it should be. Needs investigation to know which side is wrong.

Affected surface

  • crates/types/src/blobs.rsBlobsBundle::random_for_test
  • crates/types/src/testdata/signed-bid-submission-fulu.json — stale fixture
  • crates/types/src/bid_submission.rs, crates/types/src/blobs.rs — the 3 tests, currently marked #[ignore] pointing here

Steps

  • Determine whether the fixture or the validation logic is authoritative for the 256-proofs-per-blob relationship
  • Regenerate the fixture and/or fix random_for_test, whichever is wrong
  • Un-ignore the 3 tests

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions