Skip to content

refactor(levm): merge main to cache_rollback #2557

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 71 commits into from
Apr 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
62f8887
ci(l1): enable blockchain ef tests to be run with levm (#2440)
JulianVentura Apr 15, 2025
3df5a16
l2(chore): pin solc version to latest (#2460)
avilagaston9 Apr 16, 2025
febb4dd
fix(l2): limit block to blob size (#2292)
avilagaston9 Apr 16, 2025
9e9ca0b
fix(l1): don't cancel storage healer if state healing ends earlier (#…
fmoletta Apr 16, 2025
3bbb56e
feat(l1): show healing in progress message at set intervals (#2462)
fmoletta Apr 16, 2025
5aa86f0
feat(l1): add mainnet as preset network (#2459)
fmoletta Apr 16, 2025
cfec7f9
refactor(l1): remove usage of `assert_eq` in frame decoding (rlpx) (#…
fmoletta Apr 16, 2025
ac268f1
fix(levm): remove logs from transaction revert (#2483)
JulianVentura Apr 16, 2025
bcb0515
start with changes
JereSalo Apr 16, 2025
aaf4b8d
remove spinner from tests
JereSalo Apr 16, 2025
24840f8
add some comments
JereSalo Apr 16, 2025
0661777
add tests forks variable for running tests of some forks only
JereSalo Apr 16, 2025
717e3ff
feat(l2): enviroment variables option for "l2 init" command (#2488)
mationorato Apr 16, 2025
9016131
update ef tests to a more recent version and add Cancun Legacy Tests
JereSalo Apr 16, 2025
b5e339c
perf(core,levm): remove some unnecessary clones and make functions co…
edg-l Apr 19, 2025
4d0c78f
make little improvements
JereSalo Apr 21, 2025
6ef0ee9
perf(l1,l2): use the new load test for the CI scripts (#2467)
Arkenan Apr 21, 2025
775bc45
Add metrics for execution and storage times per block (#2302)
Arkenan Apr 21, 2025
7d3bef5
run all tests by default
JereSalo Apr 21, 2025
bc9aafd
chore(l1): standarize revm/levm behaviour when importing blocks. (#2452)
mpaulucci Apr 21, 2025
0674de0
chore(core): replace LEVM channel with L1 channel (#2484)
iovoid Apr 21, 2025
a6ea369
fix(l1): fix `--dev` mode to work with Prague fork. (#2481)
mpaulucci Apr 21, 2025
c27824d
make type 4 tx error handling more beautiful
JereSalo Apr 21, 2025
d54e1af
remove print for eftestrunneroptions
JereSalo Apr 21, 2025
4137f5a
skip long test, nonce u64, other fix
JereSalo Apr 21, 2025
d637bb2
feat(l1,l2): add ethereum metrics exporter and grafana support (#2434)
iovoid Apr 21, 2025
05c0508
fix(l2): fixes and cleanup of `to_execution_db()` (#2482)
xqft Apr 21, 2025
c14d9c5
ignore some tests to make running them faster
JereSalo Apr 21, 2025
da37065
fix(l2): use Prague genesis file to fix prover (#2509)
mpaulucci Apr 21, 2025
5344960
improve readme and some other things
JereSalo Apr 21, 2025
793227a
chore(l2): report prover integration test failure to slack (#2503)
jrchatruc Apr 21, 2025
3847123
remove main.rs
JereSalo Apr 21, 2025
0d08a2f
feat(levm): also check cache when querying if account exists (#2489)
iovoid Apr 21, 2025
1ef4cd4
improve code and try fix cache problem
JereSalo Apr 21, 2025
c3c7bc6
add release flag to example
JereSalo Apr 21, 2025
e7832a1
refactor(levm): refactor execution into being non-recursive (#2473)
iovoid Apr 21, 2025
c5d9f2b
add code field only if modified
JereSalo Apr 22, 2025
9aea13e
some nits
JereSalo Apr 22, 2025
08ae1e3
refactor display of comparison report
JereSalo Apr 22, 2025
c4fb016
Merge branch 'levm/improve_get_state_transitions_2' into levm/improve…
JereSalo Apr 22, 2025
0477f84
clippy lints
JereSalo Apr 22, 2025
052bd7c
improve report a bit more
JereSalo Apr 22, 2025
755f7e3
ci(l1): skip flaky snap test. (#2520)
mpaulucci Apr 22, 2025
e96877d
improve report text
JereSalo Apr 22, 2025
ee8c155
Merge branch 'main' into levm/improve_get_state_transitions_2
JereSalo Apr 22, 2025
712f370
implement fix for some revm tests
JereSalo Apr 22, 2025
10e78b7
fix(levm): read chain_id from chain config, not from transaction (#2531)
iovoid Apr 22, 2025
8a1f9ea
dont look up for code if hash is empty keccak
JereSalo Apr 22, 2025
a3b9077
change revm chain id to 1 in ef tests
JereSalo Apr 22, 2025
45e9467
Merge branch 'levm/improve_get_state_transitions_2' into levm/improve…
JereSalo Apr 22, 2025
81d0efd
perf(core): transform the inline variant of NodeHash to a const sized…
edg-l Apr 23, 2025
cbcaef7
Add --metrics flag to enable/disable metrics collection (#2497)
VolodymyrBg Apr 23, 2025
68ec977
fix(l2): adapt parsing signature to dynamic types (#2487)
tomip01 Apr 23, 2025
35ca6af
fix(l2): add missing requirements to run the L2 (#2512)
MauroToscano Apr 23, 2025
fbfe149
fix(levm): improve get state transitions LEVM (#2518)
JereSalo Apr 23, 2025
b9cb992
fix(levm): also use config chain_id (#2537)
iovoid Apr 23, 2025
7c03219
fix(l1): validate incoming payloads even when the node is syncing. (#…
mpaulucci Apr 23, 2025
f4478d7
docs(l2): remove `proposer` in README.md (#2470)
cypherpepe Apr 23, 2025
1694e0a
chore(l2): temporarily disable pico job (#2549)
avilagaston9 Apr 23, 2025
d8fea1c
change unwrap_or_else for expect
JereSalo Apr 23, 2025
243e42c
merge main
JereSalo Apr 23, 2025
9c06fe1
merge main and make thousand changes
JereSalo Apr 23, 2025
eb51970
derive clone in generalizeddatabase
JereSalo Apr 23, 2025
5a7d759
refactor(levm,l1,l2): split block execution and update generation (#2…
iovoid Apr 23, 2025
77747a6
Revert "change unwrap_or_else for expect"
JereSalo Apr 23, 2025
c4af4f8
mutate current callframe only if we have it
JereSalo Apr 23, 2025
95e1026
make a ton of changes for refactor...
JereSalo Apr 23, 2025
db446ee
Merge branch 'main' into levm/improve_ef_tests_stf
JereSalo Apr 23, 2025
4bf2c4d
merge my other pr undoing changes
JereSalo Apr 23, 2025
a0572ab
fix restore cache state
JereSalo Apr 23, 2025
755be1b
fix some failing tests
JereSalo Apr 24, 2025
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
37 changes: 17 additions & 20 deletions .github/scripts/flamegraph_watcher.sh
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,31 +1,28 @@
#!/bin/bash
set -e

# This script sends 171 * <iterations> transactions to a test account, per defined private key
# then polls the account balance until the expected balance has been reached
# and then kills the process. It also measures the elapsed time of the test and
# outputs it to Github Action's outputs.
iterations=3500
value=1
account=0x33c6b73432B3aeA0C1725E415CC40D04908B85fd
end_val=$((171 * $iterations * $value))
# This script runs a load test and then kills the node under test. The load test sends a
# transaction from each rich account to a random one, so we can check their nonce to
# determine that the load test finished.
#
# Usage:
# ./flamegraph_watcher.sh
# Requires a PROGRAM variable to be set (e.g. ethrex). This $PROGRAM will be killed when the
# load test finishes. Must be run from the context of the repo root.

start_time=$(date +%s)
ethrex_l2 test load --path /home/runner/work/ethrex/ethrex/test_data/private_keys.txt -i $iterations -v --value $value --to $account >/dev/null
# TODO(#2486): Move this to a cached build outside.
echo "Building load test"
cargo build --release --manifest-path ./cmd/load_test/Cargo.toml

output=$(ethrex_l2 info -b -a $account --wei 2>&1)
echo "balance: $output"
while [[ $output -lt $end_val ]]; do
sleep 2
output=$(ethrex_l2 info -b -a $account --wei 2>&1)
echo "balance: $output"
done
echo "Starting load test"
start_time=$(date +%s)
RUST_BACKTRACE=1 ./target/release/load_test -k ./test_data/private_keys.txt -t eth-transfers -N 1000 -n http://localhost:1729 -w 5 >/dev/null
end_time=$(date +%s)
elapsed=$((end_time - start_time))

elapsed=$((end_time - start_time))
minutes=$((elapsed / 60))
seconds=$((elapsed % 60))
output=$(ethrex_l2 info -b -a $account --wei 2>&1)
echo "Balance of $output reached in $minutes min $seconds s, killing process"
echo "All load test transactions included in $minutes min $seconds s, killing node process."

echo killing "$PROGRAM"
sudo pkill "$PROGRAM"
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/daily_loc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,9 @@ jobs:
${{ github.event_name == 'workflow_dispatch'
&& secrets.TEST_CHANNEL_SLACK
|| format(
'{0} {1} {2}',
'{0} {1}',
secrets.ETHREX_L1_SLACK_WEBHOOK,
secrets.ETHREX_L2_SLACK_WEBHOOK,
secrets.LEVM_SLACK_WEBHOOK
secrets.ETHREX_L2_SLACK_WEBHOOK
)
}}
run: |
Expand Down
15 changes: 7 additions & 8 deletions .github/workflows/daily_reports.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,9 @@ jobs:
${{ github.event_name == 'workflow_dispatch'
&& secrets.TEST_CHANNEL_SLACK
|| format(
'{0} {1} {2}',
'{0} {1}',
secrets.ETHREX_L1_SLACK_WEBHOOK,
secrets.ETHREX_L2_SLACK_WEBHOOK,
secrets.LEVM_SLACK_WEBHOOK
secrets.ETHREX_L2_SLACK_WEBHOOK
)
}}
run: |
Expand All @@ -72,8 +71,8 @@ jobs:
&& secrets.TEST_CHANNEL_SLACK
|| format(
'{0} {1}',
secrets.ETHREX_L2_SLACK_WEBHOOK,
secrets.LEVM_SLACK_WEBHOOK
secrets.ETHREX_L1_SLACK_WEBHOOK,
secrets.ETHREX_L2_SLACK_WEBHOOK
)
}}
run: |
Expand All @@ -87,7 +86,7 @@ jobs:
SLACK_WEBHOOK: >
${{ github.event_name == 'workflow_dispatch'
&& secrets.TEST_CHANNEL_SLACK
|| secrets.LEVM_SLACK_WEBHOOK
|| secrets.ETHREX_L1_SLACK_WEBHOOK
}}
# Only send diff message if the diff has changed
run: |
Expand Down Expand Up @@ -144,7 +143,7 @@ jobs:
SLACK_WEBHOOK: >
${{ github.event_name == 'workflow_dispatch'
&& secrets.TEST_CHANNEL_SLACK
|| secrets.LEVM_SLACK_WEBHOOK
|| secrets.ETHREX_L1_SLACK_WEBHOOK
}}
run: sh .github/scripts/publish_levm_ef_tests.sh "$SLACK_WEBHOOK"

Expand All @@ -163,7 +162,7 @@ jobs:
|| format(
'{0} {1}',
secrets.ETHREX_L2_SLACK_WEBHOOK,
secrets.LEVM_SLACK_WEBHOOK
secrets.ETHREX_L1_SLACK_WEBHOOK
)
}}
run: |
Expand Down
63 changes: 12 additions & 51 deletions .github/workflows/main_flamegraph_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ permissions:
id-token: write

on:
# re-enable this when fixing the workflow
# push:
# branches: ["main"]
push:
branches: ["main"]
workflow_dispatch:

env:
Expand Down Expand Up @@ -183,13 +182,6 @@ jobs:
${{ env.HOME }}/.cargo/bin/inferno-*
key: ${{ runner.os }}-extra-binaries

- name: Cache ethrex_l2
id: cache-ethrex-l2
uses: actions/cache@v4
with:
path: ${{ env.HOME }}/.cargo/bin/ethrex_l2
key: ${{ runner.os }}-ethrex-l2-${{ hashFiles('cmd/ethrex_l2/Cargo.lock') }}

- name: Change perf settings
run: |
sudo sysctl kernel.perf_event_paranoid=-1
Expand Down Expand Up @@ -236,30 +228,18 @@ jobs:
echo "$HOME/.cargo/bin/inferno-collapse-perf" already found
fi

- name: Install ethrex_l2 cli
run: |
if [ -f "$HOME/.cargo/bin/ethrex_l2" ]; then
echo "$HOME/.cargo/bin/ethrex_l2" already found
else
cargo install --force --path cmd/ethrex_l2
fi
ethrex_l2 config create default --default
ethrex_l2 config set default

# By default ethrex uses revm as evm backend.
- id: generate-flamegraph-ethrex
name: Generate Flamegraph data for Ethrex
shell: bash
run: |
rm -rf target/release/ethrex
cargo build --release --bin ethrex --features dev
CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \
--bin ethrex --features dev -- --dev --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2.json --http.port 1729 >/dev/null &
while [ ! -x "./target/release/ethrex" ]; do
echo "Waiting for ethrex binary to be ready..."
sleep 2
done
--bin ethrex --release --features dev -- \
--dev --network /home/runner/work/ethrex/ethrex/test_data/genesis-l2-ci.json --http.port 1729 >/dev/null &
sleep 10
echo "Compilation finished. Executing load test..."
echo "Executing load test..."
bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh &&
echo "Load test finished"

Expand Down Expand Up @@ -293,12 +273,13 @@ jobs:
with:
toolchain: ${{ env.RUST_RETH_VERSION }}

# We need a reth version that requires a rustc version <= 1.82.0
- name: Checkout reth
uses: actions/checkout@v4
with:
repository: paradigmxyz/reth
path: "reth"
ref: main
ref: b2ead06d1d0804101de0d1eb3a070e08d8eab857

- name: Caching
uses: Swatinem/rust-cache@v2
Expand All @@ -316,13 +297,6 @@ jobs:
${{ env.HOME }}/.cargo/bin/inferno-*
key: ${{ runner.os }}-extra-binaries

- name: Cache ethrex_l2
id: cache-ethrex-l2
uses: actions/cache@v4
with:
path: ${{ env.HOME }}/.cargo/bin/ethrex_l2
key: ${{ runner.os }}-ethrex-l2-${{ hashFiles('cmd/ethrex_l2/Cargo.lock') }}

- name: Change perf settings
run: |
sudo sysctl kernel.perf_event_paranoid=-1
Expand Down Expand Up @@ -369,35 +343,22 @@ jobs:
echo "$HOME/.cargo/bin/inferno-collapse-perf" already found
fi

- name: Install ethrex_l2 cli
run: |
if [ -f "$HOME/.cargo/bin/ethrex_l2" ]; then
echo "$HOME/.cargo/bin/ethrex_l2" already found
else
cargo install --force --path cmd/ethrex_l2
fi
ethrex_l2 config create default --default
ethrex_l2 config set default

- id: generate-flamegraph-reth
name: Build and test reth
shell: bash
# --dev.block-time 1000ms set to 1000ms to match ethrex block generation time
run: |
cd ./reth
rm -rf target/profiling/reth
CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" \
--bin reth --profile profiling -- node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-load-test.json --dev \
cargo build --bin reth --profile profiling
CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -c "record -o perf.data -F997 --call-graph dwarf,16384 -g" --bin reth --profile profiling -- \
node --chain /home/runner/work/ethrex/ethrex/test_data/genesis-l2-ci.json --dev \
--dev.block-time 1000ms --http.port 1729 --txpool.max-pending-txns 100000000 --txpool.max-new-txns 1000000000 \
--txpool.pending-max-count 100000000 --txpool.pending-max-size 10000000000 --txpool.basefee-max-count 100000000000 \
--txpool.basefee-max-size 1000000000000 --txpool.queued-max-count 1000000000 >/dev/null &
while [ ! -x "./target/profiling/reth" ]; do
echo "Waiting for reth binary to be ready..."
sleep 10
done
sleep 30
echo "Executing load test..."
bash /home/runner/work/ethrex/ethrex/.github/scripts/flamegraph_watcher.sh &&
(cd /home/runner/work/ethrex/ethrex; ./.github/scripts/flamegraph_watcher.sh)
echo "Load test finished"

- name: Generate SVG
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/main_prover.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,12 @@ jobs:
- name: Ensure admin permissions in _work
if: always()
run: sudo chown admin:admin -R /home/admin/actions-runner/_work/

- name: Report Status
if: always()
uses: ravsamhq/notify-slack-action@v2
with:
status: ${{ job.status }}
notify_when: 'failure'
env:
SLACK_WEBHOOK_URL: ${{ secrets.ETHREX_L2_SLACK_WEBHOOK }}
13 changes: 7 additions & 6 deletions .github/workflows/pr-main_l1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,11 @@ jobs:
ethrex_flags: ""
- name: "Cancun Engine tests"
simulation: ethereum/engine
test_pattern: "engine-cancun/Blob Transactions On Block 1|Blob Transaction Ordering, Single|Blob Transaction Ordering, Multiple Accounts|Replace Blob Transactions|Parallel Blob Transactions|ForkchoiceUpdatedV3|ForkchoiceUpdatedV2|ForkchoiceUpdated Version|GetPayload|NewPayloadV3 After Cancun|NewPayloadV3 Before Cancun|NewPayloadV3 Versioned Hashes|Incorrect BlobGasUsed|ParentHash equals BlockHash|RPC:|in ForkchoiceState|Unknown SafeBlockHash|Unknown FinalizedBlockHash|Unique|Re-Execute Payload|Multiple New Payloads|NewPayload with|Build Payload with|Re-org to Previously|Safe Re-Org to Side Chain|Transaction Re-Org|Re-Org Back into Canonical Chain, Depth=5|Suggested Fee Recipient Test|PrevRandao Opcode|Fork ID: *|Invalid Missing Ancestor Syncing ReOrg|Request Blob Pooled Transactions"
test_pattern: "engine-cancun/Blob Transactions On Block 1|Blob Transaction Ordering, Single|Blob Transaction Ordering, Multiple Accounts|Replace Blob Transactions|Parallel Blob Transactions|ForkchoiceUpdatedV3|ForkchoiceUpdatedV2|ForkchoiceUpdated Version|GetPayload|NewPayloadV3 After Cancun|NewPayloadV3 Before Cancun|NewPayloadV3 Versioned Hashes|Incorrect BlobGasUsed|ParentHash equals BlockHash|RPC:|in ForkchoiceState|Unknown SafeBlockHash|Unknown FinalizedBlockHash|Unique|Re-Execute Payload|Multiple New Payloads|NewPayload with|Build Payload with|Re-org to Previously|Safe Re-Org to Side Chain|Transaction Re-Org|Re-Org Back into Canonical Chain, Depth=5|Suggested Fee Recipient Test|PrevRandao Opcode|Fork ID: *|Invalid Missing Ancestor Syncing ReOrg|Request Blob Pooled Transactions|Invalid NewPayload, Incomplete Transactions|Invalid P9|Invalid P10|Re-Org Back to Canonical Chain*|Invalid PayloadAttributes*|Invalid NewPayload, VersionedHashes|Invalid NewPayload, Incomplete VersionedHashes|Invalid NewPayload, Extra VersionedHashes|Bad Hash on NewPayload|Unknown HeadBlockHash|In-Order Consecutive Payload Execution|Valid NewPayload->ForkchoiceUpdated|Invalid NewPayload, ParentHash|Syncing=False|Payload Build after New Invalid Payload"
ethrex_flags: ""
- name: "Paris Engine tests"
simulation: ethereum/engine
test_pattern: "engine-api/RPC|Re-org to Previously Validated Sidechain Payload|Re-Org Back into Canonical Chain, Depth=5|Safe Re-Org|Transaction Re-Org|Inconsistent|Suggested Fee|PrevRandao Opcode Transactions|Fork ID|Unknown SafeBlockHash|Unknown FinalizedBlockHash|Unique Payload ID|Re-Execute Payload|Multiple New Payloads|NewPayload with|Payload Build|Build Payload"
test_pattern: "engine-api/RPC|Re-org to Previously Validated Sidechain Payload|Re-Org Back into Canonical Chain, Depth=5|Safe Re-Org|Transaction Re-Org|Inconsistent|Suggested Fee|PrevRandao Opcode Transactions|Fork ID|Unknown SafeBlockHash|Unknown FinalizedBlockHash|Unique Payload ID|Re-Execute Payload|Multiple New Payloads|NewPayload with|Payload Build|Build Payload|Invalid PayloadAttributes|Unknown HeadBlockHash|Valid NewPayload->ForkchoiceUpdated|Invalid NewPayload, ParentHash|Bad Hash on NewPayload|Invalid P9|In-Order Consecutive Payload Execution|Re-Org Back to Canonical Chain"
ethrex_flags: ""
- name: "Engine withdrawal tests"
simulation: ethereum/engine
Expand All @@ -174,10 +174,11 @@ jobs:
simulation: ethereum/sync
test_pattern: ""
ethrex_flags: "--syncmode full"
- name: "Sync snap"
simulation: ethereum/sync
test_pattern: ""
ethrex_flags: "--syncmode snap"
# Flaky test, reenable when fixed
# - name: "Sync snap"
# simulation: ethereum/sync
# test_pattern: ""
# ethrex_flags: "--syncmode snap"
steps:
- name: Checkout sources
uses: actions/checkout@v4
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/pr-main_l2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:
branches: ["**"]
paths:
- "crates/l2/**"
- "test_data/**"
- "crates/blockchain/dev/**"
- "crates/vm/levm/**"
- ".github/workflows/pr-main_l2.yaml"

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/pr-main_l2_contracts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
uses: dtolnay/rust-toolchain@stable
- name: Install solc
uses: pontem-network/get-solc@master
with:
version: v0.8.29
- name: Caching
uses: Swatinem/rust-cache@v2
- name: Run test of deployer.rs
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/pr-main_l2_prover.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:
branches: ["**"]
paths:
- "crates/l2/prover/**"
- "test_data/**"
- "crates/blockchain/dev/**"
- ".github/workflows/pr-main_l2_prover.yaml"

concurrency:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# DISABLED: Temporarily disabled due to Pico dependency issues

# The reason this exists is because the Pico zkVM compiles in nightly only.
name: L2 Prover (nightly)
on:
Expand All @@ -7,6 +9,8 @@ on:
branches: ["**"]
paths:
- "crates/l2/prover/**"
- "test_data/**"
- "crates/blockchain/dev/**"
- "crates/vm/levm/**"
- ".github/workflows/pr-main_l2_prover_nightly.yaml"

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/pr-main_levm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,8 @@ jobs:

- name: Install solc
uses: pontem-network/get-solc@master
with:
version: v0.8.29

- name: Run benchmarks
run: |
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/pr_perf_levm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ jobs:

- name: Install solc
uses: pontem-network/get-solc@master
with:
version: v0.8.29

- name: Run PR benchmarks
run: |
Expand Down Expand Up @@ -89,6 +91,8 @@ jobs:

- name: Install solc
uses: pontem-network/get-solc@master
with:
version: v0.8.29

- name: Run main benchmarks
run: |
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,16 @@

## Perf

### 2025-04-22

- Avoid calculating state transitions after every block in bulk mode [2519](https://github.com/lambdaclass/ethrex/pull/2519)

- Transform the inlined variant of NodeHash to a constant sized array [2516](https://github.com/lambdaclass/ethrex/pull/2516)

### 2025-04-11

- Removed some unnecessary clones and made some functions const: [2438](https://github.com/lambdaclass/ethrex/pull/2438)

- Asyncify some DB read APIs, as well as its users [#2430](https://github.com/lambdaclass/ethrex/pull/2430)

### 2025-04-09
Expand Down
8 changes: 4 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -161,16 +161,16 @@ start-node-with-flamegraph: rm-test-db ## 🚀🔥 Starts an ethrex client used
--datadir test_ethrex

load-test: ## 🚧 Runs a load-test. Run make start-node-with-flamegraph and in a new terminal make load-node
cargo run --manifest-path ./cmd/load_test/Cargo.toml -- -k ./test_data/private_keys.txt -t eth-transfers
cargo run --release --manifest-path ./cmd/load_test/Cargo.toml -- -k ./test_data/private_keys.txt -t eth-transfers

load-test-erc20:
cargo run --manifest-path ./cmd/load_test/Cargo.toml -- -k ./test_data/private_keys.txt -t erc20
cargo run --release --manifest-path ./cmd/load_test/Cargo.toml -- -k ./test_data/private_keys.txt -t erc20

load-test-fibonacci:
cargo run --manifest-path ./cmd/load_test/Cargo.toml -- -k ./test_data/private_keys.txt -t fibonacci
cargo run --release --manifest-path ./cmd/load_test/Cargo.toml -- -k ./test_data/private_keys.txt -t fibonacci

load-test-io:
cargo run --manifest-path ./cmd/load_test/Cargo.toml -- -k ./test_data/private_keys.txt -t io-heavy
cargo run --release --manifest-path ./cmd/load_test/Cargo.toml -- -k ./test_data/private_keys.txt -t io-heavy

rm-test-db: ## 🛑 Removes the DB used by the ethrex client used for testing
sudo cargo run --release --bin ethrex -- removedb --force --datadir test_ethrex
Expand Down
Loading
Loading