Skip to content

Commit 76ca5d1

Browse files
committed
Merge branch 'master' into sync-noir
* master: feat: verify public validation requests (#8150) feat: ultra keccak honk verifier (#8261) git subrepo push --branch=master noir-projects/aztec-nr git_subrepo.sh: Fix parent in .gitrepo file. [skip ci] chore: replace relative paths to noir-protocol-circuits git subrepo push --branch=master barretenberg chore(bb): use std::span for srs (#8371) feat: router contract (#8352) chore: Merge provernet to master (#8373) feat: Sync from noir (#8363) chore: Change efs volumes to use bursting throughput (#8370) chore: move spartan network tests to nightly (#8369) chore(ci): Test lowering of non-persistent ebs provisions (#8360) chore(bb): reinstate "chore: uncomment asserts in oink rec verifier"" (#8356) fix: Split stores per component and split merkle tree operations (#8299) fix: TXE logs in docker (#8365) feat: Liveness analysis for constants (#8294) chore(avm): remove some unused deps (#8366)
2 parents d7c39cb + 2be1415 commit 76ca5d1

File tree

209 files changed

+3185
-1157
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

209 files changed

+3185
-1157
lines changed

.github/ensure-tester/action.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ runs:
7070

7171
- name: Print Startup Log
7272
shell: bash
73-
run: cat /run/log.out || true # don't fail
73+
run:
74+
# Try 6 times to see if .user-data-finished has been written to
75+
for i in {0..6} ; do scripts/run_on_tester "cat /home/ubuntu/.user-data-finished" && break ; sleep 5 ; done ;
76+
scripts/run_on_tester "cat /run/log.out"
7477

7578
# Set up a context for this run
7679
- name: Copy Repo to Tester

.github/spot-runner-action/dist/index.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,8 @@ class Ec2Instance {
281281
Ebs: {
282282
VolumeSize: 64,
283283
VolumeType: 'gp3',
284-
Throughput: 1000,
285-
Iops: 5000
284+
Throughput: 250,
285+
Iops: 3000
286286
},
287287
},
288288
],
@@ -1040,7 +1040,14 @@ class UserData {
10401040
`sudo service docker restart`,
10411041
"sudo wget -q https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-$(dpkg --print-architecture) -O /usr/local/bin/earthly",
10421042
"sudo chmod +x /usr/local/bin/earthly",
1043-
`sudo bash -c 'echo \'Acquire::Retries "3"; Acquire::https::Timeout "240"; Acquire::http::Timeout "240"; APT::Get::Assume-Yes "true"; APT::Install-Recommends "false"; APT::Install-Suggests "false";\' > /etc/apt/apt.conf.d/99-aztec-build'`,
1043+
`sudo bash -c 'cat <<EOF > /etc/apt/apt.conf.d/99-aztec-build
1044+
Acquire::Retries "3";
1045+
Acquire::https::Timeout "240";
1046+
Acquire::http::Timeout "240";
1047+
APT::Get::Assume-Yes "true";
1048+
APT::Install-Recommends "false";
1049+
APT::Install-Suggests "false";
1050+
EOF'`,
10441051
"sudo apt install -y brotli",
10451052
'echo "MaxStartups 1000" >> /etc/ssh/sshd_config',
10461053
'echo "ClientAliveInterval=30" >> /etc/ssh/sshd_config',

.github/spot-runner-action/src/ec2.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@ export class Ec2Instance {
200200
Ebs: {
201201
VolumeSize: 64,
202202
VolumeType: 'gp3',
203-
Throughput: 1000,
204-
Iops: 5000
203+
Throughput: 250,
204+
Iops: 3000
205205
},
206206
},
207207
],

.github/spot-runner-action/src/userdata.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,14 @@ export class UserData {
2222
`sudo service docker restart`,
2323
"sudo wget -q https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-$(dpkg --print-architecture) -O /usr/local/bin/earthly",
2424
"sudo chmod +x /usr/local/bin/earthly",
25-
`sudo bash -c 'echo \'Acquire::Retries "3"; Acquire::https::Timeout "240"; Acquire::http::Timeout "240"; APT::Get::Assume-Yes "true"; APT::Install-Recommends "false"; APT::Install-Suggests "false";\' > /etc/apt/apt.conf.d/99-aztec-build'`,
25+
`sudo bash -c 'cat <<EOF > /etc/apt/apt.conf.d/99-aztec-build
26+
Acquire::Retries "3";
27+
Acquire::https::Timeout "240";
28+
Acquire::http::Timeout "240";
29+
APT::Get::Assume-Yes "true";
30+
APT::Install-Recommends "false";
31+
APT::Install-Suggests "false";
32+
EOF'`,
2633
"sudo apt install -y brotli",
2734
'echo "MaxStartups 1000" >> /etc/ssh/sshd_config',
2835
'echo "ClientAliveInterval=30" >> /etc/ssh/sshd_config',

.github/workflows/ci.yml

-31
Original file line numberDiff line numberDiff line change
@@ -161,37 +161,6 @@ jobs:
161161
export FORCE_COLOR=1
162162
../../scripts/earthly-ci -P --no-output +${{ matrix.test }}
163163
164-
network-e2e:
165-
needs: [build, changes]
166-
if: ${{ needs.changes.outputs.non-barretenberg-cpp == 'true' }}
167-
runs-on: ubuntu-20.04
168-
strategy:
169-
matrix:
170-
values_file: ["default.yaml", "3-validators.yaml"]
171-
steps:
172-
- uses: actions/checkout@v4
173-
with: { ref: "${{ env.GIT_COMMIT }}" }
174-
- uses: ./.github/ci-setup-action
175-
- name: Setup and Test
176-
uses: ./.github/ensure-tester-with-images
177-
timeout-minutes: 45
178-
with:
179-
runner_type: ${{ contains(matrix.test, 'prover') && '64core-tester-x86' || '16core-tester-x86' }}
180-
builder_type: builder-x86
181-
# these are copied to the tester and expected by the earthly command below
182-
# if they fail to copy, it will try to build them on the tester and fail
183-
builder_images_to_copy: aztecprotocol/aztec:${{ env.GIT_COMMIT }} aztecprotocol/end-to-end:${{ env.GIT_COMMIT }}
184-
# command to produce the images in case they don't exist
185-
builder_command: scripts/earthly-ci ./yarn-project+export-e2e-test-images
186-
tester_ttl: 40
187-
run: |
188-
set -eux
189-
cd ./yarn-project/end-to-end/
190-
./scripts/setup_local_k8s.sh
191-
export FORCE_COLOR=1
192-
export EARTHLY_BUILD_ARGS="${{ env.EARTHLY_BUILD_ARGS }}"
193-
../../scripts/earthly-ci --exec-stats -P --no-output ./+network-transfer --values-file=${{ matrix.values_file }}
194-
195164
# all the benchmarking end-to-end integration tests for aztec (not required to merge)
196165
bench-e2e:
197166
needs: [build, changes]

.github/workflows/devnet-deploys.yml

+39-3
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ env:
6666
TF_VAR_FORK_MNEMONIC: ${{ secrets.FORK_MNEMONIC }}
6767
TF_VAR_INFURA_API_KEY: ${{ secrets.INFURA_API_KEY }}
6868
TF_VAR_FORK_ADMIN_API_KEY: ${{ secrets.DEVNET_API_KEY }}
69+
TF_VAR_MAINNET_FORK_CPU_UNITS: 2048
70+
TF_VAR_MAINNET_FORK_MEMORY_UNITS: 4096
6971

7072
# Faucet
7173
TF_VAR_FAUCET_ACCOUNT_INDEX: 9
@@ -123,6 +125,12 @@ jobs:
123125
min_txs_per_block: ${{ steps.set_network_vars.outputs.min_txs_per_block }}
124126
bot_flush_setup_txs: ${{ steps.set_network_vars.outputs.bot_flush_setup_txs }}
125127
bot_max_pending_txs: ${{ steps.set_network_vars.outputs.bot_max_pending_txs }}
128+
mainnet_fork_cpu_units: ${{ steps.set_network_vars.outputs.mainnet_fork_cpu_units }}
129+
mainnet_fork_memory_units: ${{ steps.set_network_vars.outputs.mainnet_fork_memory_units }}
130+
bot_skip_simulation: ${{ steps.set_network_vars.outputs.bot_skip_simulation }}
131+
bot_l2_gas_limit: ${{ steps.set_network_vars.outputs.bot_l2_gas_limit }}
132+
bot_da_gas_limit: ${{ steps.set_network_vars.outputs.bot_da_gas_limit }}
133+
bot_count: ${{ steps.set_network_vars.outputs.bot_count }}
126134
steps:
127135
- name: Set network vars
128136
shell: bash
@@ -135,7 +143,7 @@ jobs:
135143
echo "branch_name=devnet" >> $GITHUB_OUTPUT
136144
echo "network_api_key=DEVNET_API_KEY" >> $GITHUB_OUTPUT
137145
echo "network_fork_admin_api_key=DEVNET_API_KEY" >> $GITHUB_OUTPUT
138-
echo "agents_per_prover=4" >> $GITHUB_OUTPUT
146+
echo "agents_per_prover=2" >> $GITHUB_OUTPUT
139147
echo "bot_interval=180" >> $GITHUB_OUTPUT
140148
echo "node_tcp_range_start=40100" >> $GITHUB_OUTPUT
141149
echo "node_udp_range_start=45100" >> $GITHUB_OUTPUT
@@ -147,9 +155,15 @@ jobs:
147155
echo "faucet_lb_priority=601" >> $GITHUB_OUTPUT
148156
echo "min_txs_per_block=1" >> $GITHUB_OUTPUT
149157
echo "max_txs_per_block=64" >> $GITHUB_OUTPUT
150-
echo "bot_follow_chain=NONE" >> $GITHUB_OUTPUT
158+
echo "bot_follow_chain=PROVEN" >> $GITHUB_OUTPUT
151159
echo "bot_flush_setup_txs=false" >> $GITHUB_OUTPUT
152160
echo "bot_max_pending_txs=1" >> $GITHUB_OUTPUT
161+
echo "mainnet_fork_cpu_units=2048" >> $GITHUB_OUTPUT
162+
echo "mainnet_fork_memory_units=4096" >> $GITHUB_OUTPUT
163+
echo "bot_skip_simulation=false" >> $GITHUB_OUTPUT
164+
echo "bot_l2_gas_limit=" >> $GITHUB_OUTPUT
165+
echo "bot_da_gas_limit=" >> $GITHUB_OUTPUT
166+
echo "bot_count=1" >> $GITHUB_OUTPUT
153167
elif [ "$BRANCH_NAME" = "provernet" ]
154168
then
155169
echo "deploy_tag=provernet" >> $GITHUB_OUTPUT
@@ -171,14 +185,20 @@ jobs:
171185
echo "bot_follow_chain=NONE" >> $GITHUB_OUTPUT
172186
echo "bot_flush_setup_txs=true" >> $GITHUB_OUTPUT
173187
echo "bot_max_pending_txs=32" >> $GITHUB_OUTPUT
188+
echo "mainnet_fork_cpu_units=8192" >> $GITHUB_OUTPUT
189+
echo "mainnet_fork_memory_units=32768" >> $GITHUB_OUTPUT
190+
echo "bot_skip_simulation=true" >> $GITHUB_OUTPUT
191+
echo "bot_l2_gas_limit=1000000000" >> $GITHUB_OUTPUT
192+
echo "bot_da_gas_limit=1000000000" >> $GITHUB_OUTPUT
193+
echo "bot_count=1" >> $GITHUB_OUTPUT
174194
elif [ "$BRANCH_NAME" = "alphanet" ]
175195
then
176196
echo "deploy_tag=alphanet" >> $GITHUB_OUTPUT
177197
echo "branch_name=alphanet" >> $GITHUB_OUTPUT
178198
echo "network_api_key=ALPHANET_API_KEY" >> $GITHUB_OUTPUT
179199
echo "network_fork_admin_api_key=ALPHANET_API_KEY" >> $GITHUB_OUTPUT
180200
echo "agents_per_prover=1" >> $GITHUB_OUTPUT
181-
echo "bot_interval=30" >> $GITHUB_OUTPUT
201+
echo "bot_interval=10" >> $GITHUB_OUTPUT
182202
echo "node_tcp_range_start=40000" >> $GITHUB_OUTPUT
183203
echo "node_udp_range_start=45000" >> $GITHUB_OUTPUT
184204
echo "prover_node_tcp_range_start=41000" >> $GITHUB_OUTPUT
@@ -192,6 +212,12 @@ jobs:
192212
echo "bot_follow_chain=PROVEN" >> $GITHUB_OUTPUT
193213
echo "bot_flush_setup_txs=false" >> $GITHUB_OUTPUT
194214
echo "bot_max_pending_txs=1" >> $GITHUB_OUTPUT
215+
echo "mainnet_fork_cpu_units=2048" >> $GITHUB_OUTPUT
216+
echo "mainnet_fork_memory_units=4096" >> $GITHUB_OUTPUT
217+
echo "bot_skip_simulation=false" >> $GITHUB_OUTPUT
218+
echo "bot_l2_gas_limit=" >> $GITHUB_OUTPUT
219+
echo "bot_da_gas_limit=" >> $GITHUB_OUTPUT
220+
echo "bot_count=1" >> $GITHUB_OUTPUT
195221
else
196222
echo "Unrecognized Branch!!"
197223
exit 1
@@ -462,6 +488,12 @@ jobs:
462488
TF_VAR_PROVER_NODE_LB_RULE_PRIORITY: ${{ needs.set-network.outputs.prover_node_lb_priority_range_start }}
463489
TF_VAR_SEQ_MIN_TX_PER_BLOCK: 1
464490
TF_VAR_SEQ_MAX_TX_PER_BLOCK: ${{ needs.set-network.outputs.max_txs_per_block }}
491+
TF_VAR_MAINNET_FORK_CPU_UNITS: ${{ needs.set-network.outputs.mainnet_fork_cpu_units }}
492+
TF_VAR_MAINNET_FORK_MEMORY_UNITS: ${{ needs.set-network.outputs.mainnet_fork_memory_units }}
493+
TF_VAR_BOT_SKIP_PUBLIC_SIMULATION: ${{ needs.set-network.outputs.bot_skip_simulation }}
494+
TF_VAR_BOT_L2_GAS_LIMIT: ${{ needs.set-network.outputs.bot_l2_gas_limit }}
495+
TF_VAR_BOT_DA_GAS_LIMIT: ${{ needs.set-network.outputs.bot_da_gas_limit }}
496+
TF_VAR_BOT_COUNT: ${{ needs.set-network.outputs.bot_count }}
465497
steps:
466498
- uses: actions/checkout@v4
467499
with:
@@ -679,6 +711,10 @@ jobs:
679711
TF_VAR_BOT_FOLLOW_CHAIN: ${{ needs.set-network.outputs.bot_follow_chain }}
680712
TF_VAR_PROVING_ENABLED: true
681713
TF_VAR_BOT_NO_START: false
714+
TF_VAR_BOT_SKIP_PUBLIC_SIMULATION: ${{ needs.set-network.outputs.bot_skip_simulation }}
715+
TF_VAR_BOT_L2_GAS_LIMIT: ${{ needs.set-network.outputs.bot_l2_gas_limit }}
716+
TF_VAR_BOT_DA_GAS_LIMIT: ${{ needs.set-network.outputs.bot_da_gas_limit }}
717+
TF_VAR_BOT_COUNT: ${{ needs.set-network.outputs.bot_count }}
682718
steps:
683719
- uses: actions/checkout@v4
684720
with:

.github/workflows/spartan-test.yml

+175
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
name: Run spartan network tests
2+
on:
3+
workflow_dispatch:
4+
schedule:
5+
- cron: "00 08 * * 1-5"
6+
7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.ref }}
9+
cancel-in-progress: true
10+
11+
env:
12+
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
13+
GIT_COMMIT: ${{ github.sha }}
14+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
15+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
16+
17+
jobs:
18+
setup:
19+
uses: ./.github/workflows/setup-runner.yml
20+
with:
21+
username: ${{ github.event.pull_request.user.login || github.actor }}
22+
runner_type: builder-x86
23+
secrets: inherit
24+
25+
changes:
26+
runs-on: ubuntu-20.04
27+
# Required permissions.
28+
permissions:
29+
pull-requests: read
30+
# Set job outputs to values from filter step
31+
outputs:
32+
avm-transpiler: ${{ steps.filter.outputs.avm-transpiler }}
33+
build-images: ${{ steps.filter.outputs.build-images }}
34+
barretenberg: ${{ steps.filter.outputs.barretenberg }}
35+
barretenberg-cpp: ${{ steps.filter.outputs.barretenberg-cpp }}
36+
noir: ${{ steps.filter.outputs.noir }}
37+
noir-projects: ${{ steps.filter.outputs.noir-projects }}
38+
l1-contracts: ${{ steps.filter.outputs.l1-contracts }}
39+
non-docs: ${{ steps.filter.outputs.non-docs }}
40+
non-misc-ci: ${{ steps.filter.outputs.non-misc-ci }}
41+
non-barretenberg-cpp: ${{ steps.filter.outputs.non-barretenberg-cpp }}
42+
steps:
43+
- uses: actions/checkout@v4
44+
with: { ref: "${{ env.GIT_COMMIT }}" }
45+
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36
46+
id: filter
47+
with:
48+
filters: |
49+
barretenberg:
50+
- 'barretenberg/**'
51+
barretenberg-cpp:
52+
- 'barretenberg/cpp/**'
53+
build-images:
54+
- 'build-images/**'
55+
noir:
56+
- 'noir/**'
57+
avm-transpiler:
58+
- 'avm-transpiler/**'
59+
l1-contracts:
60+
- 'l1-contracts/**'
61+
noir-projects:
62+
- 'noir-projects/**'
63+
non-barretenberg-cpp:
64+
- '!(barretenberg/cpp/**)'
65+
# don't consider AVM stuff 'core bb'
66+
- barretenberg/cpp/pil/**
67+
- barretenberg/cpp/src/barretenberg/vm/**
68+
- barretenberg/cpp/src/barretenberg/**/generated/*
69+
- barretenberg/cpp/src/barretenberg/client_ivc.{hpp,cpp}
70+
non-docs:
71+
- '!(docs/**)'
72+
non-misc-ci:
73+
- '!(.github/**)'
74+
# Always rebuild when this file changes
75+
- .github/workflows/ci.yml
76+
77+
build-images:
78+
needs: [setup, changes]
79+
# Note we don't but the 'if' here as that would also apply to dependent jobs, instead we just copy it into each step
80+
runs-on: ${{ github.event.pull_request.user.login || github.actor }}-x86
81+
steps:
82+
- uses: actions/checkout@v4
83+
if: ${{ needs.changes.outputs.build-images == 'true' }}
84+
with: { ref: "${{ env.GIT_COMMIT }}" }
85+
- uses: ./.github/ci-setup-action
86+
if: ${{ needs.changes.outputs.build-images == 'true' }}
87+
with:
88+
concurrency_key: build-images-x86
89+
- name: "Push Build Images If Changed"
90+
if: ${{ needs.changes.outputs.build-images == 'true' }}
91+
timeout-minutes: 40
92+
run: |
93+
earthly-ci --push ./build-images/+build
94+
95+
build:
96+
needs: [build-images, changes]
97+
if: ${{ needs.changes.outputs.non-docs == 'true' && needs.changes.outputs.non-misc-ci == 'true' && needs.changes.outputs.non-barretenberg-cpp == 'true' }}
98+
runs-on: ${{ github.event.pull_request.user.login || github.actor }}-x86
99+
outputs:
100+
e2e_list: ${{ steps.e2e_list.outputs.list }}
101+
bench_list: ${{ steps.bench_list.outputs.list }}
102+
steps:
103+
- uses: actions/checkout@v4
104+
with: { ref: "${{ env.GIT_COMMIT }}" }
105+
- uses: ./.github/ci-setup-action
106+
with:
107+
concurrency_key: build-x86
108+
# prepare images locally, tagged by commit hash
109+
- name: "Build E2E Image"
110+
timeout-minutes: 40
111+
run: |
112+
earthly-ci ./yarn-project+export-e2e-test-images
113+
114+
network-e2e:
115+
needs: [build, changes]
116+
if: ${{ needs.changes.outputs.non-barretenberg-cpp == 'true' }}
117+
runs-on: ubuntu-20.04
118+
strategy:
119+
matrix:
120+
values_file: ["default.yaml", "3-validators.yaml"]
121+
steps:
122+
- uses: actions/checkout@v4
123+
with: { ref: "${{ env.GIT_COMMIT }}" }
124+
- uses: ./.github/ci-setup-action
125+
- name: Setup and Test
126+
uses: ./.github/ensure-tester-with-images
127+
timeout-minutes: 45
128+
with:
129+
runner_type: ${{ contains(matrix.test, 'prover') && '64core-tester-x86' || '16core-tester-x86' }}
130+
builder_type: builder-x86
131+
# these are copied to the tester and expected by the earthly command below
132+
# if they fail to copy, it will try to build them on the tester and fail
133+
builder_images_to_copy: aztecprotocol/aztec:${{ env.GIT_COMMIT }} aztecprotocol/end-to-end:${{ env.GIT_COMMIT }}
134+
# command to produce the images in case they don't exist
135+
builder_command: scripts/earthly-ci ./yarn-project+export-e2e-test-images
136+
tester_ttl: 40
137+
run: |
138+
set -eux
139+
cd ./yarn-project/end-to-end/
140+
./scripts/setup_local_k8s.sh
141+
export FORCE_COLOR=1
142+
export EARTHLY_BUILD_ARGS="${{ env.EARTHLY_BUILD_ARGS }}"
143+
../../scripts/earthly-ci --exec-stats -P --no-output ./+network-transfer --values-file=${{ matrix.values_file }}
144+
145+
success-check:
146+
runs-on: ubuntu-20.04
147+
needs:
148+
- build-and-test
149+
if: always()
150+
steps:
151+
- name: Report overall success
152+
env:
153+
# We treat any skipped or failing jobs as a failure for the workflow as a whole.
154+
FAIL: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
155+
run: |
156+
if [[ $FAIL == true ]]; then
157+
echo "Test failed."
158+
exit 1
159+
fi
160+
161+
notify:
162+
needs:
163+
- success-check
164+
runs-on: ubuntu-20.04
165+
if: ${{ github.ref == 'refs/heads/master' && failure() }}
166+
steps:
167+
- name: Send notification to aztec3-ci channel if workflow failed on master
168+
uses: slackapi/slack-github-action@v1.25.0
169+
with:
170+
payload: |
171+
{
172+
"url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
173+
}
174+
env:
175+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_NOTIFY_WORKFLOW_TRIGGER_URL }}

0 commit comments

Comments
 (0)