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

Update consensus graph rule #3074

Open
damip opened this issue Sep 23, 2022 · 0 comments
Open

Update consensus graph rule #3074

damip opened this issue Sep 23, 2022 · 0 comments
Assignees
Labels
blocked Issues that can't be done for now. consensus Issues related to the consensus

Comments

@damip
Copy link
Member

damip commented Sep 23, 2022

Update the consensus graph rules with the new one:

image

Translation in terms of incompatibility detection algorithm:

When a block B arrives in consensus:

  • inherit all incompatibilities from all of B's parents
  • let to_traverse = [ all active non-final blocks that are not incomp with B AND not in the ancestry of B AND for which the absolute slot distance with B is higher or equal to thread_count]
  • while let Some(traversing_b) = to_traverse.pop():
    • add traversing_b and all its descendants to B's incomp list, and remove all of traversing_b's descendants from to_traverse

@qdrn @leoloco can you:

  • check the above algo matches the spec
  • specify the extra "can't reference too recent parents" rule ?

This needs to be done AFTER #2894

@qdrn blocking until the multi-stake protection plan is organized.

@damip damip added the blocked Issues that can't be done for now. label Sep 23, 2022
@damip damip added this to the TEST.16.X milestone Sep 23, 2022
@damip damip self-assigned this Sep 23, 2022
@damip damip added the consensus Issues related to the consensus label Sep 23, 2022
@AurelienFT AurelienFT removed this from the TEST.16.X milestone Mar 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked Issues that can't be done for now. consensus Issues related to the consensus
Projects
None yet
Development

No branches or pull requests

2 participants