Git Product home page Git Product logo

rlo5 / aztec-packages-aug23 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aztecprotocol/aztec-packages

0.0 0.0 0.0 126.17 MB

License: Apache License 2.0

Shell 1.68% JavaScript 0.22% C++ 78.47% Python 0.17% Perl 0.04% C 1.36% Rust 1.78% TypeScript 12.46% Nix 0.04% Makefile 0.05% HTML 0.17% CMake 0.72% Jupyter Notebook 0.05% Dockerfile 0.13% Roff 0.34% WebAssembly 0.01% Solidity 2.33%

aztec-packages-aug23's Introduction

Aztec Monorepo

All the packages that make up Aztec.

  • circuits: C++ code for circuits and cryptographic functions
  • l1-contracts: Solidity code for the Ethereum contracts that process rollups
  • yarn-project: Typescript code for client and backend

Issues Board

All issues being worked on are tracked on the Aztec Github Project. For a higher-level roadmap, check the milestones overview section of our docs.

Development Setup

Run bootstrap.sh in the project root to set up your environment. This will update git submodules, download ignition transcripts, build all C++ circuits code, install Foundry, compile Solidity contracts, install the current node version via nvm, and build all typescript packages.

To build the C++ code, follow the instructions in the circuits subdirectory, which contains all of the ZK circuit logic for Aztec. Note that "barretenberg", Aztec's underlying cryptographic library, can be found inside the circuits subdirectory as well and is automatically built as a side effect of building the circuits.

To build Typescript code, make sure to have nvm (node version manager) installed.

To build noir code, make sure that you are using the aztec tagged version of nargo. This is the latest pin version the team works on to ensure local and ci environments are in sync. This should be installed through noir-contracts/bootstrap.sh and the regular bootstrap.sh script. However if you find yourself wanting to update to the latest aztec tag outside of these channels, you can run noirup -v aztec to manually download the latest binaries.

Continuous Integration

This repository uses CircleCI for continuous integration. Build steps are managed using build-system. Small packages are built and tested as part of a docker build operation, while larger ones and end-to-end tests spin up a large AWS spot instance. Each successful build step creates a new docker image that gets tagged with the package name and commit.

All packages need to be included in the build manifest, which declares what paths belong to each package, as well as dependencies between packages. When the CI runs, if none of the rebuild patterns or dependencies were changed, then the build step is skipped and the last successful image is re-tagged with the current commit. Read more on the build-system repository README.

Debugging

Logging goes through the info and debug functions in C++, and through the DebugLogger module in Typescript. To see the log output, set a DEBUG environment variable to the name of the module you want to debug, to aztec:*, or to * to see all logs.

Releases

Releases are driven by release-please, which maintains a 'Release PR' containing an updated CHANGELOG.md since the last release. Triggering a new release is simply a case of merging this PR to master. A github workflow will create the tagged release triggering CircleCI to build and deploy the version at that tag.

Contribute

There are many ways you can participate and help build high quality software. Check out the contribution guide!

aztec-packages-aug23's People

Contributors

charlielye avatar critesjosh avatar zac-williamson avatar spalladino avatar ludamad avatar benesjan avatar leilawang avatar suyash67 avatar dbanks12 avatar aztecbot avatar philwindle avatar iammichaelconnor avatar maddiaa0 avatar lherskind avatar rahul-kothari avatar arielgabizon avatar rumata888 avatar spypsy avatar ledwards2225 avatar kevaundray avatar codygunton avatar sirasistant avatar phated avatar jeanmon avatar jjwumaster avatar adr1anh avatar joeandrews avatar joss-aztec avatar savio-sou avatar thomas-waite avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.