Skip to content

fix(forkchoice): include fresh gossip aggregates in proposals - #1057

Open
zclawz wants to merge 1 commit into
mainfrom
fix/hive-client-interop-1784788366
Open

fix(forkchoice): include fresh gossip aggregates in proposals#1057
zclawz wants to merge 1 commit into
mainfrom
fix/hive-client-interop-1784788366

Conversation

@zclawz

@zclawz zclawz commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes a live fork-choice/proposal packaging gap exposed by Hive client-interop run 1784788366-5a62c8c486eb2725285e622f60315e02.

The run was already using a devnet5 image containing PR #1055, but these failures are a different class: non-aggregator proposers could receive valid aggregate gossip, keep it in latest_new_aggregated_payloads, and still build blocks from only latest_known_aggregated_payloads before the interval-4 promotion pass moved the payload over.

Changes

  • Proposal candidate selection now considers both promoted and freshly validated aggregate payloads.
  • Proposal proof packaging greedily selects coverage from both payload pools.
  • Proposal coverage attribution includes fresh gossip payloads so logs do not report gossip=none for selected fresh aggregates.
  • Added regression coverage for interval-0 selection of fresh gossip payloads and a full getProposalAttestationsPreAggregated path check.

Validation

  • /tmp/zig-x86_64-linux-0.16.0/zig fmt --check pkgs/node/src/forkchoice.zig
  • git diff --check
  • /tmp/zig-x86_64-linux-0.16.0/zig build --fetch --summary none
  • /tmp/zig-x86_64-linux-0.16.0/zig build all --fetch --summary none

Attempted full zig build test --summary all with Zig 0.16.0, but this container still cannot run the test target because rustup is missing:

error: failed to spawn and capture stdio from rustup: FileNotFound
failed command: rustup run nightly cargo ... -p zeam-glue ...

Before that external failure, the already-started preset/utils/metrics test groups passed, matching the previous environment limitation.

Hive run investigated: https://hive.leanroadmap.org/suite.html?suiteid=1784788366-5a62c8c486eb2725285e622f60315e02.json&suitename=client-interop&client=zeam_devnet5

@zclawz

zclawz commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

Status: PR opened for the Hive client-interop aggregation/proposal packaging failure.

What changed:

  • Proposal selection now includes validated fresh gossip aggregates from latest_new_aggregated_payloads, not only promoted latest_known_aggregated_payloads.
  • Proposal proof packaging selects from both pools.
  • Coverage logging now attributes selected fresh gossip payloads correctly.
  • Added regressions for interval-0 fresh gossip payload selection and the getProposalAttestationsPreAggregated path.

Validation:

  • /tmp/zig-x86_64-linux-0.16.0/zig fmt --check pkgs/node/src/forkchoice.zig passed
  • git diff --check passed
  • /tmp/zig-x86_64-linux-0.16.0/zig build --fetch --summary none passed
  • /tmp/zig-x86_64-linux-0.16.0/zig build all --fetch --summary none passed
  • zig build test --summary all was attempted with Zig 0.16.0 but this container still stops before the touched test module because rustup is not installed (failed to spawn ... rustup: FileNotFound).

Hive reference: https://hive.leanroadmap.org/suite.html?suiteid=1784788366-5a62c8c486eb2725285e622f60315e02.json&suitename=client-interop&client=zeam_devnet5

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