All the packages that make up Aztec.
circuits
: C++ code for circuits and cryptographic functionsl1-contracts
: Solidity code for the Ethereum contracts that process rollupsyarn-project
: Typescript code for client and backend
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.
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 C++ code, make sure to fullfil the requirements from barretenberg, the underlying cryptographic library we maintain. To build Typescript code, make sure to have nvm
(node version manager) installed.
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.
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.
To contribute, make sure to pick an existing issue and assign yourself to it, or notify that you'll be working on it. If you're new to the repository, look for those tagged as good-first-issue
. Then send a pull request with your contribution, linking back to the issue it fixes.