-
Notifications
You must be signed in to change notification settings - Fork 16
feat!: Implement CommonReferenceString trait #139
Conversation
constraint_system: &ConstraintSystem, | ||
witness: WitnessAssignments, | ||
proving_key: &[u8], | ||
) -> Vec<u8> { | ||
let circuit_size = self.get_circuit_size(constraint_system); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do like this switch away from having to serialize a circuit to/from bberg for every composer method in order to fetch the circuit size and thus the data from the CRS. For methods such as create proof we have been forced to serialize the entire circuit to bberg to fetch the circuit size, and then once again to perform the main action of the method.
Is there anyway to persist the reference string in the Barretenberg struct once we call get_reference_string
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't like the idea of persisting it on the struct because then you have to do like Option<CRS>
and check to see if you have it in each function. The idea behind get_reference_string
is that it won't be called by nargo if Nargo already has a cached version that is large enough for the circuit, so we'd have to check/cache it in each function, which seems messy.
ce3cc59
to
81ad859
Compare
f4cc81b
to
b28b147
Compare
b28b147
to
2cc62fd
Compare
0bdd53b
to
84587ff
Compare
I'm see a lot of DNS failures on Linux. Do we know why or any way to avoid them? Is there a misconfiguration on the AWS bucket where the CRS lives? Or is it a problem with the Reqwest library (searching the internet for the error shows many similar errors from Reqwest...)? We wouldn't have seen these errors with the old implementation because we were caching in CI and then we were using Nix to fetch. |
67acf2c
to
737d042
Compare
7d27ea0
to
5647a7f
Compare
* feat!: update to target acvm-84b5d18d * chore: update to use new black box solver interface * use patch syntax * update to latest changes * feat!: update to acvm with non-homogeneous bb calls (#169) * feat: update acvm * feat!: updated acvm to latest master * chore: update cargo toml * Update src/barretenberg_structures.rs Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> --------- Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> * fix bad rebase * feat!: Update backend to rely on WitnessMap (#152) Co-authored-by: Tom French <tom@tomfren.ch> * update acvm * feat!: Implement CommonReferenceString trait (#139) * chore!: Remove filesystem access and utilize async fetch with range requests Co-authored-by: Tom French <tom@tomfren.ch> * chore: Switch to tokio test macro for async function (#191) * chore: Remove `sled` & `tempfile` dev-dependencies (#190) * chore: Remove sled & tempfile dev-dependencies * chore: space out functions --------- Co-authored-by: Tom French <tom@tomfren.ch> * chore: bump to crates.io release * Update src/crs.rs * chore: Remove streaming CRS download & indicator (#194) * Update src/acvm_interop/common_reference_string.rs * code review --------- Co-authored-by: Blaine Bublitz <blaine.bublitz@gmail.com> Co-authored-by: Álvaro Rodríguez <sirasistant@gmail.com>
This is a draft implementation of noir-lang/acvm#231 to see how the API worked out.
Closes #160
Closes #162