Skip to content
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

build(core): all-around tx check in assertoor #1259

Merged
merged 47 commits into from
Nov 28, 2024
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
dc84a9a
Initial test of the new split version of the assertoor check
rodrigo-o Nov 25, 2024
b9a58b5
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 25, 2024
22135da
Making the blob match the other params and fixed a line end issue
rodrigo-o Nov 25, 2024
089a7ce
Fix jobs naming in the assertor.yaml
rodrigo-o Nov 25, 2024
f9b87d8
Fix the clientPattern for checking tx additions
rodrigo-o Nov 25, 2024
17102cd
Removed the testing from the network_params file and fixed a small issue
rodrigo-o Nov 25, 2024
c2ae975
Small format change
rodrigo-o Nov 25, 2024
e28ad04
Fix an issue with naming of steps and reduce the tx spammer check tim…
rodrigo-o Nov 25, 2024
da44c87
Moved tx spammer check up in the stability check order
rodrigo-o Nov 26, 2024
8c405bd
Change order of execution for the test, doing the stability one first
rodrigo-o Nov 26, 2024
89d3fe3
Change enclave name and point external tests to the assertoor repo
rodrigo-o Nov 26, 2024
8849c45
Added big call data tx check to the tx step and removed the stability…
rodrigo-o Nov 26, 2024
d64cc7d
Fixed some naming in the assertoor yaml
rodrigo-o Nov 26, 2024
35a09ba
Limit the number of Transactions to check in big-calldata test
rodrigo-o Nov 26, 2024
132660f
Added all the config necesary to a complete run of the big-calldata c…
rodrigo-o Nov 26, 2024
bb07c81
Moved the file reference to param checks when possible
rodrigo-o Nov 26, 2024
86a34a6
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 26, 2024
596a60d
Re,moved the walletPrivkey to take one by default
rodrigo-o Nov 26, 2024
fff30a8
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 26, 2024
1ea0bba
Reduce the number of transactionCount in the big_calldata check
rodrigo-o Nov 26, 2024
2c0c51c
Check having an individual version of the big call-data test
rodrigo-o Nov 26, 2024
3381d2b
Fixed the reference to the new custom big-calldata check
rodrigo-o Nov 26, 2024
f76c491
Re,oved finality checks due to timing
rodrigo-o Nov 26, 2024
7b071bc
Fixed transaction test names and reduced big calldata tx count
rodrigo-o Nov 26, 2024
6cc4fd4
Removed big calldata check due to timing
rodrigo-o Nov 26, 2024
cce7fa7
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 27, 2024
b037209
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 27, 2024
fc02054
Removed the now duplicated assertoor.yaml
rodrigo-o Nov 27, 2024
d56efe6
Fix an issue in the integration yaml
rodrigo-o Nov 27, 2024
556c2d7
Fixed the issue present today regarding prism and kurtosis
rodrigo-o Nov 27, 2024
74b891f
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 28, 2024
d7559bb
Moved GHA assertoor related yamls inside the .github folder
rodrigo-o Nov 28, 2024
c0eab15
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 28, 2024
e0ba0ba
Reduce the ammount of nodes in the tx execution test
rodrigo-o Nov 28, 2024
18eca6f
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 28, 2024
a4c8f16
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 28, 2024
dcbed77
Check if the stable version works better than the assertoor one throu…
rodrigo-o Nov 28, 2024
5668bff
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 28, 2024
dfd8dae
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 28, 2024
53d781f
Check if we can add the big-calldata again now that the transaction t…
rodrigo-o Nov 28, 2024
d694843
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 28, 2024
0716b40
Removed big-calldata check again due to timing
rodrigo-o Nov 28, 2024
574135b
Renamed stability check from .yml to .yaml
rodrigo-o Nov 28, 2024
5a7f713
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 28, 2024
a66fc99
Removed stability check on the tx test and reverted the ci skipped paths
rodrigo-o Nov 28, 2024
2aff3bc
Point the el-staability-check link to main
rodrigo-o Nov 28, 2024
9e79d9f
Merge branch 'main' into assertoor-allaround-tx-check
rodrigo-o Nov 28, 2024
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
39 changes: 34 additions & 5 deletions .github/workflows/asertoor.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ jobs:
build:
uses: ./.github/workflows/docker_build.yaml

run-assertoor:
name: Stability Check
run-assertoor-tx-check:
name: Transaction Check
runs-on: ubuntu-latest
needs: [build]
steps:
Expand All @@ -38,10 +38,39 @@ jobs:
run: |
docker load --input /tmp/ethrex_image.tar

- name: Setup kurtosis testnet and run assertoor tests
- name: Run assertoor
uses: ethpandaops/kurtosis-assertoor-github-action@v1
with:
kurtosis_version: "1.3.1"
enclave_name: "ethrex-assertoor-tx"
kurtosis_version: "1.4.2"
ethereum_package_url: "github.com/lambdaclass/ethereum-package"
ethereum_package_branch: "ethrex-integration"
ethereum_package_args: "./test_data/network_params.yaml"
ethereum_package_args: "./test_data/assertoor/network_params_tx.yaml"

run-assertoor-blob-check:
name: Blobs & Stability Check
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v4

- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: ethrex_image
path: /tmp

- name: Load image
run: |
docker load --input /tmp/ethrex_image.tar

- name: Run assertoor
uses: ethpandaops/kurtosis-assertoor-github-action@v1
with:
enclave_name: "ethrex-assertoor-blob"
kurtosis_version: "1.4.2"
ethereum_package_url: "github.com/lambdaclass/ethereum-package"
ethereum_package_branch: "ethrex-integration"
ethereum_package_args: "./test_data/assertoor/network_params_blob.yaml"


72 changes: 72 additions & 0 deletions test_data/assertoor/el-big-calldata-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# This file is a modified version of the `big-calldata-tx-test` playbooks:
# - https://github.com/ethpandaops/assertoor-test/blob/master/assertoor-tests/big-calldata-tx-test.yaml
#
# For reference on each individual check see: https://github.com/ethpandaops/assertoor/wiki#supported-tasks-in-assertoor

id: big-calldata-tx-test
name: "Big Calldata TX Test"
timeout: 30m
config:
walletPrivkey: ""
transactionCount: 18
transactionsPerBlock: 5
calldataSize: 1000
transactionGasLimit: 5000000
tasks:
- name: check_clients_are_healthy
title: "Check if at least one client is ready"
timeout: 5m
config:
minClientCount: 1

# generate calldata
- name: run_shell
title: "Run shell command"
config:
shell: "bash"
envVars:
calldataSize: "calldataSize"
command: |
echo "Generate calldata with $calldataSize zero bytes"
calldata="0x$(eval "printf '00%.0s' {1..$calldataSize}")"
echo "::set-var calldata $calldata"
echo "yea"

- name: check_consensus_sync_status
title: "Wait for chain activity (slot >= 5)"
timeout: 2m
config:
minSlotHeight: 5

# send big calldata transactions
- name: generate_eoa_transactions
title: "Send ${transactionCount} big calldata transactions"
config:
refillMinBalance: 1000000000000000000000 # 1000 ETH
randomTarget: true
amount: 0
awaitReceipt: true
configVars:
# max 100 pending tx per wallet to avoid nonce gap limits
childWallets: "| [1, (.transactionCount / 100) | round] | max"
limitTotal: "transactionCount"
limitPerBlock: "transactionsPerBlock"
limitPending: "transactionsPerBlock"
privateKey: "walletPrivkey"
gasLimit: "transactionGasLimit"
callData: "calldata"

- name: "sleep"
title: "Wait 30sec to clear up pending transactions"
config:
duration: 30s

- name: run_tasks_concurrent
title: "Check chain stability"
timeout: 15m
config:
tasks:
- name: check_consensus_reorgs
title: "Check consensus reorgs"
- name: check_consensus_forks
title: "Check consensus forks"
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,27 @@

id: el-stability-check
name: "Check Execution Stability"
timeout: 2h
timeout: 18m
tasks:
- name: check_clients_are_healthy
title: "Check if all clients are ready"
timeout: 1m

- name: run_tasks_concurrent
title: "Check if all EL & CL clients are synced"
title: "Check if all EL & CL clients are synced and the tx spammer is working"
timeout: 5m
config:
tasks:
- name: check_consensus_sync_status
title: "Check if CL clients are synced"
- name: check_execution_sync_status
title: "Check if EL clients are synced"
- name: check_consensus_block_proposals
title: "Check the tx spammer is working as expected for block proposal with >= 50 transactions"
config:
minTransactionCount: 50
configVars:
clientPattern: "1-ethrex-lighthouse"

- name: run_task_matrix
title: "Check block proposals from all client pairs"
Expand All @@ -45,3 +51,5 @@ tasks:
title: "Check consensus reorgs"
- name: check_consensus_forks
title: "Check consensus forks"


21 changes: 21 additions & 0 deletions test_data/assertoor/network_params_blob.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
participants:
- el_type: ethrex
cl_type: lighthouse
validator_count: 32
- el_type: geth
cl_type: lighthouse
validator_count: 32
- el_type: geth
cl_type: prysm
validator_count: 32

additional_services:
- assertoor
- tx_spammer

assertoor_params:
run_stability_check: false
run_block_proposal_check: false
run_blob_transaction_check: true
tests:
- https://raw.githubusercontent.com/lambdaclass/ethrex/refs/heads/assertoor-allaround-tx-check/test_data/assertoor/el-stability-check.yml
20 changes: 20 additions & 0 deletions test_data/assertoor/network_params_tx.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
participants:
- el_type: ethrex
cl_type: lighthouse
validator_count: 32
- el_type: geth
cl_type: lighthouse
validator_count: 32
- el_type: geth
cl_type: prysm
validator_count: 32

additional_services:
- assertoor

assertoor_params:
run_stability_check: false
run_block_proposal_check: false
run_transaction_check: true
tests:
- https://raw.githubusercontent.com/lambdaclass/ethrex/refs/heads/assertoor-allaround-tx-check/test_data/assertoor/el-big-calldata-check.yml
rodrigo-o marked this conversation as resolved.
Show resolved Hide resolved
8 changes: 0 additions & 8 deletions test_data/network_params.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,6 @@ participants:
validator_count: 32

additional_services:
- assertoor
- dora
- el_forkmon
- tx_spammer

assertoor_params:
run_stability_check: false
run_block_proposal_check: false
run_blob_transaction_test: true
tests:
- 'https://raw.githubusercontent.com/lambdaclass/ethrex/refs/heads/main/test_data/el-stability-check.yml'