From 7428a92b6e4df0ea07f598a1f5714b61118aafd4 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Tue, 21 Apr 2026 00:08:04 +0200 Subject: [PATCH] bump go-eth2-client to ethpandaops master for v1.7.0-alpha.5 - Upgrade github.com/ethpandaops/go-eth2-client from v0.0.1 to the current master tip (pseudo-version v0.0.2-0.20260420095341-76d6596ff4bc), which carries the alpha.5 spec updates (execution_requests_root on ExecutionPayloadBid, parent_execution_requests on BeaconBlockBodyGloas, state_root removed from ExecutionPayloadEnvelope, etc). - epochstate.go: compute the post-payload state HTR locally after ApplyExecutionPayload instead of reading it from payload.Message.StateRoot, since the envelope no longer carries a state_root field in alpha.5. --- go.mod | 2 +- go.sum | 4 ++-- indexer/beacon/epochstate.go | 11 +++++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 8edd8b0f..79e9be0b 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/ethpandaops/eth-das-guardian v0.1.0 github.com/ethpandaops/ethcore v0.0.0-20260320045412-9cdd5d70a29c github.com/ethpandaops/ethwallclock v0.4.0 - github.com/ethpandaops/go-eth2-client v0.0.1 + github.com/ethpandaops/go-eth2-client v0.0.2-0.20260420095341-76d6596ff4bc github.com/glebarez/go-sqlite v1.22.0 github.com/go-redis/redis/v8 v8.11.5 github.com/golang-jwt/jwt/v5 v5.3.1 diff --git a/go.sum b/go.sum index 67efc653..af6cddd5 100644 --- a/go.sum +++ b/go.sum @@ -120,8 +120,8 @@ github.com/ethpandaops/ethcore v0.0.0-20260320045412-9cdd5d70a29c h1:uBRIitwcuCJ github.com/ethpandaops/ethcore v0.0.0-20260320045412-9cdd5d70a29c/go.mod h1:QsmYTdesob+vQ6pW4KtRVvxLZUNop3cdtd/DgD30hJU= github.com/ethpandaops/ethwallclock v0.4.0 h1:+sgnhf4pk6hLPukP076VxkiLloE4L0Yk1yat+ZyHh1g= github.com/ethpandaops/ethwallclock v0.4.0/go.mod h1:y0Cu+mhGLlem19vnAV2x0hpFS5KZ7oOi2SWYayv9l24= -github.com/ethpandaops/go-eth2-client v0.0.1 h1:Xifvb7RF24tguA6HxEaE2vIN1BsY44SOSH/B+CBSFPk= -github.com/ethpandaops/go-eth2-client v0.0.1/go.mod h1:9BBd/XIw1egZTkxtFGMvgXnsxX6ypKHKNKD7itqjmNQ= +github.com/ethpandaops/go-eth2-client v0.0.2-0.20260420095341-76d6596ff4bc h1:Kxvw0SR67oZ3hz70tXIYGrtXcid+r3xoNYlCX13ZOdo= +github.com/ethpandaops/go-eth2-client v0.0.2-0.20260420095341-76d6596ff4bc/go.mod h1:9BBd/XIw1egZTkxtFGMvgXnsxX6ypKHKNKD7itqjmNQ= github.com/ferranbt/fastssz v1.0.0 h1:9EXXYsracSqQRBQiHeaVsG/KQeYblPf40hsQPb9Dzk8= github.com/ferranbt/fastssz v1.0.0/go.mod h1:Ea3+oeoRGGLGm5shYAeDgu6PGUlcvQhE2fILyD9+tGg= github.com/filecoin-project/go-clock v0.1.0 h1:SFbYIM75M8NnFm1yMHhN9Ahy3W5bEZV9gd6MPfXbKVU= diff --git a/indexer/beacon/epochstate.go b/indexer/beacon/epochstate.go index 7caa0ce9..b94ce7a5 100644 --- a/indexer/beacon/epochstate.go +++ b/indexer/beacon/epochstate.go @@ -486,8 +486,15 @@ func (s *epochState) tryReplayFromParentState( client.logger.Warnf("replay: ApplyExecutionPayload failed at slot %v: %v", blk.Slot, err) return nil } - // Post-payload state HTR is recorded in the envelope itself. - prevStateRoot = payload.Message.StateRoot + // Post-payload state HTR: compute from the applied state. + // v1.7.0-alpha.5 removed state_root from ExecutionPayloadEnvelope, + // so we derive it locally instead of reading it off the envelope. + postPayloadRoot, htrErr := parentState.Gloas.HashTreeRoot() + if htrErr != nil { + client.logger.Warnf("replay: post-payload HTR failed at slot %v: %v", blk.Slot, htrErr) + return nil + } + prevStateRoot = postPayloadRoot } // else: payload was orphaned (next block built on parent payload). // Leave state unchanged; gotStateRoot is the correct hint.