Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
30fedcf
fix: stringify all bigints in pino-logger
spypsy Feb 9, 2026
ebfa25a
refactor(ethereum): config-driven tx delayer replaces manual DelayedT…
spalladino Feb 9, 2026
853d17d
chore: log L1 trace errors once in debug
spypsy Feb 11, 2026
9f0518e
remove duplicate function
spypsy Feb 11, 2026
72174ab
refactor(ethereum): simplify L1TxUtils factories and internalize delayer
spalladino Feb 11, 2026
5af0a01
Initial commit
PhilWindle Feb 11, 2026
38e7ef0
Add memory usage metric
PhilWindle Feb 11, 2026
7517cdb
fix(node-lib): add missing dateProvider to L1TxUtils integration test
spalladino Feb 11, 2026
ddc5e2f
fix(end-to-end): force-enable tx delayer in e2e setup
spalladino Feb 12, 2026
5e9908e
test(archiver): add missing reorg and prune unit tests
spalladino Feb 12, 2026
62e99e0
chore: ensure consistent HA DB timestamps
spypsy Feb 12, 2026
7929485
More metrics
PhilWindle Feb 12, 2026
c9c15bf
Fee only priority checks
PhilWindle Feb 12, 2026
8ccff06
fix: stringify all bigints in pino-logger (#20303)
PhilWindle Feb 13, 2026
7d645ea
chore: ensure consistent HA DB timestamps (#20398)
AztecBot Feb 13, 2026
c05c980
chore: log L1 trace errors once in debug (#20380)
AztecBot Feb 13, 2026
0bb9df7
test(archiver): add missing reorg and prune unit tests (#20441)
PhilWindle Feb 13, 2026
02a4606
feat(ci.aztec-labs.com): CI cost and metrics tracking (#20100)
ludamad Feb 13, 2026
db3abf9
refactor(ethereum): cleaner initialization for tx delayer in l1txutil…
PhilWindle Feb 13, 2026
1618ded
Removed unused interface from p2p client
PhilWindle Feb 13, 2026
cd47107
Merge remote-tracking branch 'origin/merge-train/spartan' into pw/tx-…
PhilWindle Feb 13, 2026
1cad1d1
Reverted change
PhilWindle Feb 13, 2026
a977661
chore(validator): blob upload tests
spalladino Feb 12, 2026
36a27d0
chore(validator): blob upload tests (#20463)
PhilWindle Feb 13, 2026
2d3a235
Review changes
PhilWindle Feb 13, 2026
9d2307a
Review changes
PhilWindle Feb 13, 2026
a74470a
Merge branch 'next' into merge-train/spartan
Feb 13, 2026
513c526
Fix
PhilWindle Feb 13, 2026
e2b8ecf
Merge branch 'next' into merge-train/spartan
Feb 13, 2026
3a3a397
automatically stop node from signalling
mrzeszutko Feb 12, 2026
a5fe63e
using L1 start block as fromBlock
mrzeszutko Feb 13, 2026
ec14b01
Merge branch 'next' into merge-train/spartan
Feb 13, 2026
006875a
Merge branch 'next' into merge-train/spartan
Feb 13, 2026
e52b7d2
chore: move TXE ports out of Linux ephemeral range (#20475)
ludamad Feb 13, 2026
feaa467
Merge branch 'next' into merge-train/spartan
Feb 13, 2026
1003d7b
fix(node): sync ws before simulating public calls (#20499)
spalladino Feb 13, 2026
471c876
fix(ethereum): check timeout before consuming nonce in L1TxUtils (#20…
spalladino Feb 13, 2026
e6ea518
chore(mbps): cleanup todos no longer needed
spalladino Feb 13, 2026
2835925
refactor(mbps): add timestamp to checkpoint global vars
spalladino Feb 13, 2026
d9ad4ff
chore(mbps): remove outdated todo comments
spalladino Feb 13, 2026
2f2a1ab
fix(validator): do not attest to checkpoint that points to non-latest…
spalladino Feb 13, 2026
25a11bf
feat(archiver): return L2 block data to avoid fetching full block
spalladino Feb 13, 2026
1dad015
Merge branch 'next' into merge-train/spartan
Feb 13, 2026
4c30e23
chore(e2e): toggle mbps in e2e tests
spalladino Feb 9, 2026
761ee8c
chore(e2e): reenable block building test (#20504)
spalladino Feb 13, 2026
06d81c8
refactor(sequencer): rename block-level metrics to checkpoint-level (…
spalladino Feb 13, 2026
2be895a
feat(archiver): add l2 tips cache
spalladino Feb 13, 2026
59780e2
feat(archiver): return L2 block data to avoid fetching full block (#2…
PhilWindle Feb 14, 2026
b993181
chore(mbps): clean up TODOs for multiple blocks per slot (#20502)
PhilWindle Feb 14, 2026
d57dccb
feat(archiver): add l2 tips cache (#20510)
PhilWindle Feb 14, 2026
58fd912
chore(e2e): toggle mbps in e2e tests (#20315)
PhilWindle Feb 14, 2026
3dfc45c
Merge remote-tracking branch 'origin/merge-train/spartan' into pw/tx-…
PhilWindle Feb 14, 2026
5f7ad8f
More metrics
PhilWindle Feb 15, 2026
879a554
fix: set PXE sync chain tip to proposed for scenario bot
Feb 16, 2026
9cc364d
fix: set PXE sync chain tip to proposed for scenario bot (#20530)
PhilWindle Feb 16, 2026
b824018
feat: Metrics added to the transaction pool (#20477)
PhilWindle Feb 16, 2026
2aea1d3
fix(ci): preserve both attempt logs when retrying flaky tests (#20439)
ludamad Feb 16, 2026
ba40940
feat: automatically stop node from signalling (#20416)
PhilWindle Feb 16, 2026
8d8451c
refactor: add getCheckpointsDataForEpoch and enrich CheckpointData
spalladino Feb 16, 2026
243c693
refactor: add getCheckpointsDataForEpoch and enrich CheckpointData (#…
PhilWindle Feb 16, 2026
dac73ca
feat: worker thread wallet
alexghr Feb 16, 2026
80a54b5
refactor: make prover-node a subsystem of aztec-node
spalladino Feb 16, 2026
8f3a389
refactor: make prover-node a subsystem of aztec-node (#20393)
PhilWindle Feb 16, 2026
c866633
feat: worker thread wallet (#20557)
PhilWindle Feb 16, 2026
7739e5b
World state history based on checkpoints
PhilWindle Feb 16, 2026
ff4cf99
feat: add API key authentication for admin RPC endpoint
Feb 12, 2026
fc143f8
Comments
PhilWindle Feb 16, 2026
9519ab3
Merge remote-tracking branch 'origin/next' into merge-train/spartan
PhilWindle Feb 16, 2026
e9c7d86
chore: fix deployments
alexghr Feb 16, 2026
2e62768
chore: fix deployments (#20558)
PhilWindle Feb 16, 2026
1207cfa
feat: suspend sentinel during escape hatch (#20471)
LHerskind Feb 16, 2026
ab30ee4
fix: async blob (#20559)
alexghr Feb 16, 2026
5033806
chore: vendor web3signer (#20570)
alexghr Feb 17, 2026
7a3bbcc
chore: bump test slot duration
just-mitch Feb 17, 2026
625a7c5
fix: Fix checkpoint invalidation test (#20579)
PhilWindle Feb 17, 2026
0e1e46d
Merge remote-tracking branch 'origin/next' into ag/merge-next
alexghr Feb 17, 2026
4601ffa
feat: World state history length is now defined in checkpoints (#20566)
PhilWindle Feb 17, 2026
e8d3a69
fix: async world state cleanups (#20578)
alexghr Feb 17, 2026
786386c
chore: merge next into merge-train/spartan (#20582)
ludamad Feb 17, 2026
0aef088
fix: skip flaking epochs_long_proving_time.test.ts
ludamad Feb 17, 2026
f7016be
chore: better agent utilisation in proving test
alexghr Feb 16, 2026
39a1605
chore: better agent utilisation in proving test (#20562)
PhilWindle Feb 17, 2026
326744c
Merge branch 'next' into merge-train/spartan
Feb 17, 2026
a2b87e2
Merge branch 'next' into merge-train/spartan
Feb 17, 2026
43ed6a9
feat: Error codes for RPC calls
Feb 16, 2026
a001805
feat: (A-302) add reloadKeystore admin RPC endpoint
danielntmd Feb 17, 2026
1d43be9
feat: (A-302) add reloadKeystore admin RPC endpoint (#20325)
PhilWindle Feb 17, 2026
a39635b
feat: (A-451) error codes for RPC calls (#20560)
PhilWindle Feb 17, 2026
60b4fc7
feat: (A-514) add API key authentication for admin RPC endpoint (#20411)
danielntmd Feb 17, 2026
3bd5145
Merge branch 'next' into merge-train/spartan
Feb 17, 2026
6b2cade
fix: increase waitForTx timeout in epochs_invalidate_block test (#20603)
alexghr Feb 17, 2026
fae88c7
chore: update skill to correct path and add changelog docs for new en…
Feb 17, 2026
1e180e5
chore: update block proposal/checkpoint proposal panel (#20584)
alexghr Feb 17, 2026
101ef01
fix: async dispose() lint rule (#20587)
alexghr Feb 17, 2026
7ea6a37
fix(p2p): fix compress option in file store and enable for tx uploads…
alexghr Feb 17, 2026
2f31af4
chore: fixes for chaos mesh experiments (#20606)
alexghr Feb 17, 2026
76923c1
feat(p2p): add download metrics to file store tx source (#20601)
alexghr Feb 17, 2026
2e46cd1
chore: update skill to correct path and add changelog docs for new en…
PhilWindle Feb 17, 2026
e08a9e5
chore: deflake epoch_mbps (#20609)
alexghr Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .claude/skills/updating-changelog/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Read `.release-please-manifest.json` to get the version (e.g., `{"." : "4.0.0"}`
**Target files:**

- Aztec contract developers: `docs/docs-developers/docs/resources/migration_notes.md`
- Node operators and Ethereum contract developers: `docs/docs-network/reference/changelog/v{major}.md`
- Node operators and Ethereum contract developers: `docs/docs-operate/operators/reference/changelog/v{major}.md`

### 2. Analyze Branch Changes

Expand Down Expand Up @@ -60,7 +60,7 @@ Explanation of what changed.

## Node Operator Changelog Format

**File:** `docs/docs-network/reference/changelog/v{major}.md`
**File:** `docs/docs-operate/operators/reference/changelog/v{major}.md`

**Breaking changes:**
````markdown
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci3.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ jobs:
PR_COMMITS: ${{ github.event.pull_request.commits }}
PR_NUMBER: ${{ github.event.pull_request.number }}
GITHUB_REF_NAME: ${{ github.ref_name }}
GITHUB_ACTOR: ${{ github.actor }}
# NOTE: $CI_MODE is set in the Determine CI Mode step.
run: ./.github/ci3.sh $CI_MODE

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/weekly-proving-bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
fi

- name: Run real proving benchmarks
timeout-minutes: 150
timeout-minutes: 180
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Expand All @@ -57,7 +57,7 @@ jobs:
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
RUN_ID: ${{ github.run_id }}
AWS_SHUTDOWN_TIME: 150
AWS_SHUTDOWN_TIME: 180
NO_SPOT: 1
run: |
./.github/ci3.sh network-proving-bench prove-n-tps-real prove-n-tps-real "aztecprotocol/aztec:${{ steps.nightly-tag.outputs.nightly_tag }}"
Expand Down
5 changes: 5 additions & 0 deletions .test_patterns.yml
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,11 @@ tests:
owners:
- *palla

- regex: "src/e2e_block_building.test.ts"
error_regex: "✕ processes txs until hitting timetable"
owners:
- *palla

# http://ci.aztec-labs.com/e8228a36afda93b8
# Test passed but there was an error on stopping
- regex: "playground/scripts/run_test.sh"
Expand Down
13 changes: 10 additions & 3 deletions bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -233,11 +233,14 @@ function start_txes {
export TOKIO_WORKER_THREADS=1

# Starting txe servers with incrementing port numbers.
# Base port is below the Linux ephemeral range (32768-60999) to avoid conflicts.
local txe_base_port=14730
for i in $(seq 0 $((NUM_TXES-1))); do
port=$((45730 + i))
port=$((txe_base_port + i))
existing_pid=$(lsof -ti :$port || true)
if [ -n "$existing_pid" ]; then
echo "Killing existing process $existing_pid on port: $port"
check_port $port
kill -9 $existing_pid &>/dev/null || true
while kill -0 $existing_pid &>/dev/null; do sleep 0.1; done
fi
Expand All @@ -248,8 +251,12 @@ function start_txes {
echo "Waiting for TXE's to start..."
for i in $(seq 0 $((NUM_TXES-1))); do
local j=0
while ! nc -z 127.0.0.1 $((45730 + i)) &>/dev/null; do
[ $j == 60 ] && echo_stderr "TXE $i took too long to start. Exiting." && exit 1
while ! nc -z 127.0.0.1 $((txe_base_port + i)) &>/dev/null; do
if [ $j == 60 ]; then
echo_stderr "TXE $i failed to start on port $((txe_base_port + i)) after 60s."
check_port $((txe_base_port + i))
exit 1
fi
sleep 1
j=$((j+1))
done
Expand Down
15 changes: 15 additions & 0 deletions ci3/aws_request_instance_type
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,21 @@ fi

echo "Instance id: $iid"

tags="Key=Name,Value=$name Key=Group,Value=build-instance"
[ -n "${GITHUB_ACTOR:-}" ] && tags+=" Key=GithubActor,Value=$GITHUB_ACTOR"
[ -n "${CI_MODE:-}" ] && tags+=" Key=CICommand,Value=$CI_MODE"
[ -n "${CI_DASHBOARD:-}" ] && tags+=" Key=Dashboard,Value=$CI_DASHBOARD"
if [ "${UNSAFE_AWS_KEEP_ALIVE:-0}" -eq 1 ]; then
echo_stderr "You have set UNSAFE_AWS_KEEP_ALIVE=1, so the instance will not be terminated after 1.5 hours by the reaper script. Make sure you shut the machine down when done."
tags+=" Key=Keep-Alive,Value=true"
fi
aws ec2 create-tags --resources $iid --tags $tags

# Record the instance type so callers can pass it downstream (e.g. into Docker).
echo $instance_type > $state_dir/instance_type
# Record whether this is spot or on-demand.
[ -f "$sir_path" ] && echo spot > $state_dir/spot || echo ondemand > $state_dir/spot

while [ -z "${ip:-}" ]; do
sleep 1
ip=$(aws ec2 describe-instances \
Expand Down
15 changes: 5 additions & 10 deletions ci3/bootstrap_ec2
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ if [[ -f "$state_dir/sir" ]]; then
sir=$(cat $state_dir/sir)
fi
iid=$(cat $state_dir/iid)
export EC2_INSTANCE_TYPE=$(cat $state_dir/instance_type 2>/dev/null || echo "unknown")
export EC2_SPOT=$(cat $state_dir/spot 2>/dev/null || echo "unknown")

# If AWS credentials are not set, try to load them from ~/.aws/build_instance_credentials.
if [ -z "${AWS_ACCESS_KEY_ID:-}" ] || [ -z "${AWS_SECRET_ACCESS_KEY:-}" ]; then
Expand Down Expand Up @@ -191,16 +193,6 @@ container_script=$(
log_ci_run FAILED \$ci_log_id
merge_train_failure_slack_notify \$ci_log_id
release_canary_slack_notify \$ci_log_id
ci_failed_data=\$(jq -n \\
--arg status "failed" \\
--arg log_id "\$ci_log_id" \\
--arg ref_name "\${TARGET_BRANCH:-\$REF_NAME}" \\
--arg commit_hash "\$COMMIT_HASH" \\
--arg commit_author "\$COMMIT_AUTHOR" \\
--arg commit_msg "\$COMMIT_MSG" \\
--argjson exit_code "\$code" \\
'{status: \$status, log_id: \$log_id, ref_name: \$ref_name, commit_hash: \$commit_hash, commit_author: \$commit_author, commit_msg: \$commit_msg, exit_code: \$exit_code, timestamp: now | todate}')
redis_publish "ci:run:failed" "\$ci_failed_data"
;;
esac
exit \$code
Expand Down Expand Up @@ -330,6 +322,9 @@ function run {
-e AWS_TOKEN=\$aws_token \
-e NAMESPACE=${NAMESPACE:-} \
-e NETWORK=${NETWORK:-} \
-e GITHUB_ACTOR=${GITHUB_ACTOR:-} \
-e EC2_INSTANCE_TYPE=${EC2_INSTANCE_TYPE:-unknown} \
-e EC2_SPOT=${EC2_SPOT:-unknown} \
--pids-limit=65536 \
--shm-size=2g \
aztecprotocol/devbox:3.0 bash -c $(printf '%q' "$container_script")
Expand Down
19 changes: 19 additions & 0 deletions ci3/check_port
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
# Check if a port is free. If taken, print the process tree of the holder.
# Usage: check_port <port>
# Exit code: 0 if free, 1 if taken.
set -eu

port="${1:?Usage: check_port <port>}"

pid=$(lsof -ti :"$port" 2>/dev/null | head -1 || true)
if [ -z "$pid" ]; then
exit 0
fi

echo "Port $port is taken by PID $pid:" >&2
# Show the command line of the process.
ps -p "$pid" -o pid,ppid,user,args --no-headers >&2 || true
# Show the process tree rooted at this PID.
pstree -apls "$pid" >&2 2>/dev/null || pstree -p "$pid" >&2 2>/dev/null || true
exit 1
11 changes: 11 additions & 0 deletions ci3/ci-metrics/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM python:3.12

RUN apt update && apt install -y jq redis-tools && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt gunicorn
RUN git config --global --add safe.directory /aztec-packages
COPY . .
EXPOSE 8081
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8081", "app:app"]
Loading
Loading