diff --git a/beacon-chain/execution/service.go b/beacon-chain/execution/service.go index b86bf15927..376a572a92 100644 --- a/beacon-chain/execution/service.go +++ b/beacon-chain/execution/service.go @@ -557,8 +557,8 @@ func (s *Service) initPOWService() { } } // Handle edge case with embedded genesis state by fetching genesis header to determine - // its height. - if s.chainStartData.Chainstarted && s.chainStartData.GenesisBlock == 0 { + // its height only if the deposit requests have not started yet (Pre Pectra EIP-6110 behavior). + if s.chainStartData.Chainstarted && s.chainStartData.GenesisBlock == 0 && !s.depositRequestsStarted { genHash := common.BytesToHash(s.chainStartData.Eth1Data.BlockHash) genBlock := s.chainStartData.GenesisBlock // In the event our provided chainstart data references a non-existent block hash, diff --git a/changelog/fix-genesis-block-eip6110.md b/changelog/fix-genesis-block-eip6110.md new file mode 100644 index 0000000000..46277c2a04 --- /dev/null +++ b/changelog/fix-genesis-block-eip6110.md @@ -0,0 +1,3 @@ +### Fixed + +- Skip genesis block retrieval when EIP-6110 deposit requests have started to prevent "pruned history unavailable" errors with execution clients that have pruned pre-merge data \ No newline at end of file