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

Make F3 consensus final #603

Closed
Stebalien opened this issue Aug 28, 2024 · 3 comments · Fixed by #642
Closed

Make F3 consensus final #603

Stebalien opened this issue Aug 28, 2024 · 3 comments · Fixed by #642
Assignees

Comments

@Stebalien
Copy link
Member

Stebalien commented Aug 28, 2024

We need to:

  1. Set a checkpoint (in the client) whenever we reach an F3 decision.
  2. If we get a chain with an invalid base from lotus, we should wait a bit and try again rather than complaining loudly. I believe this should currently "work", but we'll likely have some noisy log messages.
@github-project-automation github-project-automation bot moved this to Todo in F3 Aug 28, 2024
@rjan90 rjan90 moved this from Todo to In progress in F3 Sep 11, 2024
masih added a commit that referenced this issue Sep 13, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit that referenced this issue Sep 13, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit to filecoin-project/lotus that referenced this issue Sep 13, 2024
Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603
masih added a commit to filecoin-project/lotus that referenced this issue Sep 13, 2024
Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603
masih added a commit that referenced this issue Sep 13, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit to filecoin-project/lotus that referenced this issue Sep 13, 2024
Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603
@masih
Copy link
Member

masih commented Sep 13, 2024

If we get a chain with an invalid base from lotus, we should wait a bit and try again rather than complaining loudly. I believe this should currently "work", but we'll likely have some noisy log messages.

@Stebalien is this not already covered by:

  1. collectChain returning nil if there is a divergence, which will cause base with empty suffix to be proposed as the next instance chain, plus
  2. backoff at computeNextInstanceStart, which will increase on base finalisation

?

masih added a commit to filecoin-project/lotus that referenced this issue Sep 13, 2024
Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603
@BigLep BigLep linked a pull request Sep 13, 2024 that will close this issue
@Stebalien
Copy link
Member Author

Yeah, it sounds like that part works.

masih added a commit that referenced this issue Sep 16, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit that referenced this issue Sep 17, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit to filecoin-project/lotus that referenced this issue Sep 17, 2024
Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603
masih added a commit to filecoin-project/lotus that referenced this issue Sep 17, 2024
Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603
masih added a commit that referenced this issue Sep 17, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit that referenced this issue Sep 17, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit that referenced this issue Sep 17, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit that referenced this issue Sep 18, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit that referenced this issue Sep 18, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
masih added a commit to filecoin-project/lotus that referenced this issue Sep 18, 2024
Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603
github-merge-queue bot pushed a commit that referenced this issue Sep 18, 2024
Expand the F3 EC backend API to mark a given tipset as final. This
translates to checkpointing the tipset in Lotus beyond which no forks
are allowed.

Part of #603
@github-project-automation github-project-automation bot moved this from In review to Done in F3 Sep 18, 2024
masih added a commit to filecoin-project/lotus that referenced this issue Sep 18, 2024
Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603
masih added a commit to filecoin-project/lotus that referenced this issue Sep 18, 2024
Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603
@masih masih reopened this Sep 18, 2024
@masih
Copy link
Member

masih commented Sep 18, 2024

This is done when the Lotus PR gets merged. Currently in review.

@masih masih moved this from Done to In review in F3 Sep 18, 2024
masih added a commit to filecoin-project/lotus that referenced this issue Sep 18, 2024
* Checkpoint tipsets that are finalized by F3

Once a decision is received from F3, checkpoint it in chain-store.

As part of checkpointing, refactor the F3 tipset wrapper to reduce type
casting.

Note that go-f3 module now uses Go 1.22, which requires Lotus go module
to be updated accordingly.

Part of filecoin-project/go-f3#603

* Make checkpointing chainstore optional via build constraints
@masih masih closed this as completed Sep 18, 2024
@github-project-automation github-project-automation bot moved this from In review to Done in F3 Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants