Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
5e4970b
feat: detect announce IP changes automatically
spypsy Mar 16, 2026
072c025
fix mocks
spypsy Mar 17, 2026
ec54d3b
Merge branch 'merge-train/spartan' into spy/p2p-ip-refresh
spypsy Mar 18, 2026
dd0c5f8
addtests
spypsy Mar 18, 2026
8f0d87e
minor fixes
spypsy Mar 18, 2026
1943878
Merge branch 'merge-train/spartan' into spy/p2p-ip-refresh
spypsy Mar 18, 2026
66c6ede
use local discoveredIp var
spypsy Mar 20, 2026
d0fc751
update tests
spypsy Mar 20, 2026
1b635f5
chore: deflake n_tps benchmark for LOW_VALUE_TPS=2 (#21578)
mrzeszutko Mar 23, 2026
b0f1b85
fix: explicitly handle initial block case for getBlockHashMembershipW…
mverzilli Mar 23, 2026
2343ec8
fix(aztec-up): narrow PATH cleanup regex to avoid removing user PATH …
nchamo Mar 23, 2026
1b57402
fix(sequencer): use wall-clock timestamp for simulation when pipelini…
AztecBot Mar 23, 2026
5c51ac3
fix: use anchor block on getL1ToL2MsgWitness (#21872)
nventuro Mar 23, 2026
b325b43
fix: make sure queries are not made ahead of the anchor block (#21874)
nventuro Mar 23, 2026
32a5796
fix(aztec-up): strip leading `v` prefix from version strings (#21813)
nchamo Mar 23, 2026
361b2fe
Merge branch 'next' into merge-train/fairies
Thunkar Mar 24, 2026
0c2cc9e
feat: merge-train/fairies (#21890)
AztecBot Mar 24, 2026
fad6d5c
fix: interactions clean up (#21933)
Thunkar Mar 24, 2026
46ede19
fix(stdlib): decode `EthAddress`, `FunctionSelector` and wrapped fiel…
benesjan Mar 24, 2026
cbea6bd
fix: disable caching of error responses (300-499) on R2 custom domain…
AztecBot Mar 24, 2026
35ac532
init
sklppy88 Mar 24, 2026
227895e
fix: correct LMDB has() logic inversion
AztecBot Mar 24, 2026
6b12e5e
fix: correct LMDB has() logic inversion (#21780)
PhilWindle Mar 24, 2026
04f7026
feat: detect announce IP changes automatically (#21606)
PhilWindle Mar 24, 2026
e81be61
wip
Thunkar Mar 24, 2026
81b641d
fix: bot gas estimations (#21945)
Thunkar Mar 24, 2026
e1ab32e
Merge branch 'merge-train/fairies' of github.com:AztecProtocol/aztec-…
Thunkar Mar 24, 2026
55a00be
fixes
Thunkar Mar 24, 2026
23eaeed
refactor(aztec-nr): use logging wrappers in compute_note_hash_and_nul…
nchamo Mar 24, 2026
403e8f7
feat: add error page mapping for incompatible oracles (#21943)
mverzilli Mar 24, 2026
c02d4a4
fix(pxe): robust error handling in message processing (#21093)
benesjan Mar 24, 2026
f00d2df
fix: make PXE#getSyncedBlockHeader a concurrency=1 job to prevent IDB…
mverzilli Mar 24, 2026
7026f9f
fix(aztec-up): validate semver in uninstall to prevent path traversal…
nchamo Mar 24, 2026
3d32a8f
fix(aztec-up): add truncation protection to install scripts (#21896)
nchamo Mar 24, 2026
0124f9b
fix: ensure empty docs packages `yarn.lock` files (#21940)
sklppy88 Mar 24, 2026
232f82d
feat: merge-train/barretenberg (#21924)
AztecBot Mar 24, 2026
f6bea80
fix: add missing default cases in treeId switch statements (#21942)
PhilWindle Mar 24, 2026
336256c
chore: disable blob file store on the archive node
alexghr Mar 24, 2026
7bb7e9e
chore: disable blob file store on the archive node (#21958)
alexghr Mar 24, 2026
60dba2a
feat: wire chonk proof compression through bbjs API for network seria…
AztecBot Mar 24, 2026
26108dc
fix: docs examples does not build on simple bootstrap
sklppy88 Mar 24, 2026
40e9705
fix: docs examples does not build on simple bootstrap (#21941)
sklppy88 Mar 24, 2026
a651f12
feat: wire chonk proof compression through bbjs API for network seria…
AztecBot Mar 24, 2026
61de64f
chore: mainnet env
alexghr Mar 24, 2026
a697806
fix: add pull-requests write permission to ci-external workflow
johnathan79717 Mar 24, 2026
5f02a05
fix: add rc/testnet version detection to API reference pages
critesjosh Mar 24, 2026
2613ec1
fix: add rc/testnet version detection to API reference pages (#21966)
critesjosh Mar 24, 2026
f49661e
fix: add pull-requests write permission to ci-external workflow (#21965)
ludamad Mar 24, 2026
e8c393d
Merge remote-tracking branch 'origin/next' into merge-train/spartan
PhilWindle Mar 24, 2026
b42c0ec
feat: merge-train/spartan (#21889)
AztecBot Mar 24, 2026
67baaf3
feat: merge-train/barretenberg (#21962)
AztecBot Mar 24, 2026
af20c18
fix: wallet-sdk iframe handler improvements
Thunkar Mar 24, 2026
b980dd1
comments
Thunkar Mar 24, 2026
7b9c52d
fix
Thunkar Mar 24, 2026
d46d672
feat(docs): add aave tutorial
sklppy88 Mar 24, 2026
35f54de
feat(docs): add aave tutorial (#21048)
AztecBot Mar 24, 2026
3d0045c
docs: document EmbeddedWallet automatic gas estimation and private au…
critesjosh Mar 25, 2026
18a3a7e
docs: document EmbeddedWallet automatic gas estimation and private au…
AztecBot Mar 25, 2026
410cd93
chore: pre-audit of AVM GetContractInstance gadget and opcode (#21684)
dbanks12 Mar 25, 2026
82beed0
fix: deploy-staging-public waits for any semver tag instead of releas…
AztecBot Mar 25, 2026
3029216
feat!: scoped capsules (#21533)
mverzilli Mar 25, 2026
9a0080c
feat: merge-train/fairies (#21936)
AztecBot Mar 25, 2026
dc6a69f
chore: mainnet env (#21961)
PhilWindle Mar 25, 2026
5d31ab1
refactor: address PR review comments - type predicate, Set-based trac…
AztecBot Mar 25, 2026
330f027
feat(aztec-nr): add initialization check to utility functions (#21751)
nchamo Mar 25, 2026
9cf41af
refactor(aztec-nr): remove storage from init_test_contract (#21996)
nchamo Mar 25, 2026
a252184
chore: Remove Noir builtin comptime mutable methods from macros
jfecher Mar 25, 2026
bfec44a
fix: cache uncompressed CRS after first decompression
johnathan79717 Mar 25, 2026
5de59a7
chore: Remove Noir builtin comptime mutable methods from macros (#21801)
vezenovm Mar 25, 2026
202efce
chore: remove claude file (#22012)
nchamo Mar 25, 2026
1aea63f
chore: disable flaky docs/examples execute test
johnathan79717 Mar 25, 2026
228f4c0
chore: disable flaky docs/examples execute test (#22013)
AztecBot Mar 25, 2026
9fc5ddd
fix: cache uncompressed CRS after first decompression (#22002)
johnathan79717 Mar 25, 2026
31782b8
chore: re-enable docs/examples execute test, disable only aave_bridge
critesjosh Mar 25, 2026
b0090ff
refactor!: more consistent oracle names (#22018)
mverzilli Mar 25, 2026
1c74bf6
feat(aztec-nr)!: app-silo getSharedSecret oracle (#22020)
nchamo Mar 25, 2026
0097d11
fix: disallow infinite pubkeys (#22026)
nventuro Mar 25, 2026
2d9fd01
feat: aztecnr log prefixing (#22027)
nventuro Mar 25, 2026
ecd12c5
fix: deploy-staging-public waits for any semver tag instead of releas…
PhilWindle Mar 25, 2026
8c88e11
feat(aztec-nr)!: domain-separated tags on log emission (#21910)
nchamo Mar 26, 2026
93d06d5
feat: merge-train/fairies (#21994)
benesjan Mar 26, 2026
f1be5f5
chore: re-enable docs/examples execute test, disable only aave_bridge…
critesjosh Mar 26, 2026
823c5c9
feat: iframe wallets sdk (#21978)
Thunkar Mar 26, 2026
dc60288
Merge branch 'next' into merge-train/avm
Mar 26, 2026
8acb1c5
fix(spartan): add preStartScript to blob-sink to fetch bootstrap nodes
alexghr Mar 26, 2026
b5f7209
feat: merge-train/avm (#21982)
AztecBot Mar 26, 2026
1fc9801
fix(spartan): add preStartScript to blob-sink to fetch bootstrap node…
alexghr Mar 26, 2026
d667bde
Merge remote-tracking branch 'origin/next' into jh/merge-next-to-barr…
johnathan79717 Mar 26, 2026
c9a7a58
fix: use get_bn254_g1_data in crs_factory test and add bb-crs dep to …
johnathan79717 Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion .claude/agents/network-logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,31 @@ You can read this output directly — no parsing needed.
--format='table[no-heading](timestamp, resource.labels.pod_name, jsonPayload.message.slice(0,150))'
```

## Cluster Mapping

Aztec runs two GKE clusters:

| Cluster | Aztec namespaces |
|---------|-----------------|
| `aztec-gke-private` | `mainnet` (ignition — active), `next-net`, `staging-ignition`, `staging-public`, and various test/scenario namespaces |
| `aztec-gke-public` | `mainnet` (public — currently in standby), `testnet`, and other public-facing infrastructure |

**Important: `mainnet` exists in BOTH clusters.**
- The **private** cluster's `mainnet` runs the **ignition** network (active, fisherman mode).
- The **public** cluster's `mainnet` is the next rollup upgrade (currently in standby, waiting for L1 contract alignment). It also runs in fisherman mode.

When querying `mainnet`, you MUST include a `resource.labels.cluster_name` filter to disambiguate:
- If the user says "mainnet" without qualification, query the **private** cluster (ignition) by default — it's the active one.
- If the user says "mainnet public", "public cluster mainnet", or "mainnet on public", query the **public** cluster.
- If uncertain, query **both** clusters in parallel and report results separately.

For all other namespaces, the cluster filter is optional but recommended for clarity.

## GCP Log Structure

Aztec network logs use:
- `resource.type="k8s_container"`
- `resource.labels.cluster_name` — the GKE cluster (`aztec-gke-private` or `aztec-gke-public`)
- `resource.labels.namespace_name` — the deployment namespace
- `resource.labels.pod_name` — the specific pod
- `resource.labels.container_name` — usually `aztec`
Expand All @@ -92,7 +113,7 @@ Pods follow the pattern `{namespace}-{component}-{index}`:
## Deployment-Specific Notes

- **next-net** redeploys every morning at ~4am UTC. Always use timestamp range filters (not `--freshness`) when querying next-net for a specific date, and expect logs to only cover a single instance of the network. Because next-net resets daily, its block height should start near 0 after ~4am UTC. If you are running a morning healthcheck and the block height is unexpectedly large (e.g., hundreds or thousands), flag this as an error — it likely means the nightly redeploy failed and the network is running a stale instance.
- **mainnet** does not run sequencer validators. Instead, it runs infrastructure in **fisherman mode**: nodes simulate building a block for every slot but never actually submit the L1 transaction. This means you will see "built block" or similar messages but no "Published checkpoint" or L1 submission logs. Errors with hash `0xf3e591ac` are a known artifact of fisherman mode and are safe to ignore.
- **mainnet** (both private/ignition and public) does not run sequencer validators. Both deployments run in **fisherman mode**: nodes simulate building a block for every slot but never actually submit the L1 transaction. This means you will see "built block" or similar messages but no "Published checkpoint" or L1 submission logs. Errors with hash `0xf3e591ac` are a known artifact of fisherman mode and are safe to ignore. See the Cluster Mapping section above for how to disambiguate between the two mainnet deployments.

## Filter Building

Expand Down
11 changes: 0 additions & 11 deletions .claude/settings.local.json

This file was deleted.

3 changes: 3 additions & 0 deletions .github/workflows/ci3-external.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ jobs:
runs-on: ubuntu-latest
# exclusive with ci3.yml, only run on forks.
if: github.event.pull_request.head.repo.fork
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
Expand Down
29 changes: 14 additions & 15 deletions .github/workflows/deploy-staging-public.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,40 +26,39 @@ jobs:
token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
fetch-depth: 0

- name: Read version from manifest
id: manifest
run: |
VERSION=$(jq -r '."."' .release-please-manifest.json)
echo "version=$VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT

- name: Poll for tag at HEAD
- name: Poll for semver tag at HEAD
id: poll-tag
run: |
# wait for tag to be pushed (either RC or stable release)
VERSION="${{ steps.manifest.outputs.version }}"
HEAD_SHA=$(git rev-parse HEAD)
MAX_ATTEMPTS=60
echo "Looking for tag matching v${VERSION} or v${VERSION}-rc.* at HEAD ($HEAD_SHA)"
echo "Looking for any semver tag at HEAD ($HEAD_SHA)"

for i in $(seq 1 $MAX_ATTEMPTS); do
git fetch --tags --force

TAG=$(git tag --points-at HEAD | grep -E "^v${VERSION}(-rc\.[0-9]+)?$" | sort -V | tail -n 1 || true)
# Collect all valid semver tags pointing at HEAD
SEMVER_TAGS=()
for t in $(git tag --points-at HEAD); do
if ci3/semver check "$t"; then
SEMVER_TAGS+=("$t")
fi
done

if [ -n "$TAG" ]; then
# If we found valid semver tags, pick the highest
if [ ${#SEMVER_TAGS[@]} -gt 0 ]; then
TAG=$(ci3/semver sort "${SEMVER_TAGS[@]}" | tail -n 1)
echo "Found tag: $TAG"
SEMVER="${TAG#v}"
echo "tag=$TAG" >> $GITHUB_OUTPUT
echo "semver=$SEMVER" >> $GITHUB_OUTPUT
exit 0
fi

echo "Attempt $i/$MAX_ATTEMPTS: No matching tag yet, waiting 10s..."
echo "Attempt $i/$MAX_ATTEMPTS: No semver tag yet, waiting 10s..."
sleep 10
done

echo "Error: No tag found for v${VERSION} at HEAD after 10 minutes"
echo "Error: No semver tag found at HEAD after 10 minutes"
exit 1

wait-for-ci3:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,4 @@ docs/docs/protocol-specs/public-vm/gen/
__pycache__

*.local.md
.claude/settings.local.json
6 changes: 6 additions & 0 deletions .test_patterns.yml
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,12 @@ tests:
owners:
- *palla

# http://ci.aztec-labs.com/153f5dcbb0f3799c
- regex: "src/e2e_offchain_payment.test.ts"
error_regex: "✕ reprocesses an offchain-delivered payment after an L1 reorg"
owners:
- *martin

- regex: "yarn-project/scripts/run_test.sh bb-prover/src/avm_proving_tests/avm_"
error_regex: "timeout: sending signal"
owners:
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ bb-sol: bb-cpp-native bb-crs
# Barretenberg Tests
#==============================================================================

bb-cpp-native-tests: bb-cpp-native
bb-cpp-native-tests: bb-cpp-native bb-crs
$(call test,$@,barretenberg/cpp,native)

bb-cpp-wasm-threads-tests: bb-cpp-wasm-threads
Expand Down
23 changes: 19 additions & 4 deletions aztec-up/bin/0.0.1/aztec-install
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
# This script installs aztec-up and then delegates to it for version installation.
# Usage: bash -i <(curl -s https://install.aztec.network)
# or: VERSION=0.85.0 bash -i <(curl -s https://install.aztec.network)

# Guard against truncated curl downloads: bash must parse the entire {} block before executing any of it.
{
set -euo pipefail

# Colors (truecolor with 256-color fallback)
Expand Down Expand Up @@ -30,12 +33,20 @@ VERSION=${VERSION:-0.0.1}
# Install URI (root, not version-specific)
INSTALL_URI="${INSTALL_URI:-https://install.aztec-labs.com}"

# Check if version string is valid semver
function is_semver {
local version="$1"
local semver_regex='^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.]+)?$'
[[ "$version" =~ $semver_regex ]]
}

# Resolve alias (like "nightly") to actual version number.
function resolve_version {
local version="$1"
local semver_regex='^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.]+)?$'
if [[ "$version" =~ $semver_regex ]]; then
echo "$version"
# Strip leading v from semver-like inputs (v0.85.0 -> 0.85.0), but not aliases (v4-nightly)
local stripped="${version#v}"
if is_semver "$stripped"; then
echo "$stripped"
else
local resolved
if ! resolved=$(curl -fsSL "$INSTALL_URI/aliases/$version" 2>/dev/null); then
Expand Down Expand Up @@ -194,7 +205,7 @@ function update_path_env_var {
if grep -q '\.aztec' "$shell_profile" 2>/dev/null; then
# Remove old aztec PATH entries.
local tmp_file=$(mktemp)
grep -Ev 'export PATH=.*/\.aztec/' "$shell_profile" > "$tmp_file" || true
grep -Ev 'export PATH="\$(HOME/\.aztec/|PATH:.*\.aztec/)' "$shell_profile" > "$tmp_file" || true
mv "$tmp_file" "$shell_profile"
fi

Expand Down Expand Up @@ -242,3 +253,7 @@ function main {
}

main "$@"

# Explicit exit prevents bash from reading past the closing brace.
exit
}
11 changes: 9 additions & 2 deletions aztec-up/bin/0.0.1/aztec-up
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,10 @@ function is_semver {
# Resolve alias (like "nightly") to actual version number
function resolve_version {
local version="$1"
if is_semver "$version"; then
echo "$version"
# Strip leading v from semver-like inputs (v0.85.0 -> 0.85.0), but not aliases (v4-nightly)
local stripped="${version#v}"
if is_semver "$stripped"; then
echo "$stripped"
else
# Fetch alias file to get actual version
local resolved
Expand Down Expand Up @@ -314,6 +316,11 @@ function cmd_uninstall {
exit 1
fi

if ! is_semver "$version"; then
echo "Error: Invalid version '$version'. Expected a semver string (e.g. 0.85.0)."
exit 1
fi

local current_version
current_version=$(get_current_version)

Expand Down
7 changes: 7 additions & 0 deletions aztec-up/bin/0.0.1/install
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
# Per-version installer script
# This script is called by aztec-up to install a specific version of the Aztec toolchain.
# It expects VERSION and INSTALL_URI to be set.

# Guard against truncated curl downloads: bash must parse the entire {} block before executing any of it.
{
set -euo pipefail

# Colors
Expand Down Expand Up @@ -232,3 +235,7 @@ function main {
}

main "$@"

# Explicit exit prevents bash from reading past the closing brace.
exit
}
2 changes: 1 addition & 1 deletion barretenberg/acir_tests/browser-test-app/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ function installChonkGlobal() {
logger.debug("starting test...");
const bb = await Barretenberg.new({ threads, logger: bbLogger });
const backend = new AztecClientBackend(acirBufs, bb, circuitNames);
const [_, proof, verificationKey] = await backend.prove(
const { proof, vk: verificationKey } = await backend.prove(
witnessBufs,
vkBufs
);
Expand Down
2 changes: 2 additions & 0 deletions barretenberg/cpp/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,8 @@ case "$cmd" in
build
;;
"ci")
# Ensure CRS is downloaded before running tests
../crs/bootstrap.sh
build
test
;;
Expand Down
14 changes: 8 additions & 6 deletions barretenberg/cpp/pil/vm2/bytecode/bc_retrieval.pil
Original file line number Diff line number Diff line change
Expand Up @@ -140,16 +140,18 @@ pol commit instance_exists; // @boolean (by lookup into contract_instance_retrie
#[CONTRACT_INSTANCE_RETRIEVAL]
sel {
address,
current_class_id,
instance_exists,
nullifier_tree_root,
public_data_tree_root,
nullifier_tree_root
instance_exists,
current_class_id
} in contract_instance_retrieval.sel {
contract_instance_retrieval.address,
contract_instance_retrieval.current_class_id,
contract_instance_retrieval.exists,
contract_instance_retrieval.nullifier_tree_root,
contract_instance_retrieval.public_data_tree_root,
contract_instance_retrieval.nullifier_tree_root
contract_instance_retrieval.exists,
// Note: don't need deployer_addr for bc retrieval
contract_instance_retrieval.current_class_id
// Note: don't need init_hash for bc retrieval
};

////////////////////////////////////////////////
Expand Down
Loading
Loading