eq.log.Info("skipping unsafe payload, since it does not build onto the existing unsafe chain","safe",eq.safeHead.ID(),"unsafe",first.ID(),"payload",first.ID())
eq.log.Info("skipping unsafe payload, since it does not build onto the existing unsafe chain","safe",eq.safeHead.ID(),"unsafe",first.ID(),"payload",first.ID())
returnBlockInsertTemporaryErr,fmt.Errorf("engine is in progess of p2p sync")
}
ifeq.buildingID!=(eth.PayloadID{}){
ifeq.buildingID!=(eth.PayloadID{}){
eq.log.Warn("did not finish previous block building, starting new building now","prev_onto",eq.buildingOnto,"prev_payload_id",eq.buildingID,"new_onto",parent)
eq.log.Warn("did not finish previous block building, starting new building now","prev_onto",eq.buildingOnto,"prev_payload_id",eq.buildingID,"new_onto",parent)
// TODO: maybe worth it to force-cancel the old payload ID here.
// TODO: maybe worth it to force-cancel the old payload ID here.
require.Equal(t,refB1,eq.SafeL2Head(),"L2 reset should go back to sequence window ago: blocks with origin E and D are not safe until we reconcile, C is extra, and B1 is the end we look for")
require.Equal(t,refB1,eq.SafeL2Head(),"L2 reset should go back to sequence window ago: blocks with origin E and D are not safe until we reconcile, C is extra, and B1 is the end we look for")
require.Equal(t,refB1,eq.SafeL2Head(),"L2 reset should go back to sequence window ago: blocks with origin E and D are not safe until we reconcile, C is extra, and B1 is the end we look for")
require.Equal(t,refB1,eq.SafeL2Head(),"L2 reset should go back to sequence window ago: blocks with origin E and D are not safe until we reconcile, C is extra, and B1 is the end we look for")
require.Equal(t,refB1,eq.SafeL2Head(),"L2 reset should go back to sequence window ago: blocks with origin E and D are not safe until we reconcile, C is extra, and B1 is the end we look for")
require.Equal(t,refB1,eq.SafeL2Head(),"L2 reset should go back to sequence window ago: blocks with origin E and D are not safe until we reconcile, C is extra, and B1 is the end we look for")
s.log.Debug("Derivation process went idle because the engine is syncing","progress",s.derivation.Origin(),"sync_target",s.derivation.EngineSyncTarget(),"err",err)
stepAttempts=0
stepAttempts=0
s.metrics.SetDerivationIdle(true)
s.metrics.SetDerivationIdle(true)
continue
continue
...
@@ -474,6 +479,7 @@ func (s *Driver) syncStatus() *eth.SyncStatus {
...
@@ -474,6 +479,7 @@ func (s *Driver) syncStatus() *eth.SyncStatus {
// EngineSync is true when the EngineQueue can trigger execution engine P2P sync.
EngineSyncbool`json:"engine_sync"`
// SkipSyncStartCheck skip the sanity check of consistency of L1 origins of the unsafe L2 blocks when determining the sync-starting point. This defers the L1-origin verification, and is recommended to use in when utilizing l2.engine-sync