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

Ports Nova 263 (Nova forward port) #133

Merged
merged 2 commits into from
Nov 23, 2023
Merged

Ports Nova 263 (Nova forward port) #133

merged 2 commits into from
Nov 23, 2023

Conversation

huitseeker
Copy link
Contributor

@huitseeker huitseeker commented Nov 22, 2023

This ports
microsoft/Nova#263
which refactors the traits using an Engine trait, which "mixes" the individual trait implementations required in Nova and pegs them on a token struct. This allows creating different combinations re-using some of the same modules.

In simple terms, we can have several PCSes for a single curve cycle.

(The Lurk compilation breakage is expected)

…p` method

- Updated the function interface for generating `PublicParams` across several files, replacing the `new` method with `setup`.
- The method name change impacts the `benches/recursive-snark-supernova.rs`, `src/supernova/test.rs`, and `src/supernova/mod.rs` files.
@huitseeker huitseeker changed the title Ports nova 263 Ports Nova 263 (Nova forward port) Nov 22, 2023
…me curve cycle (#263)

* rename Group to Engine

* port tests

* checkpoint

* checkpoint

* compiles

* update benchmarks and tests to use Engine

* rename GroupExt to DlogGroup

* move get_curve_params to Group and rename

* fix doc test; cargo fmt

* inline single trait requirements; fix comments

* cut comment
huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Nov 22, 2023
…o#133

- Adapted the codebase to replace the `Group` types and traits with `Engine`, and replaced `G1` and `G2` with `E1` and `E2`.
- Updated the trait `EvaluationEngineTrait<G>` and `RelaxedR1CSSNARKTrait` along with type aliases to reflect these changes.
- Modified the `CurveCycleEquipped` implementation for `bn256::Scalar` and `pallas::Scalar`.
- Made necessary adjustments to the aid functions and type aliases related to `NovaProver` for compatibility with the new group types.
- Made changes in the SuperNova proving system to accommodate new `Engine` types.
@huitseeker
Copy link
Contributor Author

Lurk companion PR: argumentcomputer/lurk-beta#917

huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Nov 23, 2023
…o#133

- Adapted the codebase to replace the `Group` types and traits with `Engine`, and replaced `G1` and `G2` with `E1` and `E2`.
- Updated the trait `EvaluationEngineTrait<G>` and `RelaxedR1CSSNARKTrait` along with type aliases to reflect these changes.
- Modified the `CurveCycleEquipped` implementation for `bn256::Scalar` and `pallas::Scalar`.
- Made necessary adjustments to the aid functions and type aliases related to `NovaProver` for compatibility with the new group types.
- Made changes in the SuperNova proving system to accommodate new `Engine` types.
@huitseeker huitseeker added this pull request to the merge queue Nov 23, 2023
@arthurpaulino
Copy link
Member

@huitseeker the companion PR is breaking on lurk-rs

@arthurpaulino arthurpaulino removed this pull request from the merge queue due to a manual request Nov 23, 2023
@arthurpaulino arthurpaulino added this pull request to the merge queue Nov 23, 2023
@arthurpaulino
Copy link
Member

Nvm, you changed the arecibo branch there already

Merged via the queue into dev with commit c49c30f Nov 23, 2023
2 of 3 checks passed
@arthurpaulino arthurpaulino deleted the port_nova branch November 23, 2023 14:16
github-merge-queue bot pushed a commit to argumentcomputer/lurk-beta that referenced this pull request Nov 23, 2023
* refactor: Refactor to adpt to Arecibo changes argumentcomputer/arecibo#133

- Adapted the codebase to replace the `Group` types and traits with `Engine`, and replaced `G1` and `G2` with `E1` and `E2`.
- Updated the trait `EvaluationEngineTrait<G>` and `RelaxedR1CSSNARKTrait` along with type aliases to reflect these changes.
- Modified the `CurveCycleEquipped` implementation for `bn256::Scalar` and `pallas::Scalar`.
- Made necessary adjustments to the aid functions and type aliases related to `NovaProver` for compatibility with the new group types.
- Made changes in the SuperNova proving system to accommodate new `Engine` types.

* chore: re-align the arecibo branch to dev
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.

6 participants