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

specs: consensus leader selection & fork choice #735

Closed
3 of 4 tasks
Tracked by #650
liamsi opened this issue Mar 18, 2021 · 5 comments · Fixed by #3138
Closed
3 of 4 tasks
Tracked by #650

specs: consensus leader selection & fork choice #735

liamsi opened this issue Mar 18, 2021 · 5 comments · Fixed by #3138
Assignees
Labels
specs directly relevant to the specs

Comments

@liamsi
Copy link
Member

liamsi commented Mar 18, 2021

Summary

Currently, the specs do not define the concrete Leader selection and the Fork Choice rule:
https://github.com/celestiaorg/celestia-specs/blob/06be92043f8ec39bab4222708c0fb44eb7fbca60/src/specs/consensus.md#fork-choice

IMO, these could be very short paragraphs (one or two sentences) that give an overview and refer to tendermint for the details. If there is anything LL specific to consider here (e.g. any difference that stems from the minority assumption), it should also be mentioned somewhere.

Sub-Tasks

We also need to consider:

partly includes: celestiaorg/celestia-node#1134

@adlerjohn adlerjohn added the documentation Improvements or additions to documentation label Mar 18, 2021
@adlerjohn adlerjohn self-assigned this Mar 18, 2021
@liamsi
Copy link
Member Author

liamsi commented Mar 20, 2021

Actually, wouldn't the fork-choice rule be more nuanced depending on what kind of nodes are trying to "choose forks"?
This is certainly something we have to think carefully about. With an honest majority assumption things are easy: actual forks do not really exists, as nodes only accept block that were committed to by > 2/3 of the validators. This can be mentioned with a reference to tendermint. But things get much more complicated, especially the edge-cases, if we do not assume an honest majority. I think this is something the @informalsystems team can likely help with, too.

@adlerjohn
Copy link
Member

For now referencing the Tendermint fork choice rule and leaving it at that is probably sufficient. But you're right that the full specification of this is non-trivial, and I'm not sure Tendermint has a full written specification for its fork choice rule at this time.

@adlerjohn
Copy link
Member

Also see: celestiaorg/celestia-core#321

@adlerjohn
Copy link
Member

We also need to consider:

  1. timeouts
  2. data becoming available after the fact
  3. erasure coding fraud proofs

@adlerjohn adlerjohn transferred this issue from celestiaorg/celestia-specs Sep 19, 2022
@adlerjohn adlerjohn added specs directly relevant to the specs and removed documentation Improvements or additions to documentation labels Sep 19, 2022
@rootulp
Copy link
Collaborator

rootulp commented Nov 1, 2022

Can link to Tendermint docs

@rootulp rootulp changed the title consensus: Leader selection & Fork Choice specs: consensus leader selection & fork choice Jan 20, 2023
@evan-forbes evan-forbes added the needs:discussion item needs to be discussed as a group in the next sync. if marking an item, pls be prepped to talk label Feb 21, 2024
@rootulp rootulp self-assigned this Feb 26, 2024
@rootulp rootulp removed the needs:discussion item needs to be discussed as a group in the next sync. if marking an item, pls be prepped to talk label Feb 26, 2024
rootulp added a commit that referenced this issue Mar 4, 2024
ninabarbakadze pushed a commit to ninabarbakadze/celestia-app that referenced this issue Apr 2, 2024
0xchainlover pushed a commit to celestia-org/celestia-app that referenced this issue Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
specs directly relevant to the specs
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants