From 255ea2fac1b8af9d9b7207ac75ea2371d98a1d7d Mon Sep 17 00:00:00 2001 From: terence Date: Thu, 23 Oct 2025 20:37:32 -0700 Subject: [PATCH] Return optimistic response only when handling blinded blocks (#15925) * Return optimistic response only when handling blinded blocks in proposer * Remove blind condition --- beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go | 8 ++++---- changelog/ttsao_fix-optimistic-blinded-blocks.md | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 changelog/ttsao_fix-optimistic-blinded-blocks.md diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go index 0d97b31afa..091a745737 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go @@ -312,14 +312,14 @@ func (vs *Server) ProposeBeaconBlock(ctx context.Context, req *ethpb.GenericSign rob, err := blocks.NewROBlockWithRoot(block, root) if block.IsBlinded() { block, blobSidecars, err = vs.handleBlindedBlock(ctx, block) + if errors.Is(err, builderapi.ErrBadGateway) { + log.WithError(err).Info("Optimistically proposed block - builder relay temporarily unavailable, block may arrive over P2P") + return ðpb.ProposeResponse{BlockRoot: root[:]}, nil + } } else if block.Version() >= version.Deneb { blobSidecars, dataColumnSidecars, err = vs.handleUnblindedBlock(rob, req) } if err != nil { - if errors.Is(err, builderapi.ErrBadGateway) && block.IsBlinded() { - log.WithError(err).Info("Optimistically proposed block - builder relay temporarily unavailable, block may arrive over P2P") - return ðpb.ProposeResponse{BlockRoot: root[:]}, nil - } return nil, status.Errorf(codes.Internal, "%s: %v", "handle block failed", err) } diff --git a/changelog/ttsao_fix-optimistic-blinded-blocks.md b/changelog/ttsao_fix-optimistic-blinded-blocks.md new file mode 100644 index 0000000000..e125004b9d --- /dev/null +++ b/changelog/ttsao_fix-optimistic-blinded-blocks.md @@ -0,0 +1,3 @@ +### Ignored + +- Return optimistic response only when handling blinded blocks in proposer