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

When to start an f3 instance #173

Open
Tracked by #246
ranchalp opened this issue Apr 24, 2024 · 3 comments
Open
Tracked by #246

When to start an f3 instance #173

ranchalp opened this issue Apr 24, 2024 · 3 comments
Labels
design-question gossipbft Relates to core GossipPBFT protocol

Comments

@ranchalp
Copy link
Collaborator

ranchalp commented Apr 24, 2024

Once an f3 instance terminates, we need to determine when the next one starts. This decision will influence the head input chain offset #175 (waiting longer increases likelihood of preagreement on start for a particular head input offset).

@ranchalp ranchalp changed the title When to start an f3 instance When to start an f3 instance and head input chain offset Apr 24, 2024
@ranchalp ranchalp changed the title When to start an f3 instance and head input chain offset When to start an f3 instance. Apr 24, 2024
@ranchalp ranchalp changed the title When to start an f3 instance. When to start an f3 instance Apr 24, 2024
@ranchalp
Copy link
Collaborator Author

ranchalp commented Apr 24, 2024

A decision was made to wait for some delay after the timestamp of the last finalized epoch by the terminated f3 instance - parameter to be decided for FIP.

For the moment, let us assume to wait 2 epochs from the timestamp of the latest finalized epoch. That is, a participant, on termination of an f3 instance:

  • looks at the epoch $e$ of the head of the newly finalized prefix.
  • looks at the current epoch $e'$
  • if $e'-e>= 2$ then start immediately. Otherwise, wait until epoch $e+2$ starts, i.e. until $e'=e+2$, to start a new f3 instance.

This is in pair with the decision for #175 to suggest as proposal for the new instance the current EC heaviest chain from baseChain up until the second head (i.e. removing the head tipset from the proposal), but suggesting at least the tipset from epoch e+1.

@jennijuju jennijuju added the gossipbft Relates to core GossipPBFT protocol label May 15, 2024
@Stebalien
Copy link
Member

TL;DR: will tell go-f3 when to start which may be "now" or at some future time T when we expect the next block.

@Stebalien
Copy link
Member

However, if we see an "empty" instance, we need to make sure we don't start racing. Either:

  1. Add some kind of exponential backoff.
  2. Wait until LastTipsetTime + BlockTime * EmptyInstanceCount.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design-question gossipbft Relates to core GossipPBFT protocol
Projects
Status: No status
Development

No branches or pull requests

3 participants