-
Notifications
You must be signed in to change notification settings - Fork 234
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: Verification key stuff #8431
Conversation
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.
Good work!
@@ -93,7 +93,7 @@ std::vector<bb::fr> convert_grumpkin_fr_to_bn254_frs(const grumpkin::fr& val); | |||
*/ | |||
template <typename T> std::vector<bb::fr> convert_to_bn254_frs(const T& val) | |||
{ | |||
if constexpr (IsAnyOf<T, bool, uint32_t, uint64_t, bb::fr>) { | |||
if constexpr (IsAnyOf<T, bool, uint32_t, uint64_t, size_t, bb::fr>) { |
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.
where does this come into use?
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.
some of the databus_propagation_data components are size_t
(which I'm only now handling properly in this PR hence why we didn't need it before)
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.
size_t is pretty scary for serde though, so I expect this to lead to trouble when we try to do any sort of mega flavor verification key serde through wasm.
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.
gotcha - I'll make a TODO to try to change the databus data to use uint32_t
so we can get rid of this
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.
actually was able to make this change pretty easily so its done
uint64_t circuit_size; | ||
uint64_t log_circuit_size; | ||
uint64_t num_public_inputs; | ||
CircuitType circuit_type; // TODO(#392) |
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 guess this was just unused huh
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.
yeah was pretty surprised myself - not a single thing broke when I deleted it
* @param witness_indices | ||
* @return VerificationKey | ||
*/ | ||
static VerificationKey from_witness_indices(CircuitBuilder& builder, |
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 guess something similar could be done for ultra
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.
trying this, we'll see if the tests pass
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.
added the method but not using it because I started seeing weird failures and I can't go down that rabbit hole
ASSERT(false); | ||
} | ||
|
||
size_t key_idx = 0; | ||
for (auto& [proof, vkey, type] : verification_queue) { |
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.
seems like we still have this for the cases where we don't actually get stdlib vkeys. Will this eventually go away?
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 guess tests might not use stdlib vkeys
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.
yeah exactly, I left this pathway for tests
@@ -101,7 +102,9 @@ template <IsRecursiveFlavor Flavor> class RecursiveDeciderVerificationKey_ { | |||
{ | |||
auto native_honk_vk = std::make_shared<NativeVerificationKey>(verification_key->circuit_size, | |||
verification_key->num_public_inputs); | |||
native_honk_vk->pcs_verification_key = verification_key->pcs_verification_key; |
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.
odd this worked before...
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.
yeah it was indeed setting it to null in the previous usage but we just never ended up using it. It only came up for me in the verification of the AztecIvc proof
9a6f57a
to
29366ac
Compare
Changes to circuit sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.55.0</summary> ## [0.55.0](aztec-package-v0.54.0...aztec-package-v0.55.0) (2024-09-13) ### Bug Fixes * Load prover node config from env ([#8525](#8525)) ([7065962](7065962)) ### Miscellaneous * Remove unneeded propose and da oracle ([#8474](#8474)) ([274a6b7](274a6b7)) </details> <details><summary>barretenberg.js: 0.55.0</summary> ## [0.55.0](barretenberg.js-v0.54.0...barretenberg.js-v0.55.0) (2024-09-13) ### Features * New test programs for wasm benchmarking ([#8389](#8389)) ([0b46e96](0b46e96)) </details> <details><summary>aztec-packages: 0.55.0</summary> ## [0.55.0](aztec-packages-v0.54.0...aztec-packages-v0.55.0) (2024-09-13) ### ⚠ BREAKING CHANGES * Add Not instruction in brillig ([#8488](#8488)) * refactor NoteGetterOptions::select API ([#8504](#8504)) * **avm:** variants for CAST/NOT opcode ([#8497](#8497)) * **avm:** variants for REVERT opcode ([#8487](#8487)) ### Features * (bb) remove redundant constraints on field/group elements when using goblin plonk ([#8409](#8409)) ([12a093d](12a093d)) * Add `Module::structs` (noir-lang/noir#6017) ([cb20e07](cb20e07)) * Add `TypedExpr::get_type` (noir-lang/noir#5992) ([875cfe6](875cfe6)) * Add assertions for ACVM `FunctionInput` `bit_size` (noir-lang/noir#5864) ([20d7576](20d7576)) * Add Not instruction in brillig ([#8488](#8488)) ([ceda361](ceda361)) * Add timeouts for request / response stream connections ([#8434](#8434)) ([190c27f](190c27f)) * **avm:** Parallelize polynomial alloc and set ([#8520](#8520)) ([7e73531](7e73531)) * **avm:** Variants for CAST/NOT opcode ([#8497](#8497)) ([bc609fa](bc609fa)) * **avm:** Variants for REVERT opcode ([#8487](#8487)) ([a0c8915](a0c8915)) * **bb:** Iterative constexpr_for ([#8502](#8502)) ([02c3330](02c3330)) * Better error message for misplaced doc comments (noir-lang/noir#5990) ([875cfe6](875cfe6)) * Change the layout of arrays and vectors to be a single pointer ([#8448](#8448)) ([3ad624c](3ad624c)) * Checking finalized sizes + a test of two folding verifiers ([#8503](#8503)) ([d9e3f4d](d9e3f4d)) * Extract brillig slice ops to reusable procedures (noir-lang/noir#6002) ([20d7576](20d7576)) * Format trait impl functions (noir-lang/noir#6016) ([cb20e07](cb20e07)) * Impl Hash and Eq on more comptime types (noir-lang/noir#6022) ([cb20e07](cb20e07)) * Implement LSP code action "Implement missing members" (noir-lang/noir#6020) ([cb20e07](cb20e07)) * Let `has_named_attribute` work for built-in attributes (noir-lang/noir#6024) ([cb20e07](cb20e07)) * LSP completion function detail (noir-lang/noir#5993) ([875cfe6](875cfe6)) * Native world state ([#7516](#7516)) ([c1aa6f7](c1aa6f7)) * New test programs for wasm benchmarking ([#8389](#8389)) ([0b46e96](0b46e96)) * Output timestamps in prover-stats raw logs ([#8476](#8476)) ([aa67a14](aa67a14)) * Rate limit peers in request response p2p interactions ([#8498](#8498)) ([00146fa](00146fa)) * Refactor NoteGetterOptions::select API ([#8504](#8504)) ([e527992](e527992)) * Sync from aztec-packages (noir-lang/noir#5971) ([875cfe6](875cfe6)) * Sync from aztec-packages (noir-lang/noir#6001) ([20d7576](20d7576)) * Use Zac's quicksort algorithm in stdlib sorting (noir-lang/noir#5940) ([20d7576](20d7576)) * Validators ensure transactions live in their p2p pool before attesting ([#8410](#8410)) ([bce1eea](bce1eea)) * Verification key stuff ([#8431](#8431)) ([11dc8ff](11dc8ff)) ### Bug Fixes * Correctly print string tokens (noir-lang/noir#6021) ([cb20e07](cb20e07)) * Enable verifier when deploying the networks ([#8500](#8500)) ([f6d31f1](f6d31f1)) * Error when comptime types are used in runtime code (noir-lang/noir#5987) ([875cfe6](875cfe6)) * Error when mutating comptime variables in non-comptime code (noir-lang/noir#6003) ([20d7576](20d7576)) * Fix some mistakes in arithmetic generics docs (noir-lang/noir#5999) ([20d7576](20d7576)) * Fix using lazily elaborated comptime globals (noir-lang/noir#5995) ([20d7576](20d7576)) * Help link was outdated (noir-lang/noir#6004) ([20d7576](20d7576)) * Load prover node config from env ([#8525](#8525)) ([7065962](7065962)) * Remove claim_public from fee juice ([#8337](#8337)) ([dca74ae](dca74ae)) * Try to move constant terms to one side for arithmetic generics (noir-lang/noir#6008) ([cb20e07](cb20e07)) * Use module name as line after which we'll insert auto-import (noir-lang/noir#6025) ([cb20e07](cb20e07)) ### Miscellaneous * Add some `pub use` and remove unused imports ([#8521](#8521)) ([8bd0755](8bd0755)) * **bb:** Fix mac build ([#8505](#8505)) ([32fd347](32fd347)), closes [#8499](#8499) * **bb:** Fix mac build ([#8522](#8522)) ([986e703](986e703)) * **ci:** Fix bb publishing ([#8486](#8486)) ([c210c36](c210c36)) * Fix a load of warnings in aztec-nr ([#8501](#8501)) ([35dc1e1](35dc1e1)) * Protogalaxy verifier matches prover 1 ([#8414](#8414)) ([5a76ec6](5a76ec6)) * Remove RC tracking in mem2reg (noir-lang/noir#6019) ([cb20e07](cb20e07)) * Remove unneeded propose and da oracle ([#8474](#8474)) ([274a6b7](274a6b7)) * Replace relative paths to noir-protocol-circuits ([b179c6b](b179c6b)) * Replace relative paths to noir-protocol-circuits ([1c042be](1c042be)) * Replace relative paths to noir-protocol-circuits ([1c8409f](1c8409f)) * Run mac builds on master ([#8519](#8519)) ([c458a79](c458a79)) * Single install script for cargo-binstall (noir-lang/noir#5998) ([20d7576](20d7576)) * Use uint32_t instead of size_t for databus data ([#8479](#8479)) ([79995c8](79995c8)) </details> <details><summary>barretenberg: 0.55.0</summary> ## [0.55.0](barretenberg-v0.54.0...barretenberg-v0.55.0) (2024-09-13) ### ⚠ BREAKING CHANGES * Add Not instruction in brillig ([#8488](#8488)) * **avm:** variants for CAST/NOT opcode ([#8497](#8497)) * **avm:** variants for REVERT opcode ([#8487](#8487)) ### Features * (bb) remove redundant constraints on field/group elements when using goblin plonk ([#8409](#8409)) ([12a093d](12a093d)) * Add Not instruction in brillig ([#8488](#8488)) ([ceda361](ceda361)) * **avm:** Parallelize polynomial alloc and set ([#8520](#8520)) ([7e73531](7e73531)) * **avm:** Variants for CAST/NOT opcode ([#8497](#8497)) ([bc609fa](bc609fa)) * **avm:** Variants for REVERT opcode ([#8487](#8487)) ([a0c8915](a0c8915)) * **bb:** Iterative constexpr_for ([#8502](#8502)) ([02c3330](02c3330)) * Checking finalized sizes + a test of two folding verifiers ([#8503](#8503)) ([d9e3f4d](d9e3f4d)) * Native world state ([#7516](#7516)) ([c1aa6f7](c1aa6f7)) * New test programs for wasm benchmarking ([#8389](#8389)) ([0b46e96](0b46e96)) * Verification key stuff ([#8431](#8431)) ([11dc8ff](11dc8ff)) ### Miscellaneous * **bb:** Fix mac build ([#8505](#8505)) ([32fd347](32fd347)), closes [#8499](#8499) * **bb:** Fix mac build ([#8522](#8522)) ([986e703](986e703)) * Protogalaxy verifier matches prover 1 ([#8414](#8414)) ([5a76ec6](5a76ec6)) * Use uint32_t instead of size_t for databus data ([#8479](#8479)) ([79995c8](79995c8)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.55.0</summary> ## [0.55.0](AztecProtocol/aztec-packages@aztec-package-v0.54.0...aztec-package-v0.55.0) (2024-09-13) ### Bug Fixes * Load prover node config from env ([#8525](AztecProtocol/aztec-packages#8525)) ([7065962](AztecProtocol/aztec-packages@7065962)) ### Miscellaneous * Remove unneeded propose and da oracle ([#8474](AztecProtocol/aztec-packages#8474)) ([274a6b7](AztecProtocol/aztec-packages@274a6b7)) </details> <details><summary>barretenberg.js: 0.55.0</summary> ## [0.55.0](AztecProtocol/aztec-packages@barretenberg.js-v0.54.0...barretenberg.js-v0.55.0) (2024-09-13) ### Features * New test programs for wasm benchmarking ([#8389](AztecProtocol/aztec-packages#8389)) ([0b46e96](AztecProtocol/aztec-packages@0b46e96)) </details> <details><summary>aztec-packages: 0.55.0</summary> ## [0.55.0](AztecProtocol/aztec-packages@aztec-packages-v0.54.0...aztec-packages-v0.55.0) (2024-09-13) ### ⚠ BREAKING CHANGES * Add Not instruction in brillig ([#8488](AztecProtocol/aztec-packages#8488)) * refactor NoteGetterOptions::select API ([#8504](AztecProtocol/aztec-packages#8504)) * **avm:** variants for CAST/NOT opcode ([#8497](AztecProtocol/aztec-packages#8497)) * **avm:** variants for REVERT opcode ([#8487](AztecProtocol/aztec-packages#8487)) ### Features * (bb) remove redundant constraints on field/group elements when using goblin plonk ([#8409](AztecProtocol/aztec-packages#8409)) ([12a093d](AztecProtocol/aztec-packages@12a093d)) * Add `Module::structs` (noir-lang/noir#6017) ([cb20e07](AztecProtocol/aztec-packages@cb20e07)) * Add `TypedExpr::get_type` (noir-lang/noir#5992) ([875cfe6](AztecProtocol/aztec-packages@875cfe6)) * Add assertions for ACVM `FunctionInput` `bit_size` (noir-lang/noir#5864) ([20d7576](AztecProtocol/aztec-packages@20d7576)) * Add Not instruction in brillig ([#8488](AztecProtocol/aztec-packages#8488)) ([ceda361](AztecProtocol/aztec-packages@ceda361)) * Add timeouts for request / response stream connections ([#8434](AztecProtocol/aztec-packages#8434)) ([190c27f](AztecProtocol/aztec-packages@190c27f)) * **avm:** Parallelize polynomial alloc and set ([#8520](AztecProtocol/aztec-packages#8520)) ([7e73531](AztecProtocol/aztec-packages@7e73531)) * **avm:** Variants for CAST/NOT opcode ([#8497](AztecProtocol/aztec-packages#8497)) ([bc609fa](AztecProtocol/aztec-packages@bc609fa)) * **avm:** Variants for REVERT opcode ([#8487](AztecProtocol/aztec-packages#8487)) ([a0c8915](AztecProtocol/aztec-packages@a0c8915)) * **bb:** Iterative constexpr_for ([#8502](AztecProtocol/aztec-packages#8502)) ([02c3330](AztecProtocol/aztec-packages@02c3330)) * Better error message for misplaced doc comments (noir-lang/noir#5990) ([875cfe6](AztecProtocol/aztec-packages@875cfe6)) * Change the layout of arrays and vectors to be a single pointer ([#8448](AztecProtocol/aztec-packages#8448)) ([3ad624c](AztecProtocol/aztec-packages@3ad624c)) * Checking finalized sizes + a test of two folding verifiers ([#8503](AztecProtocol/aztec-packages#8503)) ([d9e3f4d](AztecProtocol/aztec-packages@d9e3f4d)) * Extract brillig slice ops to reusable procedures (noir-lang/noir#6002) ([20d7576](AztecProtocol/aztec-packages@20d7576)) * Format trait impl functions (noir-lang/noir#6016) ([cb20e07](AztecProtocol/aztec-packages@cb20e07)) * Impl Hash and Eq on more comptime types (noir-lang/noir#6022) ([cb20e07](AztecProtocol/aztec-packages@cb20e07)) * Implement LSP code action "Implement missing members" (noir-lang/noir#6020) ([cb20e07](AztecProtocol/aztec-packages@cb20e07)) * Let `has_named_attribute` work for built-in attributes (noir-lang/noir#6024) ([cb20e07](AztecProtocol/aztec-packages@cb20e07)) * LSP completion function detail (noir-lang/noir#5993) ([875cfe6](AztecProtocol/aztec-packages@875cfe6)) * Native world state ([#7516](AztecProtocol/aztec-packages#7516)) ([c1aa6f7](AztecProtocol/aztec-packages@c1aa6f7)) * New test programs for wasm benchmarking ([#8389](AztecProtocol/aztec-packages#8389)) ([0b46e96](AztecProtocol/aztec-packages@0b46e96)) * Output timestamps in prover-stats raw logs ([#8476](AztecProtocol/aztec-packages#8476)) ([aa67a14](AztecProtocol/aztec-packages@aa67a14)) * Rate limit peers in request response p2p interactions ([#8498](AztecProtocol/aztec-packages#8498)) ([00146fa](AztecProtocol/aztec-packages@00146fa)) * Refactor NoteGetterOptions::select API ([#8504](AztecProtocol/aztec-packages#8504)) ([e527992](AztecProtocol/aztec-packages@e527992)) * Sync from aztec-packages (noir-lang/noir#5971) ([875cfe6](AztecProtocol/aztec-packages@875cfe6)) * Sync from aztec-packages (noir-lang/noir#6001) ([20d7576](AztecProtocol/aztec-packages@20d7576)) * Use Zac's quicksort algorithm in stdlib sorting (noir-lang/noir#5940) ([20d7576](AztecProtocol/aztec-packages@20d7576)) * Validators ensure transactions live in their p2p pool before attesting ([#8410](AztecProtocol/aztec-packages#8410)) ([bce1eea](AztecProtocol/aztec-packages@bce1eea)) * Verification key stuff ([#8431](AztecProtocol/aztec-packages#8431)) ([11dc8ff](AztecProtocol/aztec-packages@11dc8ff)) ### Bug Fixes * Correctly print string tokens (noir-lang/noir#6021) ([cb20e07](AztecProtocol/aztec-packages@cb20e07)) * Enable verifier when deploying the networks ([#8500](AztecProtocol/aztec-packages#8500)) ([f6d31f1](AztecProtocol/aztec-packages@f6d31f1)) * Error when comptime types are used in runtime code (noir-lang/noir#5987) ([875cfe6](AztecProtocol/aztec-packages@875cfe6)) * Error when mutating comptime variables in non-comptime code (noir-lang/noir#6003) ([20d7576](AztecProtocol/aztec-packages@20d7576)) * Fix some mistakes in arithmetic generics docs (noir-lang/noir#5999) ([20d7576](AztecProtocol/aztec-packages@20d7576)) * Fix using lazily elaborated comptime globals (noir-lang/noir#5995) ([20d7576](AztecProtocol/aztec-packages@20d7576)) * Help link was outdated (noir-lang/noir#6004) ([20d7576](AztecProtocol/aztec-packages@20d7576)) * Load prover node config from env ([#8525](AztecProtocol/aztec-packages#8525)) ([7065962](AztecProtocol/aztec-packages@7065962)) * Remove claim_public from fee juice ([#8337](AztecProtocol/aztec-packages#8337)) ([dca74ae](AztecProtocol/aztec-packages@dca74ae)) * Try to move constant terms to one side for arithmetic generics (noir-lang/noir#6008) ([cb20e07](AztecProtocol/aztec-packages@cb20e07)) * Use module name as line after which we'll insert auto-import (noir-lang/noir#6025) ([cb20e07](AztecProtocol/aztec-packages@cb20e07)) ### Miscellaneous * Add some `pub use` and remove unused imports ([#8521](AztecProtocol/aztec-packages#8521)) ([8bd0755](AztecProtocol/aztec-packages@8bd0755)) * **bb:** Fix mac build ([#8505](AztecProtocol/aztec-packages#8505)) ([32fd347](AztecProtocol/aztec-packages@32fd347)), closes [#8499](AztecProtocol/aztec-packages#8499) * **bb:** Fix mac build ([#8522](AztecProtocol/aztec-packages#8522)) ([986e703](AztecProtocol/aztec-packages@986e703)) * **ci:** Fix bb publishing ([#8486](AztecProtocol/aztec-packages#8486)) ([c210c36](AztecProtocol/aztec-packages@c210c36)) * Fix a load of warnings in aztec-nr ([#8501](AztecProtocol/aztec-packages#8501)) ([35dc1e1](AztecProtocol/aztec-packages@35dc1e1)) * Protogalaxy verifier matches prover 1 ([#8414](AztecProtocol/aztec-packages#8414)) ([5a76ec6](AztecProtocol/aztec-packages@5a76ec6)) * Remove RC tracking in mem2reg (noir-lang/noir#6019) ([cb20e07](AztecProtocol/aztec-packages@cb20e07)) * Remove unneeded propose and da oracle ([#8474](AztecProtocol/aztec-packages#8474)) ([274a6b7](AztecProtocol/aztec-packages@274a6b7)) * Replace relative paths to noir-protocol-circuits ([b179c6b](AztecProtocol/aztec-packages@b179c6b)) * Replace relative paths to noir-protocol-circuits ([1c042be](AztecProtocol/aztec-packages@1c042be)) * Replace relative paths to noir-protocol-circuits ([1c8409f](AztecProtocol/aztec-packages@1c8409f)) * Run mac builds on master ([#8519](AztecProtocol/aztec-packages#8519)) ([c458a79](AztecProtocol/aztec-packages@c458a79)) * Single install script for cargo-binstall (noir-lang/noir#5998) ([20d7576](AztecProtocol/aztec-packages@20d7576)) * Use uint32_t instead of size_t for databus data ([#8479](AztecProtocol/aztec-packages#8479)) ([79995c8](AztecProtocol/aztec-packages@79995c8)) </details> <details><summary>barretenberg: 0.55.0</summary> ## [0.55.0](AztecProtocol/aztec-packages@barretenberg-v0.54.0...barretenberg-v0.55.0) (2024-09-13) ### ⚠ BREAKING CHANGES * Add Not instruction in brillig ([#8488](AztecProtocol/aztec-packages#8488)) * **avm:** variants for CAST/NOT opcode ([#8497](AztecProtocol/aztec-packages#8497)) * **avm:** variants for REVERT opcode ([#8487](AztecProtocol/aztec-packages#8487)) ### Features * (bb) remove redundant constraints on field/group elements when using goblin plonk ([#8409](AztecProtocol/aztec-packages#8409)) ([12a093d](AztecProtocol/aztec-packages@12a093d)) * Add Not instruction in brillig ([#8488](AztecProtocol/aztec-packages#8488)) ([ceda361](AztecProtocol/aztec-packages@ceda361)) * **avm:** Parallelize polynomial alloc and set ([#8520](AztecProtocol/aztec-packages#8520)) ([7e73531](AztecProtocol/aztec-packages@7e73531)) * **avm:** Variants for CAST/NOT opcode ([#8497](AztecProtocol/aztec-packages#8497)) ([bc609fa](AztecProtocol/aztec-packages@bc609fa)) * **avm:** Variants for REVERT opcode ([#8487](AztecProtocol/aztec-packages#8487)) ([a0c8915](AztecProtocol/aztec-packages@a0c8915)) * **bb:** Iterative constexpr_for ([#8502](AztecProtocol/aztec-packages#8502)) ([02c3330](AztecProtocol/aztec-packages@02c3330)) * Checking finalized sizes + a test of two folding verifiers ([#8503](AztecProtocol/aztec-packages#8503)) ([d9e3f4d](AztecProtocol/aztec-packages@d9e3f4d)) * Native world state ([#7516](AztecProtocol/aztec-packages#7516)) ([c1aa6f7](AztecProtocol/aztec-packages@c1aa6f7)) * New test programs for wasm benchmarking ([#8389](AztecProtocol/aztec-packages#8389)) ([0b46e96](AztecProtocol/aztec-packages@0b46e96)) * Verification key stuff ([#8431](AztecProtocol/aztec-packages#8431)) ([11dc8ff](AztecProtocol/aztec-packages@11dc8ff)) ### Miscellaneous * **bb:** Fix mac build ([#8505](AztecProtocol/aztec-packages#8505)) ([32fd347](AztecProtocol/aztec-packages@32fd347)), closes [#8499](AztecProtocol/aztec-packages#8499) * **bb:** Fix mac build ([#8522](AztecProtocol/aztec-packages#8522)) ([986e703](AztecProtocol/aztec-packages@986e703)) * Protogalaxy verifier matches prover 1 ([#8414](AztecProtocol/aztec-packages#8414)) ([5a76ec6](AztecProtocol/aztec-packages@5a76ec6)) * Use uint32_t instead of size_t for databus data ([#8479](AztecProtocol/aztec-packages#8479)) ([79995c8](AztecProtocol/aztec-packages@79995c8)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
The previous PR in this series set up the basic infrastructure for completing kernel circuits from acir RecursionConstraints, including connecting the dummy proof in the constraint to the genuine witnesses known internally in AztecIvc. This PR completes this line work by using the (genuine) verification key witnesses in the constraint to construct the stdlib verification keys from which the recursive verifiers are instantiated.
Doing this properly involved correcting/implementing/testing various serialization/deserialization/construction methods for native and stdlib verification keys - this accounts for most of the changes in this PR. The corrections mostly applied to Mega and were related to not accounting for
databus_propagation_data
. I also updated some of the corresponding Ultra methods in an attempt to make them a bit more readable and more easily maintainable.closes AztecProtocol/barretenberg#1090