Skip to content

Commit 478b5b2

Browse files
yperbasismininny
andauthored
Fix NewPayload Validation during header download (#10837)
Cherry pick PR #10093 into the release branch Co-authored-by: Minhyuk Kim <kimminhyuk1004@gmail.com>
1 parent e8c5632 commit 478b5b2

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

turbo/engineapi/engine_server.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -768,7 +768,18 @@ func (e *EngineServer) HandleNewPayload(
768768
if !success {
769769
return &engine_types.PayloadStatus{Status: engine_types.SyncingStatus}, nil
770770
}
771-
return &engine_types.PayloadStatus{Status: engine_types.ValidStatus, LatestValidHash: &headerHash}, nil
771+
772+
status, _, latestValidHash, err := e.chainRW.ValidateChain(ctx, headerHash, headerNumber)
773+
if err != nil {
774+
return nil, err
775+
}
776+
777+
if status == execution.ExecutionStatus_Busy || status == execution.ExecutionStatus_TooFarAway {
778+
e.logger.Debug(fmt.Sprintf("[%s] New payload: Client is still syncing", logPrefix))
779+
return &engine_types.PayloadStatus{Status: engine_types.SyncingStatus}, nil
780+
} else {
781+
return &engine_types.PayloadStatus{Status: engine_types.ValidStatus, LatestValidHash: &latestValidHash}, nil
782+
}
772783
} else {
773784
return &engine_types.PayloadStatus{Status: engine_types.SyncingStatus}, nil
774785
}

0 commit comments

Comments
 (0)