Skip to content

chore: remove fake_crypto from spec tests once ssv-spec fixtures are fixed #953

@shane-moore

Description

@shane-moore

Context

PR #942 adds proposer consensus-data spec tests that require fake_crypto to run full assertions. Without it, Lighthouse's SSZ decoder rejects the invalid BLS points in ssv-spec's Capella/Deneb proposer fixtures, and the tests fall back to a path that skips block root, block SSZ, and blinded state checks.

The root cause is fixture quality in ssv-spec: the proposer fixtures use placeholder BLS values (0x000102... pubkeys, 0x606162... signatures) copied from go-eth2-client codec tests. These are correct length but not valid compressed BLS curve points. Go accepts them because its decoder only checks hex+length.

Upstream

Action

Trigger: ssv-spec #627 lands and the spec-tests JSONs are regenerated against it; bump the Anchor submodule to that revision. Then:

  1. Remove the fake_crypto feature from spec_tests/Cargo.toml
  2. Remove the BLS fallback path in ConsensusDataProposerTest (is_bls_validation_error handling in consensus_data_proposer.rs)
  3. Remove the BLS fallback path in SSZSpecTest (is_bls_validation_error handling in ssz_spec_test.rs)
  4. Remove the BLS fallback in can_decode_block (is_bls_validation_error handling in encoding_helpers.rs)
  5. Remove the BLS fallback in ProposerConsensusDataTest (uses can_decode_block in proposer_consensus_data.rs)
  6. Remove the is_bls_validation_error helper from encoding_helpers.rs
  7. Drop any CI targets that run spec tests with --features fake_crypto

Discussion

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