Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EPIC: Block Production Lottery #383

Open
3 of 4 tasks
Tracked by #556
nistanimirov opened this issue May 13, 2024 · 0 comments
Open
3 of 4 tasks
Tracked by #556

EPIC: Block Production Lottery #383

nistanimirov opened this issue May 13, 2024 · 0 comments

Comments

@nistanimirov
Copy link
Collaborator

nistanimirov commented May 13, 2024

Implement the block production lottery algorithm as well as the underlying required functions and Runtime calls.

  • Consensus message is provided in the header of each produced block.

    • The first block of each epoch contains the following epoch’s authority list and randomness seed
    • Contains the index of an authority that has to be disabled in the current authority list
    • On config change or first block provides a change in the BABE constant (C) and the secondary slot type in the next epoch
  • We’ll need a next epoch config that stores data from these messages.

  • At the start of every epoch we’ll need to update the current epoch with data from the next epoch config and then update it as well.

  • The block production lottery gives us 2 results:

    • The slots in the epoch that the node is chosen to produce a block (VRF output < Winning threshold for the epoch)
    • The secondary slots in the epoch that the node is chosen to produce a block (if the calculated Id (index in the list of authorities) matches the producers public session key)
  • Initialize BABE constant #545

  • Implement Winning threshold algorithm #546

  • Implement Block-Production-Lottery algorithm #547

  • Implement Secondary slots #548

@nistanimirov nistanimirov changed the title Block Production Lottery EPIC: Block Production Lottery Oct 4, 2024
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

No branches or pull requests

1 participant