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

Implement finality certificates #14

Closed
3 tasks done
Tracked by #225 ...
anorth opened this issue Dec 8, 2023 · 1 comment · Fixed by #266
Closed
3 tasks done
Tracked by #225 ...

Implement finality certificates #14

anorth opened this issue Dec 8, 2023 · 1 comment · Fixed by #266
Assignees
Labels
Component fdex Relates to Finality Decision Exchange protocol

Comments

@anorth
Copy link
Member

anorth commented Dec 8, 2023

Implement the creation of finality certificates from a strong quorum of signed DECIDE messages. See design doc.

  • Compute BLS aggregate signature
  • Compute power table deltas
  • Compute compressed participant-set representation
  • Implement certificate validation

Dependencies

Preview Give feedback
  1. 4 of 4
    design-question
    Stebalien
  2. anorth
  3. gossipbft
@anorth anorth added the fdex Relates to Finality Decision Exchange protocol label Dec 8, 2023
@rjan90 rjan90 added this to FilOz Jan 31, 2024
@Kubuxu Kubuxu added this to the F3 Alpha milestone Apr 22, 2024
@Kubuxu
Copy link
Contributor

Kubuxu commented Apr 22, 2024

Initially, we can skip the deltas for MVP of this. So the minimal target becomes a format that allows for the validation of the aggregated decide message.
Stub for the certs lives here:

type Cert struct {

It should expand to contain BLS signature, signers representation, and power table representation.

@jennijuju jennijuju added this to F3 May 15, 2024
@jennijuju jennijuju removed this from FilOz May 16, 2024
@Kubuxu Kubuxu moved this to Todo in F3 May 16, 2024
@Stebalien Stebalien moved this from Todo to In progress in F3 May 17, 2024
@Stebalien Stebalien moved this from In progress to Todo in F3 May 17, 2024
Stebalien added a commit that referenced this issue May 29, 2024
This implements finality certificates and power table deltas. This adds:

1. Methods for applying/making power table deltas.
2. A method for validating a chain of finality certificates.

Notes:

- Finality certificates include the power-table delta between the power
table used to validate the current certificate and the next certificate.
They don't include the delta implied by the chain head. We'll have to
address this when we implement the finality certificate exchange
protocol, but I expect we'll communicate these power-deltas separate
from the certificates.

- I used `PowerEntries` instead of `PowerTable` objects because I doubt
we'll need the performance. But I'm happy to change that.

fixes #5
fixes #14
github-merge-queue bot pushed a commit that referenced this issue May 30, 2024
* Implement finality certificates

This implements finality certificates and power table deltas. This adds:

1. Methods for applying/making power table deltas.
2. A method for validating a chain of finality certificates.

Notes:

- Finality certificates include the power-table delta between the power
table used to validate the current certificate and the next certificate.
They don't include the delta implied by the chain head. We'll have to
address this when we implement the finality certificate exchange
protocol, but I expect we'll communicate these power-deltas separate
from the certificates.

- I used `PowerEntries` instead of `PowerTable` objects because I doubt
we'll need the performance. But I'm happy to change that.

fixes #5
fixes #14

* Test some more invalid cases
@github-project-automation github-project-automation bot moved this from Todo to Done in F3 May 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component fdex Relates to Finality Decision Exchange protocol
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants