Skip to content

feat(l1): running localnet with client comparisions #3221

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 28 commits into from
Jun 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e494f0d
Make ethrex-only params use spammor and prometheus_grafana
rodrigo-o Jun 17, 2025
b0fa623
Added gas used % to the log
rodrigo-o Jun 18, 2025
fdb6002
Added more info to logs about gas used and enhanced it changing erctx…
rodrigo-o Jun 18, 2025
6f5f40e
Pump up the throughput a bit more
rodrigo-o Jun 18, 2025
804e004
Enabled metrics exporter and tweaked txs
rodrigo-o Jun 18, 2025
5c2cc5c
Fixed variable in dashboard and added metrics to el extra args
rodrigo-o Jun 18, 2025
0d61c41
Merge remote-tracking branch 'origin/main' into ethrex-only-ggas-test
rodrigo-o Jun 18, 2025
f5c2a7e
Added kurtosis name by default to the job variable
rodrigo-o Jun 18, 2025
b4eddb1
Add reth to the ethrex-only test
rodrigo-o Jun 18, 2025
54757dc
Add a revm node and fixed an issue with a panel
rodrigo-o Jun 19, 2025
dd9b67e
Log the evm on startup
rodrigo-o Jun 19, 2025
471de64
Remove unneded diff from the dashboard
rodrigo-o Jun 20, 2025
6fc9cfe
Merge branch 'main' into ethrex-only-ggas-test
rodrigo-o Jun 20, 2025
59a49dd
Enable metrics and grafana + prometheus for all assertoor runs
rodrigo-o Jun 20, 2025
e400ed7
Moved the changes to a new network_params.yaml and autoamtically prov…
rodrigo-o Jun 20, 2025
514949d
removed dashboard
rodrigo-o Jun 20, 2025
e945450
remove spamoor count parameter
rodrigo-o Jun 20, 2025
046bee0
removed previously needed image for feature addition
rodrigo-o Jun 20, 2025
4529c7a
fix logs command to choose one ethrex
rodrigo-o Jun 20, 2025
d2f26be
Commented grafana and prometheus lines on the assertoor config networ…
rodrigo-o Jun 20, 2025
eb70465
Removed missing config in ethrex-only network params
rodrigo-o Jun 20, 2025
85f7d20
Also remove dora from .github network params
rodrigo-o Jun 20, 2025
b1b70f0
Merge branch 'main' into ethrex-only-ggas-test
rodrigo-o Jun 20, 2025
cfeb334
Merge branch 'main' into ethrex-only-ggas-test
rodrigo-o Jun 23, 2025
e0ae484
Merge branch 'main' into ethrex-only-ggas-test
rodrigo-o Jun 23, 2025
6c4f42d
Merge branch 'main' into ethrex-only-ggas-test
rodrigo-o Jun 23, 2025
e419bb4
Merge branch 'main' into ethrex-only-ggas-test
rodrigo-o Jun 24, 2025
766ae55
Merge branch 'main' into ethrex-only-ggas-test
rodrigo-o Jun 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
5 changes: 4 additions & 1 deletion .github/config/assertoor/network_params_blob.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ network_params:
additional_services:
- assertoor
- tx_fuzz
- dora
# - dora
# - prometheus_grafana
# ethereum_metrics_exporter_enabled: true
# Uncomment the previous lines to enable metrics dashboards and dora explorer, useful for local testing

network_params:
electra_fork_epoch: 1
Expand Down
6 changes: 4 additions & 2 deletions .github/config/assertoor/network_params_ethrex_only.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ participants:
cl_image: sigp/lighthouse:v7.0.0-beta.0
validator_count: 32
count: 3
ethereum_metrics_exporter_enabled: true

network_params:
# The address of the staking contract address on the Eth1 chain
Expand All @@ -13,7 +12,10 @@ network_params:

additional_services:
- assertoor
- dora
# - dora
# - prometheus_grafana
# ethereum_metrics_exporter_enabled: true
# Uncomment the previous lines to enable metrics dashboards and dora explorer, useful for local testing

assertoor_params:
run_stability_check: false
Expand Down
5 changes: 4 additions & 1 deletion .github/config/assertoor/network_params_tx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@ participants:

additional_services:
- assertoor
- dora
- spamoor
# - dora
# - prometheus_grafana
# ethereum_metrics_exporter_enabled: true
# Uncomment the previous lines to enable metrics dashboards and dora explorer, useful for local testing

spamoor_params:
spammers:
Expand Down
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ localnet: stop-localnet-silent build-image checkout-ethereum-package ## 🌐 Sta
kurtosis run --enclave $(ENCLAVE) ethereum-package --args-file test_data/network_params.yaml
docker logs -f $$(docker ps -q --filter ancestor=ethrex)

localnet-client-comparision: stop-localnet-silent build-image checkout-ethereum-package ## 🌐 Start local network
cp crates/blockchain/metrics/provisioning/grafana_provisioning/dashboards/common_dashboards/ethrex_l1_perf.json ethereum-package/src/grafana/ethrex_l1_perf.json
kurtosis run --enclave $(ENCLAVE) ethereum-package --args-file test_data/network_params_client_comparision.yaml
docker logs -f $$(docker ps -q -n 1 --filter ancestor=ethrex)

localnet-assertoor-blob: stop-localnet-silent build-image checkout-ethereum-package ## 🌐 Start local network with assertoor test
kurtosis run --enclave $(ENCLAVE) ethereum-package --args-file .github/config/assertoor/network_params_blob.yaml
docker logs -f $$(docker ps -q --filter ancestor=ethrex)
Expand Down
1 change: 1 addition & 0 deletions cmd/ethrex/initializers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ pub async fn init_rollup_store(data_dir: &str) -> StoreRollup {
}

pub fn init_blockchain(evm_engine: EvmEngine, store: Store) -> Arc<Blockchain> {
info!("Initiating blockchain with EVM: {}", evm_engine);
Copy link
Collaborator Author

@rodrigo-o rodrigo-o Jun 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is useful to know which evm was configured on startup as with other logs showing config at the init steps.

Blockchain::new(evm_engine, store).into()
}

Expand Down
4 changes: 3 additions & 1 deletion crates/blockchain/blockchain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -392,9 +392,11 @@ impl Blockchain {
METRICS_BLOCKS.set_latest_gigagas(throughput);
);
let base_log = format!(
"[METRIC] BLOCK EXECUTION THROUGHPUT: {:.2} Ggas/s TIME SPENT: {:.0} ms. #Txs: {}.",
"[METRIC] BLOCK EXECUTION THROUGHPUT ({}): {:.2} Ggas/s TIME SPENT: {:.0} ms. Gas Used: {:.0}%, #Txs: {}.",
block.header.number,
throughput,
interval,
(block.header.gas_used as f64 / block.header.gas_limit as f64) * 100.0,
Comment on lines +395 to +399
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small addition to show block number and gas_used% along the already shown data in this log.

block.body.transactions.len()
);
let extra_log = if as_gigas > 0.0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
Expand Down Expand Up @@ -82,7 +82,11 @@
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
"useBackend": false,
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
}
}
],
"title": "Execution Client",
Expand All @@ -91,7 +95,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
Expand Down Expand Up @@ -146,7 +150,11 @@
"expr": "eth_con_spec_config_name{instance=~\"$instance\"}",
"legendFormat": "{{name}}",
"range": true,
"refId": "A"
"refId": "A",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
}
}
],
"title": "Consensus Config",
Expand All @@ -155,7 +163,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
Expand Down Expand Up @@ -209,7 +217,11 @@
"expr": "eth_con_fork_current{instance=~\"$instance\"}",
"legendFormat": "{{fork}}",
"range": true,
"refId": "A"
"refId": "A",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
}
}
],
"title": "Consensus Fork",
Expand All @@ -218,7 +230,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
Expand Down Expand Up @@ -317,11 +329,11 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "gas_used",
"expr": "gas_used{job=\"$job\"}",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
Expand All @@ -334,11 +346,11 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "gas_limit",
"expr": "gas_limit{job=\"$job\"}",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
Expand Down Expand Up @@ -383,7 +395,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
Expand Down Expand Up @@ -447,7 +459,7 @@
"properties": [
{
"id": "custom.axisSoftMax",
"value": 0.7
"value": 0.5
}
]
}
Expand Down Expand Up @@ -478,13 +490,17 @@
{
"disableTextWrap": false,
"editorMode": "builder",
"expr": "gigagas",
"expr": "gigagas{job=\"$job\"}",
"fullMetaSearch": false,
"includeNullMetadata": true,
"legendFormat": "Gigagas/s",
"range": true,
"refId": "A",
"useBackend": false
"useBackend": false,
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
}
}
],
"title": "Ggas/s",
Expand All @@ -493,7 +509,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
Expand Down Expand Up @@ -574,11 +590,11 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "block_number",
"expr": "block_number{job=\"$job\"}",
"format": "time_series",
"fullMetaSearch": false,
"hide": false,
Expand All @@ -597,7 +613,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
Expand Down Expand Up @@ -771,22 +787,26 @@
{
"disableTextWrap": false,
"editorMode": "builder",
"expr": "block_number",
"expr": "block_number{job=\"$job\"}",
"fullMetaSearch": false,
"includeNullMetadata": true,
"legendFormat": "Block Number",
"range": true,
"refId": "A",
"useBackend": false
"useBackend": false,
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "gigagas",
"expr": "gigagas{job=\"$job\"}",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
Expand All @@ -799,11 +819,11 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "gas_used",
"expr": "gas_used{job=\"$job\"}",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
Expand All @@ -816,11 +836,11 @@
{
"datasource": {
"type": "prometheus",
"uid": "prom-001"
"uid": "${DS_PROMETHEUS}"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "gas_limit",
"expr": "gas_limit{job=\"$job\"}",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
Expand Down Expand Up @@ -862,7 +882,6 @@
"type": "xychart"
}
],
"preload": false,
"refresh": "5s",
"schemaVersion": 41,
"tags": [],
Expand Down Expand Up @@ -901,6 +920,36 @@
"refresh": 1,
"regex": "",
"type": "query"
},
{
"current": {
"text": "prom-001",
"value": "prom-001"
},
"name": "DS_PROMETHEUS",
"options": [],
"query": "prometheus",
"refresh": 1,
"type": "datasource"
},
{
"current": {
"text": "el-1-ethrex-lighthouse",
"value": "el-1-ethrex-lighthouse"
},
"definition": "label_values(up, job)",
"description": "",
"label": "job",
"name": "job",
"options": [],
"query": {
"qryType": 5,
"query": "label_values(up, job)",
"refId": "PrometheusVariableQueryEditor-VariableQuery"
},
"refresh": 1,
"regex": "",
"type": "query"
}
]
},
Expand All @@ -912,5 +961,5 @@
"timezone": "browser",
"title": "Ethrex L1 - Perf Dashboard",
"uid": "beoru4vp59yiof",
"version": 8
"version": 9
}
Loading
Loading