Skip to content

feat: Clarify state in Protogalaxy 3#8181

Merged
codygunton merged 20 commits intomasterfrom
cg/pg-state-3
Aug 30, 2024
Merged

feat: Clarify state in Protogalaxy 3#8181
codygunton merged 20 commits intomasterfrom
cg/pg-state-3

Conversation

@codygunton
Copy link
Copy Markdown
Contributor

@codygunton codygunton commented Aug 25, 2024

Main goal: more explicit state by making round functions pure functions (with const inputs).

  • Exception: first round mutates instances. May handle in follow-on that changes handling of accumulator.
  • Also: get rid of several pieces of prover state (gate_challenges, relation_parameters, optimised_relation_parameters, accumulators, result)
  • FYI: will likely get rid of temporary refactoring helper classes State and ProtogalaxyProverInternal also.

Also:

  • Rename accumulator_update_round, preparation_round, compressed_perturbator, OptimisedFoo, CombinedFoo.
  • Combiner test does not use prover class.
  • Use const in a bunch of places
  • Reduce amount of templating by explicitly naming instantiations of compute_combiner

Next up: some renaming

@codygunton codygunton self-assigned this Aug 25, 2024
@codygunton codygunton changed the base branch from master to cg/pg-state-2 August 25, 2024 23:37
Base automatically changed from cg/pg-state-2 to master August 26, 2024 19:21
@codygunton codygunton requested a review from maramihali August 29, 2024 15:45
@codygunton codygunton marked this pull request as ready for review August 29, 2024 15:52
Copy link
Copy Markdown

@maramihali maramihali left a comment

Choose a reason for hiding this comment

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

Mostly LGTM, left some requests for clarity/docs/nits. Thanks for your consting commuty work :D

@@ -45,6 +45,11 @@ template <typename T> struct RelationParameters {
return RefArray{ eta, eta_two, eta_three, beta, gamma, public_input_delta, lookup_grand_product_delta };
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Do we need a const and non_const method? If so, please document why, otherwise maybe remove the non-const.

Copy link
Copy Markdown
Contributor Author

@codygunton codygunton Aug 30, 2024

Choose a reason for hiding this comment

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

Yes, when you have a function f(const T& params) that internally calls params.get(), the function get needs to be marked const so that the compiler knows that params isn't mutated by it inside of the body of f, thereby invalidating the claim that the input to f is const. But we can't have only const version because we use the non-const version in a non-constant way already (we have for (auto& x : params.get()) where we assign to each x). Since it's 'just C++' stuff I won't document it.

using Relations = typename Flavor::Relations;
using RelationSeparator = typename Flavor::RelationSeparator;
using CombinedRelationSeparator =
static constexpr size_t NUM_INSTANCES = ProverInstances_::NUM;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

can we stick to either ProverInstances_ and then removed the using declaration on line 20 or ProverInstances?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is a good idea but I think we need this because elsewhere we refer to the type ProtogalaxyProverInternal::ProverInstances. In any case this class is likely to go away.

*
*/
static LegacyPolynomial<FF> compute_perturbator(std::shared_ptr<Instance> accumulator,
static LegacyPolynomial<FF> compute_perturbator(const std::shared_ptr<const Instance>& accumulator,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Could you add an issue to change this from LegacyPolynomial or change (if possible, docs say it's only for Plonk these days)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I was just working with existing types, and I saw that Adam had made the perturbator a LegacyPolynomial and accepted that. Checked with him and he said it can be changed to a normal Polynomial, so I'll do that.

@@ -332,6 +337,29 @@ template <class ProverInstances_> class ProtogalaxyProverInternal {
return batch_over_relations(deoptimized_univariates, alphas);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This is actually great simplification :D

return compute_combiner(instances, pow_betas, relation_parameters, alphas, accumulators);
}

static ExtendedUnivariateWithRandomization compute_combiner(const ProverInstances& instances,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Did the compute_combiner method not have docs?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

There are docs on the header

}

template <class ProverInstances> void ProtoGalaxyProver_<ProverInstances>::preparation_round()
template <class ProverInstances> void ProtoGalaxyProver_<ProverInstances>::run_oink_prover_on_each_instance()
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

will you please add some docs to this method?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

There are docs in the header.

static constexpr size_t NUM_SUBRELATIONS = ProverInstances_::NUM_SUBRELATIONS;

ProverInstances instances;
ProverInstances_ instances;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

_ not needed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I was running into trouble where the compiler was complaining about two functions having different return types when the type was actually the same but we were accessing it through different aliases. This was part of the fix. I have a plan to deal with this, namely I'm going to make the template take more types, and then proxy through another template as in

template <typename Flavor, typename FF> C_;
using template <typename Flavor> C = C_<Flavor, typename Flavor::FF>;

This will make a lot of the complicated signatures much more readable.

ProtoGalaxyProver_() = default;
ProtoGalaxyProver_(const std::vector<std::shared_ptr<Instance>>& insts)
: instances(ProverInstances(insts))
: instances(ProverInstances_(insts))
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

same here

using ProverInstance = ProverInstance_<Flavor>;
using ProverInstances = ProverInstances_<Flavor, NUM_INSTANCES>;
using ProtoGalaxyProver = ProtoGalaxyProver_<ProverInstances>;
using Fun = ProtogalaxyProverInternal<ProverInstances>;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I dont quite like the Fun pattern (unless it's a std pattern and I don't know of it?) mb PGInternal or ProverInternal might be better. My thinking is if I see Fun::* I'll always have to go to the using declaration to figure out what class is used.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Two options are:

  1. just make function templates, not static functions in a class template, or
  2. just put these functions in the prover.

The second has the disadvantage that we'd have to declare these in the header to use them in the imple, and I think it's nicer to have the header contain fewer declarations to be more clear about what the class does. Will go with the first approach in a follow-on

@codygunton codygunton enabled auto-merge (squash) August 30, 2024 19:17
@codygunton codygunton disabled auto-merge August 30, 2024 19:17
@codygunton codygunton enabled auto-merge (squash) August 30, 2024 19:18
@codygunton codygunton merged commit 4a9bb9d into master Aug 30, 2024
@codygunton codygunton deleted the cg/pg-state-3 branch August 30, 2024 19:54
codygunton added a commit that referenced this pull request Aug 30, 2024
Main goal: more explicit state by making round functions pure functions
(with const inputs).
- Exception: first round mutates instances. May handle in follow-on that
changes handling of accumulator.
- Also: get rid of several pieces of prover state (`gate_challenges`,
`relation_parameters`, `optimised_relation_parameters`, `accumulators`,
`result`)
- FYI: will likely get rid of temporary refactoring helper classes
`State` and `ProtogalaxyProverInternal` also.

Also:
- Rename `accumulator_update_round`, `preparation_round`,
`compressed_perturbator`, `OptimisedFoo`, `CombinedFoo`.
 - Combiner test does not use prover class.
 - Use `const` in a bunch of places
- Reduce amount of templating by explicitly naming instantiations of
compute_combiner
PhilWindle pushed a commit that referenced this pull request Sep 2, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.52.0</summary>

##
[0.52.0](aztec-package-v0.51.1...aztec-package-v0.52.0)
(2024-09-01)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

<details><summary>barretenberg.js: 0.52.0</summary>

##
[0.52.0](barretenberg.js-v0.51.1...barretenberg.js-v0.52.0)
(2024-09-01)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-packages: 0.52.0</summary>

##
[0.52.0](aztec-packages-v0.51.1...aztec-packages-v0.52.0)
(2024-09-01)


### ⚠ BREAKING CHANGES

* Check unused generics are bound
(noir-lang/noir#5840)

### Features

* Add `Expr::as_assert` (noir-lang/noir#5857)
([cf5b667](cf5b667))
* Add `Expr::resolve` and `TypedExpr::as_function_definition`
(noir-lang/noir#5859)
([cf5b667](cf5b667))
* Add `FunctionDef::body` (noir-lang/noir#5825)
([cf5b667](cf5b667))
* Add `FunctionDef::has_named_attribute`
(noir-lang/noir#5870)
([cf5b667](cf5b667))
* Add `Type::as_string` (noir-lang/noir#5871)
([cf5b667](cf5b667))
* Clarify state in Protogalaxy 3
([#8181](#8181))
([4a9bb9d](4a9bb9d))
* LSP signature help for assert and assert_eq
(noir-lang/noir#5862)
([cf5b667](cf5b667))
* **meta:** Comptime keccak
(noir-lang/noir#5854)
([cf5b667](cf5b667))
* **optimization:** Avoid merging identical (by ID) arrays
(noir-lang/noir#5853)
([cf5b667](cf5b667))
* **perf:** Simplify poseidon2 cache zero-pad
(noir-lang/noir#5869)
([cf5b667](cf5b667))
* Populate epoch 0 from initial validator set
([#8286](#8286))
([cbdec54](cbdec54))
* Remove unnecessary copying of vector size during reversal
(noir-lang/noir#5852)
([cf5b667](cf5b667))
* Removing `is_dev_net` flag
([#8275](#8275))
([fc1f307](fc1f307))
* Show backtrace on comptime assertion failures
(noir-lang/noir#5842)
([cf5b667](cf5b667))
* Simplify constant calls to `poseidon2_permutation`, `schnorr_verify`
and `embedded_curve_add` (noir-lang/noir#5140)
([cf5b667](cf5b667))
* Sync from aztec-packages (noir-lang/noir#5790)
([cf5b667](cf5b667))
* Warn on unused imports (noir-lang/noir#5847)
([cf5b667](cf5b667))


### Bug Fixes

* Check unused generics are bound
(noir-lang/noir#5840)
([cf5b667](cf5b667))
* Enforce parity of sequencer tx validation and node tx validation
([#7951](#7951))
([c7eaf92](c7eaf92))
* Make simulations validate resulting tx by default
([#8157](#8157))
([f5e388d](f5e388d))
* **nargo:** Resolve Brillig assertion payloads
(noir-lang/noir#5872)
([cf5b667](cf5b667))
* Prevent honk proof from getting stale inputs on syncs
([#8293](#8293))
([2598108](2598108))
* Remove fee juice mint public
([#8260](#8260))
([2395af3](2395af3))
* **sha256:** Add extra checks against message size when constructing
msg blocks (noir-lang/noir#5861)
([cf5b667](cf5b667))
* **sha256:** Fix upper bound when building msg block and delay final
block compression under certain cases
(noir-lang/noir#5838)
([cf5b667](cf5b667))
* **sha256:** Perform compression per block and utilize ROM instead of
RAM when setting up the message block
(noir-lang/noir#5760)
([cf5b667](cf5b667))


### Miscellaneous

* Add documentation to `to_be_bytes`, etc.
(noir-lang/noir#5843)
([cf5b667](cf5b667))
* Add missing cases to arithmetic generics
(noir-lang/noir#5841)
([cf5b667](cf5b667))
* Add test to reproduce
[#8306](#8306)
([41d418c](41d418c))
* Alert slack on Sepolia test
([#8263](#8263))
([6194b94](6194b94))
* **bb:** Make compile on stock mac clang
([#8278](#8278))
([7af80ff](7af80ff))
* **bb:** More graceful pippenger on non-powers-of-2
([#8279](#8279))
([104ea85](104ea85))
* Bump noir-bignum to 0.3.2
([#8276](#8276))
([4c6fe1a](4c6fe1a))
* **ci:** Try to debug 'command brotli not found'
([#8305](#8305))
([9ee8dd6](9ee8dd6))
* Don't require empty `Prover.toml` for programs with zero arguments but
a return value (noir-lang/noir#5845)
([cf5b667](cf5b667))
* Fix a bunch of generics issues in aztec-nr
([#8295](#8295))
([6e84970](6e84970))
* Fix more issues with generics
([#8302](#8302))
([4e2ce80](4e2ce80))
* Fix warnings in `avm-transpiler`
([#8307](#8307))
([359fe05](359fe05))
* Introduce the Visitor pattern
(noir-lang/noir#5868)
([cf5b667](cf5b667))
* **perf:** Simplify poseidon2 algorithm
(noir-lang/noir#5811)
([cf5b667](cf5b667))
* **perf:** Update to stdlib keccak for reduced Brillig code size
(noir-lang/noir#5827)
([cf5b667](cf5b667))
* Redo typo PR by nnsW3 (noir-lang/noir#5834)
([cf5b667](cf5b667))
* Renaming around Protogalaxy Prover
([#8272](#8272))
([be2169d](be2169d))
* Replace relative paths to noir-protocol-circuits
([56e3fbf](56e3fbf))
* Replace relative paths to noir-protocol-circuits
([1b245c4](1b245c4))
* Replace relative paths to noir-protocol-circuits
([9c3bc43](9c3bc43))
* **revert:** Earthfile accidental change
([#8309](#8309))
([2d3e0b6](2d3e0b6))
* Underconstrained check in parallel
(noir-lang/noir#5848)
([cf5b667](cf5b667))


### Documentation

* **bb:** Transcript spec
([#8301](#8301))
([18abf37](18abf37))
</details>

<details><summary>barretenberg: 0.52.0</summary>

##
[0.52.0](barretenberg-v0.51.1...barretenberg-v0.52.0)
(2024-09-01)


### Features

* Clarify state in Protogalaxy 3
([#8181](#8181))
([4a9bb9d](4a9bb9d))


### Bug Fixes

* Prevent honk proof from getting stale inputs on syncs
([#8293](#8293))
([2598108](2598108))


### Miscellaneous

* **bb:** Make compile on stock mac clang
([#8278](#8278))
([7af80ff](7af80ff))
* **bb:** More graceful pippenger on non-powers-of-2
([#8279](#8279))
([104ea85](104ea85))
* Renaming around Protogalaxy Prover
([#8272](#8272))
([be2169d](be2169d))
* **revert:** Earthfile accidental change
([#8309](#8309))
([2d3e0b6](2d3e0b6))


### Documentation

* **bb:** Transcript spec
([#8301](#8301))
([18abf37](18abf37))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Sep 3, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.52.0</summary>

##
[0.52.0](AztecProtocol/aztec-packages@aztec-package-v0.51.1...aztec-package-v0.52.0)
(2024-09-01)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

<details><summary>barretenberg.js: 0.52.0</summary>

##
[0.52.0](AztecProtocol/aztec-packages@barretenberg.js-v0.51.1...barretenberg.js-v0.52.0)
(2024-09-01)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-packages: 0.52.0</summary>

##
[0.52.0](AztecProtocol/aztec-packages@aztec-packages-v0.51.1...aztec-packages-v0.52.0)
(2024-09-01)


### ⚠ BREAKING CHANGES

* Check unused generics are bound
(noir-lang/noir#5840)

### Features

* Add `Expr::as_assert` (noir-lang/noir#5857)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Add `Expr::resolve` and `TypedExpr::as_function_definition`
(noir-lang/noir#5859)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Add `FunctionDef::body` (noir-lang/noir#5825)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Add `FunctionDef::has_named_attribute`
(noir-lang/noir#5870)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Add `Type::as_string` (noir-lang/noir#5871)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Clarify state in Protogalaxy 3
([#8181](AztecProtocol/aztec-packages#8181))
([4a9bb9d](AztecProtocol/aztec-packages@4a9bb9d))
* LSP signature help for assert and assert_eq
(noir-lang/noir#5862)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* **meta:** Comptime keccak
(noir-lang/noir#5854)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* **optimization:** Avoid merging identical (by ID) arrays
(noir-lang/noir#5853)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* **perf:** Simplify poseidon2 cache zero-pad
(noir-lang/noir#5869)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Populate epoch 0 from initial validator set
([#8286](AztecProtocol/aztec-packages#8286))
([cbdec54](AztecProtocol/aztec-packages@cbdec54))
* Remove unnecessary copying of vector size during reversal
(noir-lang/noir#5852)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Removing `is_dev_net` flag
([#8275](AztecProtocol/aztec-packages#8275))
([fc1f307](AztecProtocol/aztec-packages@fc1f307))
* Show backtrace on comptime assertion failures
(noir-lang/noir#5842)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Simplify constant calls to `poseidon2_permutation`, `schnorr_verify`
and `embedded_curve_add` (noir-lang/noir#5140)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Sync from aztec-packages (noir-lang/noir#5790)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Warn on unused imports (noir-lang/noir#5847)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))


### Bug Fixes

* Check unused generics are bound
(noir-lang/noir#5840)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Enforce parity of sequencer tx validation and node tx validation
([#7951](AztecProtocol/aztec-packages#7951))
([c7eaf92](AztecProtocol/aztec-packages@c7eaf92))
* Make simulations validate resulting tx by default
([#8157](AztecProtocol/aztec-packages#8157))
([f5e388d](AztecProtocol/aztec-packages@f5e388d))
* **nargo:** Resolve Brillig assertion payloads
(noir-lang/noir#5872)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Prevent honk proof from getting stale inputs on syncs
([#8293](AztecProtocol/aztec-packages#8293))
([2598108](AztecProtocol/aztec-packages@2598108))
* Remove fee juice mint public
([#8260](AztecProtocol/aztec-packages#8260))
([2395af3](AztecProtocol/aztec-packages@2395af3))
* **sha256:** Add extra checks against message size when constructing
msg blocks (noir-lang/noir#5861)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* **sha256:** Fix upper bound when building msg block and delay final
block compression under certain cases
(noir-lang/noir#5838)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* **sha256:** Perform compression per block and utilize ROM instead of
RAM when setting up the message block
(noir-lang/noir#5760)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))


### Miscellaneous

* Add documentation to `to_be_bytes`, etc.
(noir-lang/noir#5843)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Add missing cases to arithmetic generics
(noir-lang/noir#5841)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Add test to reproduce
[#8306](AztecProtocol/aztec-packages#8306)
([41d418c](AztecProtocol/aztec-packages@41d418c))
* Alert slack on Sepolia test
([#8263](AztecProtocol/aztec-packages#8263))
([6194b94](AztecProtocol/aztec-packages@6194b94))
* **bb:** Make compile on stock mac clang
([#8278](AztecProtocol/aztec-packages#8278))
([7af80ff](AztecProtocol/aztec-packages@7af80ff))
* **bb:** More graceful pippenger on non-powers-of-2
([#8279](AztecProtocol/aztec-packages#8279))
([104ea85](AztecProtocol/aztec-packages@104ea85))
* Bump noir-bignum to 0.3.2
([#8276](AztecProtocol/aztec-packages#8276))
([4c6fe1a](AztecProtocol/aztec-packages@4c6fe1a))
* **ci:** Try to debug 'command brotli not found'
([#8305](AztecProtocol/aztec-packages#8305))
([9ee8dd6](AztecProtocol/aztec-packages@9ee8dd6))
* Don't require empty `Prover.toml` for programs with zero arguments but
a return value (noir-lang/noir#5845)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Fix a bunch of generics issues in aztec-nr
([#8295](AztecProtocol/aztec-packages#8295))
([6e84970](AztecProtocol/aztec-packages@6e84970))
* Fix more issues with generics
([#8302](AztecProtocol/aztec-packages#8302))
([4e2ce80](AztecProtocol/aztec-packages@4e2ce80))
* Fix warnings in `avm-transpiler`
([#8307](AztecProtocol/aztec-packages#8307))
([359fe05](AztecProtocol/aztec-packages@359fe05))
* Introduce the Visitor pattern
(noir-lang/noir#5868)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* **perf:** Simplify poseidon2 algorithm
(noir-lang/noir#5811)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* **perf:** Update to stdlib keccak for reduced Brillig code size
(noir-lang/noir#5827)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Redo typo PR by nnsW3 (noir-lang/noir#5834)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))
* Renaming around Protogalaxy Prover
([#8272](AztecProtocol/aztec-packages#8272))
([be2169d](AztecProtocol/aztec-packages@be2169d))
* Replace relative paths to noir-protocol-circuits
([56e3fbf](AztecProtocol/aztec-packages@56e3fbf))
* Replace relative paths to noir-protocol-circuits
([1b245c4](AztecProtocol/aztec-packages@1b245c4))
* Replace relative paths to noir-protocol-circuits
([9c3bc43](AztecProtocol/aztec-packages@9c3bc43))
* **revert:** Earthfile accidental change
([#8309](AztecProtocol/aztec-packages#8309))
([2d3e0b6](AztecProtocol/aztec-packages@2d3e0b6))
* Underconstrained check in parallel
(noir-lang/noir#5848)
([cf5b667](AztecProtocol/aztec-packages@cf5b667))


### Documentation

* **bb:** Transcript spec
([#8301](AztecProtocol/aztec-packages#8301))
([18abf37](AztecProtocol/aztec-packages@18abf37))
</details>

<details><summary>barretenberg: 0.52.0</summary>

##
[0.52.0](AztecProtocol/aztec-packages@barretenberg-v0.51.1...barretenberg-v0.52.0)
(2024-09-01)


### Features

* Clarify state in Protogalaxy 3
([#8181](AztecProtocol/aztec-packages#8181))
([4a9bb9d](AztecProtocol/aztec-packages@4a9bb9d))


### Bug Fixes

* Prevent honk proof from getting stale inputs on syncs
([#8293](AztecProtocol/aztec-packages#8293))
([2598108](AztecProtocol/aztec-packages@2598108))


### Miscellaneous

* **bb:** Make compile on stock mac clang
([#8278](AztecProtocol/aztec-packages#8278))
([7af80ff](AztecProtocol/aztec-packages@7af80ff))
* **bb:** More graceful pippenger on non-powers-of-2
([#8279](AztecProtocol/aztec-packages#8279))
([104ea85](AztecProtocol/aztec-packages@104ea85))
* Renaming around Protogalaxy Prover
([#8272](AztecProtocol/aztec-packages#8272))
([be2169d](AztecProtocol/aztec-packages@be2169d))
* **revert:** Earthfile accidental change
([#8309](AztecProtocol/aztec-packages#8309))
([2d3e0b6](AztecProtocol/aztec-packages@2d3e0b6))


### Documentation

* **bb:** Transcript spec
([#8301](AztecProtocol/aztec-packages#8301))
([18abf37](AztecProtocol/aztec-packages@18abf37))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
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.

2 participants