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

feat: committee program + bench #96

Merged
merged 1 commit into from
Jul 15, 2024
Merged

Conversation

tchataigner
Copy link
Contributor

@tchataigner tchataigner commented Jul 12, 2024

This PR introduces the sync committee change program, its tests and benchmark in the same fashion as the ones in the Aptos Light Client.

Test

The documentation for testing this is available in the MdBook.

Performance

On a 128CPU bare metal machine the current performance is:

{
  // Time in milliseconds, 13~ minutes
  "proving_time": 791696,
  "verification_time": 1
}

which means that the proving falls in the performances we want for now.

Changelog

  • Create the committee_change program that:
    1. Hash the current_sync_committee received in the store
    2. Process the update
    3. Hash the new `current_sync_committee
  • Introduces a Prover trait that contains a standard interface for proof execution, proving and verification.
  • Implemented the Prover trait for CommitteeChangeProver that is the prover dedicated for the committee change program.
  • Created unit tests for execution and STARK/SNARK proving
  • Created a benchmark to measure performances

Related issues

Closes #65

@tchataigner tchataigner marked this pull request as ready for review July 12, 2024 11:01
@tchataigner tchataigner force-pushed the feature/committee-program branch from 0e16744 to 8213575 Compare July 12, 2024 11:05
@tchataigner tchataigner requested review from huitseeker and wwared July 12, 2024 11:06
fix: as str

fix: fix ProvingMode/str conversion

feat: benchmark

fix: fixed zkvm logs validate update

refactor: zkvm logs validate update

refactor: zkvm logs process update

refactor: remove dbg logs

refactor: clearer logs

refactor: remove log

fix: length of hash for output

fix: compiled proper keccak usage

fix: proper keccak usage

refactor: keccak instead of merkle root

refactor: compile program

refactor: log cycles

fix: assert in execute

New sync committee should be the one we had in store

fix: fix order of outputs

feat: wip #65
@tchataigner tchataigner force-pushed the feature/committee-program branch from 8213575 to 32c439d Compare July 12, 2024 11:11
Copy link
Contributor

@huitseeker huitseeker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! I think I've found copies we could remove, but I'll open a PR later to deal with these nits.

@tchataigner tchataigner merged commit a372370 into dev Jul 15, 2024
6 checks passed
@tchataigner tchataigner deleted the feature/committee-program branch July 15, 2024 17:01
tchataigner added a commit that referenced this pull request Jul 30, 2024
fix: as str

fix: fix ProvingMode/str conversion

feat: benchmark

fix: fixed zkvm logs validate update

refactor: zkvm logs validate update

refactor: zkvm logs process update

refactor: remove dbg logs

refactor: clearer logs

refactor: remove log

fix: length of hash for output

fix: compiled proper keccak usage

fix: proper keccak usage

refactor: keccak instead of merkle root

refactor: compile program

refactor: log cycles

fix: assert in execute

New sync committee should be the one we had in store

fix: fix order of outputs

feat: wip #65
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Next sync committee program
2 participants