Skip to content
This repository has been archived by the owner on Apr 9, 2024. It is now read-only.

feat(acvm)!: Add CommonReferenceString backend trait #231

Merged
merged 5 commits into from
May 16, 2023

Conversation

phated
Copy link
Contributor

@phated phated commented Apr 26, 2023

Related issue(s)

Needed for noir-lang/acvm-backend-barretenberg#160

Description

Summary of changes

This requires a CommonReferenceString trait for ACVM Backends.

The reason some functions in other traits were modified to take the common_reference_string is because backends can have a circular dependency, such that they need to instantiate themselves before they can get the circuit size for a given circuit and the CRS often needs the circuit size to the data it is using. This means we can't do Backend::new(CRS::new(circuit_size)) and resulted the functions that need a CRS taking it as an argument.

Dependency additions / changes

(If applicable.)

Test additions / changes

(If applicable.)

Checklist

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt with default settings.
  • I have linked this PR to the issue(s) that it resolves.
  • I have reviewed the changes on GitHub, line by line.
  • I have ensured all changes are covered in the description.

Additional context

(If applicable.)

@phated
Copy link
Contributor Author

phated commented Apr 26, 2023

Opened as a draft to discuss

acvm/src/lib.rs Outdated Show resolved Hide resolved
@phated phated force-pushed the phated/ref-string-trait branch 2 times, most recently from 4dead53 to 99746c5 Compare May 2, 2023 22:18
acvm/src/lib.rs Outdated Show resolved Hide resolved
acvm/src/lib.rs Outdated Show resolved Hide resolved
acvm/src/lib.rs Outdated Show resolved Hide resolved
acvm/src/lib.rs Show resolved Hide resolved
@phated phated changed the title feat(acvm)!: Add ReferenceString backend trait feat(acvm)!: Add CommonReferenceString backend trait May 10, 2023
@phated phated marked this pull request as ready for review May 10, 2023 22:36
@phated phated requested review from vezenovm and guipublic May 11, 2023 00:11
@phated
Copy link
Contributor Author

phated commented May 11, 2023

This is a significant change to Backends, so we should hold it (even after approvals) until the CRS changes all prepared for the Backend and Nargo.

Copy link
Member

@TomAFrench TomAFrench left a comment

Choose a reason for hiding this comment

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

Looks good, couple of nits.

acvm/src/lib.rs Outdated Show resolved Hide resolved
acvm/src/lib.rs Outdated Show resolved Hide resolved
@TomAFrench TomAFrench added this to the v0.12.0 milestone May 15, 2023
@TomAFrench
Copy link
Member

Will take a look at this in the morning (singapore time) and can merge after.

@TomAFrench
Copy link
Member

Looks good, modified one comment.

@TomAFrench TomAFrench added this pull request to the merge queue May 16, 2023
Merged via the queue into master with commit eeddcf1 May 16, 2023
TomAFrench added a commit that referenced this pull request May 16, 2023
* master: (49 commits)
  feat(acvm)!: Add CommonReferenceString backend trait (#231)
  fix(acir): Hide variants of WitnessMapError and export it from package (#283)
  feat!: Introduce WitnessMap data structure to avoid leaking internal structure (#252)
  feat!: use struct variants for blackbox function calls (#269)
  chore(acvm)!: Backend trait must implement Debug (#275)
  chore!: remove `OpcodeResolutionError::UnexpectedOpcode` (#274)
  chore(acvm)!: rename `hash_to_field128_security` to `hash_to_field_128_security` (#271)
  feat(acvm)!: update black box solver interfaces to match `pwg:black_box::solve` (#268)
  chore(acir_field): remove unnecessary `to_vec()` (#267)
  chore(acvm)!: expose separate solvers for AND and XOR opcodes (#266)
  feat(acvm)!: Simplification pass for ACIR (#151)
  changes the name of blake to be blakes2s256 (#261)
  update hash functions (#260)
  feat!: Remove `solve` from PWG trait & introduce separate solvers for each blackbox (#257)
  chore: Release 0.11.0 (#250)
  feat(acvm): Add generic error for failing to solve an opcode (#251)
  fix(acir): Fix `Expression` multiplication to correctly handle degree 1 terms (#255)
  chore(acir): organise opcodes definitions (#254)
  chore: remove usage of `insert_witness` with `insert_value` (#253)
  feat: Add Keccak Hash function (#259)
  ...
@phated phated deleted the phated/ref-string-trait branch May 16, 2023 14:46
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants