diff --git a/node/consensus/time/app_time_reel.go b/node/consensus/time/app_time_reel.go index 43d3b44..e78cbcd 100644 --- a/node/consensus/time/app_time_reel.go +++ b/node/consensus/time/app_time_reel.go @@ -499,7 +499,8 @@ func (a *AppTimeReel) findNodeBySelector(selector []byte) *FrameNode { // evaluateForkChoice evaluates fork choice and updates head if necessary func (a *AppTimeReel) evaluateForkChoice(newNode *FrameNode) { if a.head == nil || - newNode.Frame.Header.FrameNumber-a.head.Frame.Header.FrameNumber > 360 { + (newNode.Frame.Header.FrameNumber > a.head.Frame.Header.FrameNumber && + newNode.Frame.Header.FrameNumber-a.head.Frame.Header.FrameNumber > 360) { oldHead := a.head a.head = newNode a.sendHeadEvent(newNode, oldHead) diff --git a/node/consensus/time/global_time_reel.go b/node/consensus/time/global_time_reel.go index f214f48..44b69c8 100644 --- a/node/consensus/time/global_time_reel.go +++ b/node/consensus/time/global_time_reel.go @@ -575,6 +575,7 @@ func (g *GlobalTimeReel) findNodeBySelector(selector []byte) *GlobalFrameNode { // evaluateForkChoice evaluates fork choice and updates head if necessary func (g *GlobalTimeReel) evaluateForkChoice(newNode *GlobalFrameNode) { if g.head == nil || (!g.archiveMode && + newNode.Frame.Header.FrameNumber > g.head.Frame.Header.FrameNumber && newNode.Frame.Header.FrameNumber-g.head.Frame.Header.FrameNumber > 360) { oldHead := g.head g.head = newNode