Skip to content

core/fetcher: fetch payload attestation data - #4667

Merged
KaloyanTanev merged 1 commit into
gloasfrom
kalo/gloas-ptc-fetcher
Aug 26, 2026
Merged

core/fetcher: fetch payload attestation data#4667
KaloyanTanev merged 1 commit into
gloasfrom
kalo/gloas-ptc-fetcher

Conversation

@KaloyanTanev

Copy link
Copy Markdown
Collaborator

Add DutyPayloadAttestation support to the fetcher: fetch the versioned payload attestation data once per slot and fan it out to all PTC members in the definition set. A 204 from the beacon node (no block seen for the slot) is a plain, non-retryable error since there is nothing to attest.

category: feature
ticket: #4324

@KaloyanTanev KaloyanTanev self-assigned this Aug 26, 2026
@github-actions github-actions Bot added the branch-invalid PR raised against invalid branch. Not a main or release branch. label Aug 26, 2026
@KaloyanTanev
KaloyanTanev requested a lite review from Copilot August 26, 2026 12:28
@sonarqubecloud

Copy link
Copy Markdown

Copilot AI left a comment

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.

Pull request overview

Adds Fetcher support for the Gloas Payload Timeliness Committee duty (DutyPayloadAttestation) by fetching per-slot payload attestation data from the beacon node once and fanning it out to all PTC members in the duty definition set. This integrates the new duty type into the existing core workflow “Fetcher → downstream subscribers” stage and aligns with the hardfork readiness work in #4324.

Changes:

  • Adds a DutyPayloadAttestation case to Fetcher.Fetch and implements fetchPayloadAttestationData to query PayloadAttestationData for a slot and distribute the result to all definitions.
  • Treats “no payload attestation data” (BN 204 / no block seen) as a non-retryable error with a clear message.
  • Adds unit tests covering the happy path plus key error scenarios (no block, nil data, unsupported version).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
core/fetcher/fetcher.go Adds payload attestation duty fetching and fan-out logic, including explicit handling for the “no block seen” case.
core/fetcher/fetcher_test.go Adds tests validating per-slot fan-out semantics and error handling for payload attestation fetching.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.47619% with 2 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (gloas@6e58d4c). Learn more about missing BASE report.

Files with missing lines Patch % Lines
core/fetcher/fetcher.go 90.47% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##             gloas    #4667   +/-   ##
========================================
  Coverage         ?   58.79%           
========================================
  Files            ?      246           
  Lines            ?    34667           
  Branches         ?        0           
========================================
  Hits             ?    20383           
  Misses           ?    11752           
  Partials         ?     2532           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@KaloyanTanev
KaloyanTanev requested a review from pinebit August 26, 2026 12:41
@KaloyanTanev KaloyanTanev mentioned this pull request Aug 26, 2026
31 tasks
@KaloyanTanev
KaloyanTanev merged commit c02d596 into gloas Aug 26, 2026
10 checks passed
@KaloyanTanev
KaloyanTanev deleted the kalo/gloas-ptc-fetcher branch August 26, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

branch-invalid PR raised against invalid branch. Not a main or release branch.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants