Skip to content

Commit 3d82164

Browse files
committed
Merge branch 'main' into release/v6.0.0
2 parents 42b32e0 + 60eb472 commit 3d82164

File tree

196 files changed

+15253
-4723
lines changed

Some content is hidden

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

196 files changed

+15253
-4723
lines changed

.github/actions/snapsync-run/action.yml

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,37 @@ inputs:
77
timeout:
88
description: Assertoor test timeout.
99
required: true
10+
ethrex_image:
11+
description: Ethrex Docker image repository.
12+
required: false
13+
default: ghcr.io/lambdaclass/ethrex
14+
ethrex_tag:
15+
description: Ethrex Docker image tag.
16+
required: false
17+
default: main
1018

1119
runs:
1220
using: composite
1321
steps:
1422
- uses: actions/checkout@v4
1523

24+
# We need to run this step because kurtosis uses cached docker images but we want the latest ethrex image
25+
- name: Remove cached ethrex image
26+
shell: bash
27+
run: docker image rm -f ${{ inputs.ethrex_image }}:${{ inputs.ethrex_tag }} || true
28+
1629
- name: Generate Kurtosis args
1730
shell: bash
1831
env:
1932
NETWORK_NAME: ${{ inputs.network }}
2033
TIMEOUT: ${{ inputs.timeout }}
34+
ETHREX_IMAGE: ${{ inputs.ethrex_image }}
35+
ETHREX_TAG: ${{ inputs.ethrex_tag }}
2136
run: |
2237
cat > .github/config/assertoor/network_params.generated.yaml <<YAML
2338
participants:
2439
- el_type: ethrex
25-
el_image: ghcr.io/lambdaclass/ethrex:main
40+
el_image: ${ETHREX_IMAGE}:${ETHREX_TAG}
2641
el_extra_params:
2742
- "--syncmode=snap"
2843
cl_type: lighthouse
@@ -61,3 +76,15 @@ runs:
6176
ethereum_package_url: github.com/ethpandaops/ethereum-package
6277
ethereum_package_branch: 82e5a7178138d892c0c31c3839c89d53ffd42d9a
6378
ethereum_package_args: .github/config/assertoor/network_params.generated.yaml
79+
80+
- name: Summarize ethrex version
81+
if: ${{ always() }}
82+
shell: bash
83+
run: |
84+
image="${{ inputs.ethrex_image }}:${{ inputs.ethrex_tag }}"
85+
version="$(docker run --rm "$image" --version 2>/dev/null || true)"
86+
{
87+
echo "### Ethrex Version"
88+
echo ""
89+
echo "- ${version:-unavailable}"
90+
} >> "${GITHUB_STEP_SUMMARY}"

.github/workflows/daily_hive_report.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ jobs:
188188
fi
189189
190190
- name: Generate the hive report
191-
run: cargo run -p hive_report > results.md
191+
run: cargo run --manifest-path tooling/Cargo.toml -p hive_report > results.md
192192

193193
- name: Upload daily result
194194
uses: actions/upload-artifact@v4

.github/workflows/daily_snapsync.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ jobs:
5858
name: Sync ${{ matrix.network }}
5959
runs-on: ethrex-sync
6060
strategy:
61+
fail-fast: false
6162
matrix:
6263
include: ${{ fromJson(needs.prepare.outputs.matrix) }}
6364
steps:

.github/workflows/main_prover.yaml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,21 +54,31 @@ jobs:
5454
# if: ${{ always() && github.event_name == 'merge_group' }}
5555
run: |
5656
cd crates/l2
57-
PROVER=sp1 G=true make build-prover
57+
make build-prover-sp1 GPU=true
58+
59+
- name: Show vks
60+
# if: ${{ always() && github.event_name == 'merge_group' }}
61+
run: |
62+
ls -lah crates/l2/prover/src/guest_program/src/sp1/out/
5863
5964
- name: Build test
6065
# if: ${{ always() && github.event_name == 'merge_group' }}
6166
run: |
6267
cargo test l2 --features l2 --no-run --release
6368
64-
- name: Start L1 & Deploy contracts
69+
- name: Start L1
70+
run: |
71+
cd crates/l2
72+
docker compose up --detach ethrex_l1
73+
74+
- name: Deploy contracts
6575
# if: ${{ always() && github.event_name == 'merge_group' }}
6676
run: |
6777
touch cmd/.env
6878
cd crates/l2
6979
DOCKER_ETHREX_WORKDIR=/usr/local/bin \
7080
ETHREX_DEPLOYER_DEPLOY_RICH=true \
71-
ETHREX_DEPLOYER_SP1_DEPLOY_VERIFIER=true \
81+
ETHREX_L2_SP1=true \
7282
docker compose up --build contract_deployer
7383
7484
DEPLOYER_EXIT_CODE=$(docker inspect -f '{{.State.ExitCode}}' contract_deployer)
@@ -104,7 +114,7 @@ jobs:
104114
# if: ${{ always() && github.event_name == 'merge_group' }}
105115
run: |
106116
cd crates/l2
107-
RUST_LOG=info,ethrex_prover_lib=debug PROVER=sp1 G=true make init-prover &
117+
make init-prover-sp1 GPU=true &
108118
docker logs --follow ethrex_l2 & DOCKER_LOGS_PID=$!
109119
PROPOSER_COINBASE_ADDRESS=0x0007a881CD95B1484fca47615B64803dad620C8d cargo test l2 --release -- --nocapture --test-threads=1
110120
killall ethrex -s SIGINT

.github/workflows/pr-main_l1.yaml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ jobs:
4646
run: |
4747
cargo fmt --all -- --check
4848
49+
- name: Run tooling cargo check
50+
run: cargo check --workspace --all-targets
51+
working-directory: tooling
52+
53+
- name: Run tooling cargo clippy
54+
run: cargo clippy --workspace --all-targets -- -D warnings
55+
working-directory: tooling
56+
57+
- name: Run tooling cargo fmt
58+
run: cargo fmt --all -- --check
59+
working-directory: tooling
60+
4961
test:
5062
# "Test" is a required check, don't change the name
5163
name: Test
@@ -62,7 +74,7 @@ jobs:
6274

6375
- name: Run unit tests
6476
run: |
65-
make test
77+
cargo test --workspace --exclude ethrex-l2
6678
6779
- name: Run Blockchain EF tests
6880
if: ${{ github.event_name != 'merge_group' }}
@@ -148,7 +160,7 @@ jobs:
148160
artifact_prefix: rpc_compat
149161
- name: "Devp2p tests"
150162
simulation: devp2p
151-
limit: discv4|eth|snap/Ping|Amplification|Status|StorageRanges|ByteCodes|GetBlockHeaders|SimultaneousRequests|SameRequestID|ZeroRequestID|GetBlockBodies|MaliciousHandshake|MaliciousStatus|Transaction|NewPooledTxs|GetBlockReceipts|LargeTxRequest|InvalidTxs|BlockRangeUpdate|AccountRange|GetTrieNodes|GetByteCodes|GetStorageRanges|Findnode
163+
limit: discv4|eth|snap/Ping|Amplification|Status|StorageRanges|ByteCodes|GetBlockHeaders|SimultaneousRequests|SameRequestID|ZeroRequestID|GetBlockBodies|MaliciousHandshake|MaliciousStatus|Transaction|NewPooledTxs|GetBlockReceipts|LargeTxRequest|InvalidTxs|BlockRangeUpdate|AccountRange|GetTrieNodes|GetByteCodes|GetStorageRanges|Findnode|BlobViolations
152164
artifact_prefix: devp2p
153165
- name: "Engine Auth and EC tests"
154166
simulation: ethereum/engine

.github/workflows/pr-main_l2.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -166,11 +166,10 @@ jobs:
166166
version: v0.8.29
167167
token: ${{ secrets.GITHUB_TOKEN || '' }}
168168

169-
# also creates empty verification keys (as workflow runs with exec backend)
170169
- name: Build prover
171170
run: |
172171
cd crates/l2
173-
make build-prover
172+
make build-prover-exec
174173
mkdir -p prover/src/guest_program/src/sp1/out && touch prover/src/guest_program/src/sp1/out/riscv32im-succinct-zkvm-vk
175174
176175
- name: Build test
@@ -242,9 +241,6 @@ jobs:
242241
fi
243242
DOCKER_ETHREX_WORKDIR=/usr/local/bin \
244243
ETHREX_DEPLOYER_DEPLOY_RICH=true \
245-
ETHREX_DEPLOYER_PICO_CONTRACT_ADDRESS=0x00000000000000000000000000000000000000aa \
246-
ETHREX_DEPLOYER_SP1_CONTRACT_ADDRESS=0x00000000000000000000000000000000000000aa \
247-
ETHREX_DEPLOYER_RISC0_CONTRACT_ADDRESS=0x00000000000000000000000000000000000000aa \
248244
ETHREX_L2_VALIDIUM=${{ matrix.validium }} \
249245
ETHREX_NATIVE_TOKEN_L1_ADDRESS=$ETHREX_NATIVE_TOKEN_L1_ADDRESS \
250246
docker compose up contract_deployer
@@ -304,7 +300,7 @@ jobs:
304300
fi
305301
sudo chmod -R a+rw crates/l2
306302
cd crates/l2
307-
RUST_LOG=info,ethrex_prover_lib=debug make init-prover &
303+
RUST_LOG=info,ethrex_prover_lib=debug make init-prover-exec &
308304
docker logs --follow ethrex_l2 &
309305
docker logs --follow ethrex_l1 &
310306
PROPOSER_COINBASE_ADDRESS=0x0007a881CD95B1484fca47615B64803dad620C8d cargo test l2 --release -- --nocapture --test-threads=1
@@ -380,7 +376,7 @@ jobs:
380376
cd crates/l2
381377
make init-l1-docker;
382378
ETHREX_DEPLOYER_DEPLOY_RICH=true \
383-
ETHREX_DEPLOYER_TDX_DEPLOY_VERIFIER=true \
379+
ETHREX_L2_TDX=true \
384380
ETHREX_TDX_DEV_MODE=true \
385381
make deploy-l1
386382
@@ -463,9 +459,6 @@ jobs:
463459
cd crates/l2
464460
DOCKER_ETHREX_WORKDIR=/usr/local/bin \
465461
ETHREX_DEPLOYER_DEPLOY_RICH=true \
466-
ETHREX_DEPLOYER_PICO_CONTRACT_ADDRESS=0x00000000000000000000000000000000000000aa \
467-
ETHREX_DEPLOYER_SP1_CONTRACT_ADDRESS=0x00000000000000000000000000000000000000aa \
468-
ETHREX_DEPLOYER_RISC0_CONTRACT_ADDRESS=0x00000000000000000000000000000000000000aa \
469462
COMPILE_CONTRACTS=true \
470463
docker compose up contract_deployer
471464
@@ -503,7 +496,7 @@ jobs:
503496
- name: Start ethrex
504497
run: |
505498
cd crates/l2
506-
make init-l2-dev &
499+
ETHREX_NO_MONITOR=true make init-l2-dev 2>&1 | tee /tmp/ethrex.log &
507500
508501
- name: Wait for ethrex l2
509502
run: |
@@ -520,11 +513,18 @@ jobs:
520513
521514
- name: Init prover
522515
run: |
523-
target/release/ethrex l2 prover --proof-coordinators http://localhost:3900 &
516+
target/release/ethrex l2 prover --proof-coordinators http://localhost:3900 2>&1 | tee /tmp/prover.log &
517+
518+
- name: show envs
519+
run: |
520+
cat crates/l2/.env
524521
525522
- name: Run test
526523
run: |
527524
cd crates/l2
525+
tail -n 100 -f /tmp/ethrex.log &
526+
tail -n 100 -f /tmp/prover.log &
527+
export $(shell cat .env | xargs); \
528528
INTEGRATION_TEST_SKIP_BASE_FEE_VAULT_CHECK=true \
529529
PROPOSER_COINBASE_ADDRESS=0x0007a881CD95B1484fca47615B64803dad620C8d \
530530
cargo test l2 --release -- --nocapture --test-threads=1

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,6 @@ GEMINI.md
7474

7575
# RKYV
7676
*.bin
77+
78+
# Documentation Graphs
79+
!docs/internal/l1/healing/*.svg

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22

33
## Perf
44

5+
### 2025-10-28
6+
7+
- Batch BlobsBundle::validate [#4993](https://github.com/lambdaclass/ethrex/pull/4993)
8+
59
### 2025-10-27
610

11+
- Run "engine_newPayload" block execution in a dedicated worker thread. [#5051](https://github.com/lambdaclass/ethrex/pull/5051)
712
- Reusing FindNode message per lookup loop instead of randomizing the key for each message. [#5047](https://github.com/lambdaclass/ethrex/pull/5047)
813

914
### 2025-10-23
@@ -14,6 +19,10 @@
1419

1520
- Instead of lazy computation of blocklist, do greedy computation of allowlist and store the result, fetch it with the DB. [#4961](https://github.com/lambdaclass/ethrex/pull/4961)
1621

22+
### 2025-10-20
23+
24+
- Remove duplicate subgroup check in ecpairing precompile [#4960](https://github.com/lambdaclass/ethrex/pull/4960)
25+
1726
### 2025-10-17
1827

1928
- Replaces incremental iteration with a one-time precompute method that scans the entire bytecode, building a `BitVec<u8, Msb0>` where bits mark valid `JUMPDEST` positions, skipping `PUSH1..PUSH32` data bytes.
@@ -25,7 +34,6 @@
2534

2635
### 2025-10-13
2736

28-
2937
- Remove explicit cache-related options from RocksDB configuration and reverted optimistic transactions to reduce RAM usage [#4853](https://github.com/lambdaclass/ethrex/pull/4853)
3038
- Remove unnecesary mul in ecpairing [#4843](https://github.com/lambdaclass/ethrex/pull/4843)
3139

0 commit comments

Comments
 (0)