Skip to content

Ensure chain doesn't halt when processing Telocks - #592

Open
samliok wants to merge 1 commit into
mainfrom
545
Open

Ensure chain doesn't halt when processing Telocks #592
samliok wants to merge 1 commit into
mainfrom
545

Conversation

@samliok

@samliok samliok commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

The non-validator is not aware of Telocks. It only knows about the VerifiedBlock & Block apis defined in common package. The non-validator was running of the assumption that the same sequence could not have two different finalizations. It would halt the non-validator as a defensive check if it ever noticed that.

This PR ensures that the non-validator does not halt the chain if the two finalizations are different and one of them is a telock. Instead, it drops the telock and requests the actual finalization which will always be for the higher epoch.

Closes #545

}

return nil
// The current finalization in incompleteSequences belongs to a Telock

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we add an explicit check that:

bh.Epoch > stored.Epoch ?

zap.Stringer("From", from),
)

incomplete.block = nil

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't we have an epoch comparison check? Only nil if the block's epoch is lower.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Legitimate Telock/new-epoch sequence reuse triggers conflicting-finalization permanent halt

2 participants