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

Latest update #3

Merged
merged 37 commits into from
Dec 14, 2023
Merged

Latest update #3

merged 37 commits into from
Dec 14, 2023

Conversation

Okm165
Copy link
Member

@Okm165 Okm165 commented Dec 14, 2023

Please provide a paragraph or two giving a summary of the change, including relevant motivation and context.

Checklist:

Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

  • If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
  • I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
  • Every change is related to the PR description.
  • I have linked this pull request to relevant issues (if any exist).

Rumata888 and others added 30 commits December 7, 2023 00:08
…l#3428)

Introduces a relation for constructing generic permutations that needs
to be templated for PIL for AVM.
Renames lookup_library to logderivative_library
subrepo:
  subdir:   "build-system"
  merged:   "4e1ea3fc2"
upstream:
  origin:   "https://github.com/AztecProtocol/build-system"
  branch:   "master"
  commit:   "4e1ea3fc2"
git-subrepo:
  version:  "0.4.6"
  origin:   "???"
  commit:   "???" [skip ci]
subrepo:
  subdir:   "barretenberg"
  merged:   "4e4634542"
upstream:
  origin:   "https://github.com/AztecProtocol/barretenberg"
  branch:   "master"
  commit:   "4e4634542"
git-subrepo:
  version:  "0.4.6"
  origin:   "???"
  commit:   "???" [skip ci]
subrepo:
  subdir:   "yarn-project/aztec-nr"
  merged:   "4e873ce0d"
upstream:
  origin:   "https://github.com/AztecProtocol/aztec-nr"
  branch:   "master"
  commit:   "4e873ce0d"
git-subrepo:
  version:  "0.4.6"
  origin:   "???"
  commit:   "???" [skip ci]
The avm mini now serves as a good enough example to tests the pil
pipeline stability.

There is no need for dragging along fib
Adding `ARG COMMIT_TAG=` to cli & sandbox Dockerfiles so they're picked
up by `check_rebuild` on releases.
…leanup (AztecProtocol#3523)

[See preview
here](https://aztec-packages.vercel.app/docs/public-vm/state-model#types-and-tagged-memory)

- Reworded and cleaned up tagged memory doc, merged it into state model
doc
- Moved random short section on VM security into a separate file
- Made bit-format images opaque
- Did some renaming (in-tag, dst-tag)
- Moved image files to simpler paths
- Misc other cleanup
This PR includes

- Recursive merge verifier implementation and independent test
- Incorporation of recursive merge verification into
`Goblin::accumulate` (and therefore into the full goblin recursion
tests).
- Verification of the final ultra and merge proofs in goblin recursion
tests
- Addition of direct constructors of Ultra and Merge verifiers from
minimal inputs - no composer required

Closes AztecProtocol/barretenberg#797
Look at the diff, then consider this code
```
#include <iostream>
#include <concepts>

class Uint256_t {
public:
    // Conversion operator (explicit)
    template <std::integral T>
    explicit operator T() const {
        std::cout << "Uint256_t conversion operator called\n";
        return static_cast<T>(data[0]);
    }
    int data[4] = {0,0,0,0};
};

class Field {
public:
    Field() {}
    // Constructor that takes a Uint256_t
    Field(int x) {
        std::cout << "This is silly!!!!" << std::endl;
    }
    Field(const Uint256_t& input) {
        (void)input;
        std::cout << "Field constructor called\n";
        // Additional initialization code here
    }
};

class Toot {
    public:
    Toot(Field f) {
          (void)f;
    }
};

int main() {
    Uint256_t uint256_value;
    Field x = uint256_value;
    Toot t{uint256_value};

    return 0;
}
```

With std::integral concept on the cast:

```
Field constructor called
Field constructor called
```


but without! which was caught in practice passing a uint256 to
FieldSponge

```
Field constructor called
Uint256_t conversion operator called
This is silly!!!!
```

This truncated the field mysteriously! Open-ended implicit conversions
are dangerous

---------

Co-authored-by: ludamad <adam@aztecprotocol.com>
…ial (AztecProtocol#3626)

This PR includes some edits to the token contract tutorial, to keep the
text consistent with the referenced source code.

# Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if
the PR is ready to merge.
- [ ] If the pull request requires a cryptography review (e.g.
cryptographic algorithm implementations) I have added the 'crypto' tag.
- [x] I have reviewed my diff in github, line by line and removed
unexpected formatting changes, testing logs, or commented-out code.
- [x] Every change is related to the PR description.
- [ ] I have
[linked](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
this pull request to relevant issues (if any exist).
…Protocol#3419)

Closes AztecProtocol/barretenberg#781 
Closes AztecProtocol/barretenberg#689 
Closes AztecProtocol/barretenberg#690
Closes AztecProtocol/barretenberg#802

This PR provides the first full version of folding prover and verifiers
for Ultra instances and provides the first full folding test. The
protogalaxy interfaces have been slightly reworked so the prover now
returns a complete new relaxed `Instance` and a folding proof. While the
verifier receives the folding proof and returns a boolean dependent on
whether the pubic data from the relaxed instance, sent by the prover, is
the same as the data computed by the folding verifier.
…t too early (AztecProtocol#3629)

Related to this issue:
AztecProtocol#3618
Gets `aztec-cli help` down to 0.01s!!!!
* Make `aztec-sandbox` properly clean up after itself.
* Fix compose file to actually use arguments and not spraff warnings.
* Always mount home dir into containers, nothing else.
* Fix build system r.e. multiarch success tags.
* Fix lying default cli comment.
* Convert all bash shebang lines to use bash from PATH rather than
/usr/bin. Some scripts need bash 4 or above which requires a brew
install on mac.
* Convert noir and downstream containers to be ubuntu, from alpine:
  * Still need to do several others e.g. bb.
  * Alpine has given us several issue, weird threading slowdowns in bb.
  * 10x worse performance in nargo.
  * Slower startup times in node.
* Enough is enough! We can now have a unified development and execution
environment. Lovely.
subrepo:
  subdir:   "build-system"
  merged:   "1f7b38d90"
upstream:
  origin:   "https://github.com/AztecProtocol/build-system"
  branch:   "master"
  commit:   "1f7b38d90"
git-subrepo:
  version:  "0.4.6"
  origin:   "???"
  commit:   "???" [skip ci]
subrepo:
  subdir:   "barretenberg"
  merged:   "86e6d6f1e"
upstream:
  origin:   "https://github.com/AztecProtocol/barretenberg"
  branch:   "master"
  commit:   "86e6d6f1e"
git-subrepo:
  version:  "0.4.6"
  origin:   "???"
  commit:   "???" [skip ci]
subrepo:
  subdir:   "yarn-project/aztec-nr"
  merged:   "a3aa6bd5d"
upstream:
  origin:   "https://github.com/AztecProtocol/aztec-nr"
  branch:   "master"
  commit:   "a3aa6bd5d"
git-subrepo:
  version:  "0.4.6"
  origin:   "???"
  commit:   "???" [skip ci]
…col#3649)

Fix a part of the problem highlighted by AztecProtocol#3630 

Also created 
* noir-lang/noir#3768
* [Discussion to see why we prioritise Aztec-nr issues over noir syntax
issues. E.g. if we have storage and a syntax error in a method, instead
of showinf the syntax error, we say "no
compute_note_hash_and_nullifier()
found"](https://aztecprotocol.slack.com/archives/C03P17YHVK8/p1702312023384759)
This PR cherry-picks some of the changes from AztecProtocol#3567

1. It no longer fails if it doesn't detect package.json. So it can now
be used to update contracts on their own aztec-cli update --contract
path/to/some/folder
2. Instead of looking for the latest @aztec/aztec-sandbox, it now looks
for the latest @aztec/aztec.js.
3. Prints a reminder to the user to update Docker containers and links
to update instructions.
Please provide a paragraph or two giving a summary of the change,
including relevant motivation and context.

# Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if
the PR is ready to merge.
- [ ] If the pull request requires a cryptography review (e.g.
cryptographic algorithm implementations) I have added the 'crypto' tag.
- [ ] I have reviewed my diff in github, line by line and removed
unexpected formatting changes, testing logs, or commented-out code.
- [ ] Every change is related to the PR description.
- [ ] I have
[linked](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
this pull request to relevant issues (if any exist).

Co-authored-by: PhilWindle <60546371+PhilWindle@users.noreply.github.com>
This work removes all reference data members from the circuit builders
so that they can be default copy constructed.
…rotocol#3661)

* LSP couldn't work in docker due to `ClientProcessMonitor` thing which
needs to be able to see the pid of vscode, in order to exit when vscode
is not there. Not quite sure why it's needed as vscode launches the
process, so the process terminates on vscode exit anyway.
* Mount HOME at HOME rather than /root.
* Fix conditional.
* Disable annoying CLI hints on windows docker.
* Wrap nargo launcher in `tini` as it doesn't handle signals as
expected.
* Allow for debug builds of noir via script using env var.
This PR contains an updated fees spec in the yellow paper.

# Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if
the PR is ready to merge.
- [ ] If the pull request requires a cryptography review (e.g.
cryptographic algorithm implementations) I have added the 'crypto' tag.
- [ ] I have reviewed my diff in github, line by line and removed
unexpected formatting changes, testing logs, or commented-out code.
- [ ] Every change is related to the PR description.
- [ ] I have
[linked](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
this pull request to relevant issues (if any exist).
In this PR I enable nullifier tree snapshot and I use that in the
inclusion proofs test.
This PR reduces the redundant logging in the archiver.

# Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if
the PR is ready to merge.
- [ ] If the pull request requires a cryptography review (e.g.
cryptographic algorithm implementations) I have added the 'crypto' tag.
- [ ] I have reviewed my diff in github, line by line and removed
unexpected formatting changes, testing logs, or commented-out code.
- [ ] Every change is related to the PR description.
- [ ] I have
[linked](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
this pull request to relevant issues (if any exist).
spypsy and others added 7 commits December 13, 2023 13:06
…ol#3610)

- Combine all release / deploy jobs into 1 to simplify CI
- Add canary flow that tests NPM releases are working before tagging
them as `latest`
- remove old canary code
- add `DRY_DEPLOY` functionality to terraform script (`terraform plan`)

Closes AztecProtocol#3563 
Closes AztecProtocol#3579
This PR adds a persistent database to PXE. I've created a new package in
the monorepo called `@aztec/kv-store` which exports a set of general
data structures that can be used by components to store state in
consistent manner. The only implementation right now is with LMDB (both
persisted on disk and in-memory/temporary file).

This higher level abstraction allowed me to easily add storage to ~PXE's
note processors, its synchronizer and~ the key store too.

Fix AztecProtocol#3364 

Changes to the synchronizer and note processors have been taken out and
will be merged in a separate PR (as part of AztecProtocol#3570) because it will
require some changes to the benchmarking code.

Synch changes here AztecProtocol#3673
🤖 I have created a release *beep* *boop*
---


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

##
[0.16.8](AztecProtocol/aztec-packages@aztec-packages-v0.16.7...aztec-packages-v0.16.8)
(2023-12-13)


### Features

* Block header block number oracle
([AztecProtocol#3648](AztecProtocol#3648))
([ac1edc1](AztecProtocol@ac1edc1))
* Complete folding prover and verifier for ultra instances
([AztecProtocol#3419](AztecProtocol#3419))
([bb86ce9](AztecProtocol@bb86ce9))
* Copy constructors for builders
([AztecProtocol#3635](AztecProtocol#3635))
([b82b0c5](AztecProtocol@b82b0c5))
* Enabling nullifier tree snapshot
([AztecProtocol#3670](AztecProtocol#3670))
([b47d49d](AztecProtocol@b47d49d))
* Libraryfying historic access
([AztecProtocol#3658](AztecProtocol#3658))
([6877ca1](AztecProtocol@6877ca1))
* Log-derivative based generic permutations for AVM
([AztecProtocol#3428](AztecProtocol#3428))
([379b5ad](AztecProtocol@379b5ad))
* Merge recursive verifier
([AztecProtocol#3588](AztecProtocol#3588))
([cdd9259](AztecProtocol@cdd9259))
* New install script and container wrappers.
([AztecProtocol#3617](AztecProtocol#3617))
([c7f1878](AztecProtocol@c7f1878))
* Persist pxe state
([AztecProtocol#3628](AztecProtocol#3628))
([9ccbbd9](AztecProtocol@9ccbbd9))
* Update command handles Dockerized sandbox
([AztecProtocol#3656](AztecProtocol#3656))
([7c85750](AztecProtocol@7c85750))


### Bug Fixes

* Aztec sandbox compose fixes
([AztecProtocol#3634](AztecProtocol#3634))
([765a19c](AztecProtocol@765a19c))
* Broken uint256_t implicit copy
([AztecProtocol#3625](AztecProtocol#3625))
([1a6b44d](AztecProtocol@1a6b44d))
* **ci:** Rebuild versioned cli / sandbox images
([AztecProtocol#3613](AztecProtocol#3613))
([6a53fbc](AztecProtocol@6a53fbc))
* Make lsp work in docker, plus some other install tweaks.
([AztecProtocol#3661](AztecProtocol#3661))
([53eb54f](AztecProtocol@53eb54f))
* **noir-compiler:** Compile time error if ctor is missing
([AztecProtocol#3649](AztecProtocol#3649))
([12249bf](AztecProtocol@12249bf))
* Sandbox node mode api prefix
([AztecProtocol#3662](AztecProtocol#3662))
([fd6eefe](AztecProtocol@fd6eefe))
* Top level init bb.js, but better scoped imports to not incur cost too
early
([AztecProtocol#3629](AztecProtocol#3629))
([cea862d](AztecProtocol@cea862d))


### Miscellaneous

* **ci:** Combine deploy / release jobs + canary update
([AztecProtocol#3610](AztecProtocol#3610))
([0888c05](AztecProtocol@0888c05)),
closes
[AztecProtocol#3579](AztecProtocol#3579)
* **docs:** Update implementation references in token contract tutorial
([AztecProtocol#3626](AztecProtocol#3626))
([a2cee4f](AztecProtocol@a2cee4f))
* Nuke fib
([AztecProtocol#3607](AztecProtocol#3607))
([48e2e3d](AztecProtocol@48e2e3d))
* Reduced spam logging in archiver
([AztecProtocol#3671](AztecProtocol#3671))
([e749daa](AztecProtocol@e749daa))
* Run the protocol circuits noir tests in CI
([AztecProtocol#3660](AztecProtocol#3660))
([383e123](AztecProtocol@383e123)),
closes
[AztecProtocol#3205](AztecProtocol#3205)


### Documentation

* Updated yellow paper for fees
([AztecProtocol#3659](AztecProtocol#3659))
([5513624](AztecProtocol@5513624))
* **yellowpaper:** Rewrite section on tagged memory, misc
rewording/cleanup
([AztecProtocol#3523](AztecProtocol#3523))
([fe849e3](AztecProtocol@fe849e3))
* **yellowpaper:** Update `cast` instruction description with truncation
operation
([AztecProtocol#3621](AztecProtocol#3621))
([2cede41](AztecProtocol@2cede41))
</details>

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

##
[0.16.8](AztecProtocol/aztec-packages@barretenberg.js-v0.16.7...barretenberg.js-v0.16.8)
(2023-12-13)


### Bug Fixes

* Aztec sandbox compose fixes
([AztecProtocol#3634](AztecProtocol#3634))
([765a19c](AztecProtocol@765a19c))
* Top level init bb.js, but better scoped imports to not incur cost too
early
([AztecProtocol#3629](AztecProtocol#3629))
([cea862d](AztecProtocol@cea862d))
</details>

<details><summary>barretenberg: 0.16.8</summary>

##
[0.16.8](AztecProtocol/aztec-packages@barretenberg-v0.16.7...barretenberg-v0.16.8)
(2023-12-13)


### Features

* Complete folding prover and verifier for ultra instances
([AztecProtocol#3419](AztecProtocol#3419))
([bb86ce9](AztecProtocol@bb86ce9))
* Copy constructors for builders
([AztecProtocol#3635](AztecProtocol#3635))
([b82b0c5](AztecProtocol@b82b0c5))
* Log-derivative based generic permutations for AVM
([AztecProtocol#3428](AztecProtocol#3428))
([379b5ad](AztecProtocol@379b5ad))
* Merge recursive verifier
([AztecProtocol#3588](AztecProtocol#3588))
([cdd9259](AztecProtocol@cdd9259))


### Bug Fixes

* Aztec sandbox compose fixes
([AztecProtocol#3634](AztecProtocol#3634))
([765a19c](AztecProtocol@765a19c))
* Broken uint256_t implicit copy
([AztecProtocol#3625](AztecProtocol#3625))
([1a6b44d](AztecProtocol@1a6b44d))


### Miscellaneous

* Nuke fib
([AztecProtocol#3607](AztecProtocol#3607))
([48e2e3d](AztecProtocol@48e2e3d))
</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-packages: 0.16.9</summary>

##
[0.16.9](AztecProtocol/aztec-packages@aztec-packages-v0.16.8...aztec-packages-v0.16.9)
(2023-12-13)


### Bug Fixes

* **ci:** Deploy_npm script
([AztecProtocol#3678](AztecProtocol#3678))
([9d7c58d](AztecProtocol@9d7c58d))
</details>

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

##
[0.16.9](AztecProtocol/aztec-packages@barretenberg.js-v0.16.8...barretenberg.js-v0.16.9)
(2023-12-13)


### Miscellaneous

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

<details><summary>barretenberg: 0.16.9</summary>

##
[0.16.9](AztecProtocol/aztec-packages@barretenberg-v0.16.8...barretenberg-v0.16.9)
(2023-12-13)


### Miscellaneous

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

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
@Okm165 Okm165 merged commit ff8f63d into latest Dec 14, 2023
2 checks passed
michaelelliot pushed a commit to Swoir/noir_rs that referenced this pull request Feb 28, 2024
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.