Glamsterdam devnet 3#16763
Open
terencechain wants to merge 41 commits into
Open
Conversation
Co-Authored-By: Claude Opus 4.7 <[email protected]>
…ssing Drain loop in processPendingBlocks would skip blocks whose parent payload wasn't yet available, with no mechanism to fetch it. Now kick off a requestPayloadEnvelope on the parent root, guarded by singleflight so concurrent calls collapse, and retry across up to 3 shuffled best peers.
PTC committee members on the same beacon node call PayloadAttestationData at the same instant (PTC deadline). Cache the response per slot via an atomic.Pointer and route the miss path through singleflight so the burst collapses to a single forkchoice read.
Include BlockAccessList from eth_getBlockByHash in the reconstructed Gloas execution payload so unblinded blocks carry the correct BAL.
Implements consensus-specs PR 5152: restores parent_beacon_block_root on the ExecutionPayloadEnvelope so a consumer following only the envelope topic can issue engine_newPayload without separately fetching the beacon block. The envelope's value is asserted against state.latest_block_header.parent_root, and the engine call now sources it from the envelope rather than from state.
Cherry-picked from 79c8afe (proposer-side changes only). Move ApplyParentExecutionPayload out of computePayloadWithdrawals into a dedicated step that runs at the start of BuildBlockParallel for Gloas blocks with a full parent. This sequences the head-state mutation before the consensus-field builders read from it, instead of racing them in a goroutine. Removes the unused parallel WaitGroup in BuildBlockParallel so consensus-field assembly runs sequentially.
Cherry-picked from 79c8afe (proposer-side changes only). Move ApplyParentExecutionPayload out of computePayloadWithdrawals into a dedicated step that runs at the start of BuildBlockParallel for Gloas blocks with a full parent. This sequences the head-state mutation before the consensus-field builders read from it, instead of racing them in a goroutine. Removes the unused parallel WaitGroup in BuildBlockParallel so consensus-field assembly runs sequentially.
…OffchainLabs/prysm into apply-parent-payload-before-block-build
…gloasGenesisBlock When starting a gloas-at-genesis chain, SaveGenesisData calls NewGenesisBlockForState which in turn calls gloasGenesisBlock. The resulting block is then fed into HashTreeRoot. On this branch gloasGenesisBlock leaves Body.SignedExecutionPayloadBid.Message.ExecutionRequestsRoot and Body.ParentExecutionRequests nil. Both are required containers/fields introduced in consensus-specs v1.7.0-alpha.5 (PR #5113 for execution_requests_root on the bid, PR #5117 for parent_execution_requests on the body). ExecutionRequestsRoot is declared as []byte with ssz-size:"32", so the hasher fails with could not get genesis block root: --.ExecutionRequestsRoot (bytes array does not have the correct length): expected 32 and 0 found and the beacon node exits on startup. Initialise ExecutionRequestsRoot to a 32-byte zero slice and ParentExecutionRequests to an empty ExecutionRequests container so the genesis block round-trips through HashTreeRoot. (cherry picked from commit 4bc12b0)
The tree root node (genesis or checkpoint-sync finalized block) carries an insertion timestamp sourced from time.Now() at process startup rather than real network arrival time. On a beacon node that starts before MIN_GENESIS_TIME, this timestamp lands before the genesis slot start, making SinceSlotStart reject it with "invalid timestamp" whenever GetProposerHead or ShouldOverrideFCU is evaluated against the genesis head (typically at slot 1 with Gloas genesis). The tree root is never a reorg candidate anyway (GetProposerHead bails out when parent is nil), so short-circuit arrivedEarly to true and arrivedAfterOrphanCheck to false instead of consulting the stale timestamp. (cherry picked from commit ecd31a6)
Squashed cherry-pick of PR #16651 onto glamsterdam-devnet-2.
One Info log per validator request, gated to Gloas: - Proposer: parent root, parent slot, building on empty|full - Attester: head root, head slot, voting empty|full|pending (pending when head block is from the current slot) - PTC: block root, payload empty|full Helps diagnose fork divergence by showing exactly what each role saw when it requested data from the beacon node.
Move "PTC request" log into the singleflight closure so it fires once per slot instead of once per concurrent caller, and add blockRoot, payload, and validatorIndex fields to the "Submitted payload attestation message" log so each per-validator submit can be correlated with what that validator saw. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Raise the global per-peer RPC rate limit (5 -> 50 req/s, burst 10 -> 100) and remove the downscorePeer calls in both validateRequest and validateRawRpcRequest. Exceeding our serving cap is a flow-control signal, not a bad-peer signal — peers that sync aggressively (Lodestar, Lighthouse) were tripping the 5-strikes bad-responses threshold within ~2 minutes of connecting and getting disconnected. Peers still receive ErrRateLimited and back off; they just don't accumulate bad-responses score from rate-limit hits.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.