Skip to content

Preserve Gloas attestation payload votes - #424

Open
AntiD2ta wants to merge 5 commits into
lint-attgo-cosmetic-sweepfrom
gloas-attestation-payload-votes
Open

Preserve Gloas attestation payload votes#424
AntiD2ta wants to merge 5 commits into
lint-attgo-cosmetic-sweepfrom
gloas-attestation-payload-votes

Conversation

@AntiD2ta

@AntiD2ta AntiD2ta commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • preserve the beacon-returned Gloas payload vote in both the signing root and submitted attestation
  • reject invalid Gloas votes before signing
  • keep Electra and Fulu attestation indices at zero

Validation

Fresh Glam-8 Kurtosis enclave from genesis: health checks pass after Gloas activation; Vouch retrieved attestation data and submitted attestations successfully

The fresh network only produced self-built, zero-value payloads, so its ordinary attestation-data endpoint returned index 0 in observed slots. The nonzero index-1 path is covered by the end-to-end service regression test.

The nonzero index-1 path is covered by the end-to-end service regression test.

@AntiD2ta
AntiD2ta marked this pull request as draft August 17, 2026 14:26
@AntiD2ta AntiD2ta self-assigned this Aug 17, 2026
@AntiD2ta
AntiD2ta marked this pull request as ready for review August 18, 2026 10:57
@AntiD2ta
AntiD2ta force-pushed the gloas-attestation-payload-votes branch 2 times, most recently from c41ccbf to 76ee438 Compare August 18, 2026 13:47
Use the beacon-provided Gloas vote for both attestation signing and submission.

Add fork detection and cover nonzero vote propagation, invalid values, and Electra/Fulu compatibility.
The beacon API submits Electra and later attestations as SingleAttestation,
and gloas.Attestation.ToSingleAttestation returns an error when the versioned
attestation carries no validator index.  Without it every Gloas attestation is
dropped on submission, so populate it as the Electra and Fulu paths already do.

Also reorder the attestation construction ladder so that it mirrors the signing
committee index ladder; previously the two ladders tested the fork epochs in a
different order, so a chain whose Electra fork epoch was unknown would sign one
attestation data and publish another.
The pinned revision has no Gloas arm in the attestation submission path, so
a Gloas attestation reaches the default case and fails the whole batch with
"unknown attestation version". Move to a revision that converts a Gloas
attestation to a single attestation using the versioned validator index, so
the attestations this branch now builds can actually be submitted.

go mod tidy additionally promotes dynamic-ssz to a direct requirement; it is
imported directly by clients_test.go and its indirect marker was stale.
@AntiD2ta
AntiD2ta force-pushed the gloas-attestation-payload-votes branch from 76ee438 to 5b03dbb Compare August 21, 2026 09:16
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