Skip to content
This repository has been archived by the owner on Jun 11, 2024. It is now read-only.

block doesn't get certified with useInvalidBLSKeys #8381

Closed
Tracked by #7226
shuse2 opened this issue Apr 20, 2023 · 0 comments · Fixed by #8404
Closed
Tracked by #7226

block doesn't get certified with useInvalidBLSKeys #8381

shuse2 opened this issue Apr 20, 2023 · 0 comments · Fixed by #8404
Assignees
Milestone

Comments

@shuse2
Copy link
Collaborator

shuse2 commented Apr 20, 2023

Expected behavior

block should get certified if BLS keys are registered during the init phase even if useInvalidBLSKeys are enabled.

Actual behavior

block doesn't get certified forever.
Reason is

  • When useInvalidBLSKeys are used, BLS keys will be registered during the init rounds (~309 blocks by default)
  • at 309, engine will store new BFT properties with valid BLS keys as height 310. (this is because the new validators are active from height 310)
  • aggregateCommit.height cannot be larger than heightNextBFTParameters - 1. In this case, heightNextBFTParameters is 310, so at maximum 309 must be certified. However, BFTParameters for height 309 will not be created because there is no valid BLSkey.

Steps to reproduce

Use useINvalidBLSKeys in the PoS module and register keys during the init rounds.
after around 1000 blocks, there should be aggregateCommits.heght at 0 where it should certify earlier block

Which version(s) does this affect? (Environment, OS, etc...)

6.0.0-alpha.21

Additional Information

LIP is updated with LiskArchive/lips#334

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants