Full Code of ethpandaops/ethereum-package for AI

main eac08c083586 cached
385 files
3.4 MB
922.6k tokens
7 symbols
1 requests
Download .txt
Showing preview only (3,686K chars total). Download the full file or copy to clipboard to get everything.
Repository: ethpandaops/ethereum-package
Branch: main
Commit: eac08c083586
Files: 385
Total size: 3.4 MB

Directory structure:
gitextract_qx2a8ttp/

├── .claude/
│   └── skills/
│       └── kurtosis-ethereum/
│           ├── SKILL.md
│           └── kurtosis-ref.sh
├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   └── bug-report.md
│   ├── actions/
│   │   ├── docker-login/
│   │   │   └── action.yaml
│   │   └── kurtosis-install/
│   │       └── action.yaml
│   ├── check-consensus-spec-values.py
│   ├── dependabot.yml
│   ├── remove_trailing_space.py
│   ├── tests/
│   │   ├── 1gpu_zkvm.yaml_norun
│   │   ├── 8gpu_zkvm.yaml_norun
│   │   ├── altair-genesis.yaml
│   │   ├── archive-storage.yaml.norun
│   │   ├── assertoor.yaml
│   │   ├── bal-devnet-0.yaml_norun
│   │   ├── bellatrix-genesis.yaml
│   │   ├── besu-all.yaml
│   │   ├── binary.yaml_norun
│   │   ├── binary_force.yaml_norun
│   │   ├── blobber.yaml
│   │   ├── bootnodoor.yaml
│   │   ├── capella-genesis.yaml
│   │   ├── caplin-basic.yaml
│   │   ├── consensoor-basic.yaml
│   │   ├── custom-contracts.yaml
│   │   ├── custom-mnemonics.yaml
│   │   ├── deneb-genesis.yaml
│   │   ├── deneb.yaml
│   │   ├── disable-peer-scoring.yaml
│   │   ├── dummy-el.yaml
│   │   ├── electra-genesis.yaml
│   │   ├── ephemery.yaml
│   │   ├── erigon-all.yaml
│   │   ├── erpc.yaml
│   │   ├── ethereumjs-all.yaml.norun
│   │   ├── ethrex.yaml
│   │   ├── force.yaml
│   │   ├── full-storage.yaml.norun
│   │   ├── fulu-genesis.yaml
│   │   ├── fulu-mev.yaml
│   │   ├── fulu.yaml
│   │   ├── geth-all.yaml
│   │   ├── grandine-all.yaml
│   │   ├── hoodi-shadowfork.yaml_norun
│   │   ├── hoodi-shadowfork_at_height.yaml_norun
│   │   ├── lighthouse-all.yaml
│   │   ├── lodestar-all.yaml
│   │   ├── mainnet-split.yaml.norun
│   │   ├── mainnet.yaml.norun
│   │   ├── mempool_bridge.yaml
│   │   ├── mev-buildoor.yaml
│   │   ├── mev-commit-boost.yaml
│   │   ├── mev-helix.yaml
│   │   ├── mev-mock.yaml
│   │   ├── mev-multiple-relays.yaml
│   │   ├── mev.yaml
│   │   ├── minimal-fulu.yaml
│   │   ├── minimal-mev.yaml
│   │   ├── minimal.yaml
│   │   ├── mix-assert.yaml
│   │   ├── mix-persistence-k8s.yaml
│   │   ├── mix-persistence.yaml
│   │   ├── mix-public.yaml
│   │   ├── mix-with-tools-mev.yaml
│   │   ├── mix-with-tools-minimal.yaml
│   │   ├── mix-with-tools.yaml
│   │   ├── mix.yaml
│   │   ├── mixed-cl-vc.yml
│   │   ├── multi-beacon.yaml
│   │   ├── nethermind-all.yaml
│   │   ├── nimbus-all.yaml
│   │   ├── nimbus-eth1-all.yaml
│   │   ├── nimbus-mev.yaml
│   │   ├── node-selectors.yaml
│   │   ├── parallel-keystores.yaml
│   │   ├── participants-matrix.yaml
│   │   ├── phase0-genesis.yaml
│   │   ├── preregistered_validator_count.yaml
│   │   ├── prysm-all.yaml
│   │   ├── rakoon.yaml
│   │   ├── remote-signer.yaml
│   │   ├── reth-all.yaml
│   │   ├── sepolia-mix.yaml
│   │   ├── skip.yaml
│   │   ├── split-nimbus.yaml
│   │   ├── split-teku.yaml
│   │   ├── teku-all.yaml
│   │   ├── tolerations.yaml
│   │   ├── vero-all.yaml
│   │   └── zkboost.yaml
│   └── workflows/
│       ├── check-consensus-spec-values.yml
│       ├── check-typos.yml
│       ├── conventional-pr-title-checker.yml
│       ├── nightly.yml
│       ├── per-pr.yml
│       ├── release-please.yml
│       └── run-k8s.yml
├── .gitignore
├── .release-please-manifest.json
├── .typos.toml
├── CHANGELOG.md
├── LICENSE
├── README.md
├── _typos.toml
├── docs/
│   └── architecture.md
├── examples/
│   └── README.md
├── kurtosis.yml
├── main.star
├── network_params.yaml
├── release-please-config.json
├── rename.sh
├── src/
│   ├── apache/
│   │   └── apache_launcher.star
│   ├── assertoor/
│   │   └── assertoor_launcher.star
│   ├── blobber/
│   │   ├── blobber_context.star
│   │   └── blobber_launcher.star
│   ├── blobscan/
│   │   └── blobscan_launcher.star
│   ├── blockscout/
│   │   └── blockscout_launcher.star
│   ├── blutgang/
│   │   └── blutgang_launcher.star
│   ├── bootnodoor/
│   │   └── bootnodoor_launcher.star
│   ├── broadcaster/
│   │   └── broadcaster.star
│   ├── checkpointz/
│   │   └── checkpointz_launcher.star
│   ├── cl/
│   │   ├── caplin/
│   │   │   └── caplin_launcher.star
│   │   ├── cl_context.star
│   │   ├── cl_launcher.star
│   │   ├── cl_node_ready_conditions.star
│   │   ├── cl_shared.star
│   │   ├── consensoor/
│   │   │   └── consensoor_launcher.star
│   │   ├── grandine/
│   │   │   └── grandine_launcher.star
│   │   ├── lighthouse/
│   │   │   └── lighthouse_launcher.star
│   │   ├── lodestar/
│   │   │   └── lodestar_launcher.star
│   │   ├── nimbus/
│   │   │   └── nimbus_launcher.star
│   │   ├── prysm/
│   │   │   └── prysm_launcher.star
│   │   └── teku/
│   │       └── teku_launcher.star
│   ├── dora/
│   │   └── dora_launcher.star
│   ├── dugtrio/
│   │   └── dugtrio_launcher.star
│   ├── el/
│   │   ├── besu/
│   │   │   └── besu_launcher.star
│   │   ├── dummy/
│   │   │   └── dummy_launcher.star
│   │   ├── el_admin_node_info.star
│   │   ├── el_context.star
│   │   ├── el_launcher.star
│   │   ├── el_shared.star
│   │   ├── erigon/
│   │   │   └── erigon_launcher.star
│   │   ├── ethereumjs/
│   │   │   └── ethereumjs_launcher.star
│   │   ├── ethrex/
│   │   │   └── ethrex_launcher.star
│   │   ├── geth/
│   │   │   └── geth_launcher.star
│   │   ├── nethermind/
│   │   │   └── nethermind_launcher.star
│   │   ├── nimbus-eth1/
│   │   │   └── nimbus_launcher.star
│   │   └── reth/
│   │       └── reth_launcher.star
│   ├── erpc/
│   │   └── erpc_launcher.star
│   ├── ethereum_metrics_exporter/
│   │   ├── ethereum_metrics_exporter_context.star
│   │   └── ethereum_metrics_exporter_launcher.star
│   ├── forkmon/
│   │   └── forkmon_launcher.star
│   ├── forky/
│   │   └── forky_launcher.star
│   ├── full_beaconchain/
│   │   └── full_beaconchain_launcher.star
│   ├── grafana/
│   │   └── grafana_launcher.star
│   ├── mempool_bridge/
│   │   └── mempool_bridge_launcher.star
│   ├── mev/
│   │   ├── buildoor/
│   │   │   └── buildoor_launcher.star
│   │   ├── commit-boost/
│   │   │   └── mev_boost/
│   │   │       ├── mev_boost_context.star
│   │   │       └── mev_boost_launcher.star
│   │   ├── flashbots/
│   │   │   ├── mev_boost/
│   │   │   │   ├── mev_boost_context.star
│   │   │   │   └── mev_boost_launcher.star
│   │   │   ├── mev_builder/
│   │   │   │   └── mev_builder_launcher.star
│   │   │   ├── mev_custom_flood/
│   │   │   │   ├── mev_custom_flood_launcher.star
│   │   │   │   └── sender.py
│   │   │   ├── mev_relay/
│   │   │   │   └── mev_relay_launcher.star
│   │   │   └── mock_mev/
│   │   │       └── mock_mev_launcher.star
│   │   ├── helix/
│   │   │   └── helix_relay_launcher.star
│   │   └── mev-rs/
│   │       ├── mev_boost/
│   │       │   ├── mev_boost_context.star
│   │       │   └── mev_boost_launcher.star
│   │       ├── mev_builder/
│   │       │   └── mev_builder_launcher.star
│   │       └── mev_relay/
│   │           └── mev_relay_launcher.star
│   ├── network_launcher/
│   │   ├── devnet.star
│   │   ├── ephemery.star
│   │   ├── kurtosis.star
│   │   ├── public_network.star
│   │   └── shadowfork.star
│   ├── nginx/
│   │   └── nginx_launcher.star
│   ├── node_metrics_info.star
│   ├── package_io/
│   │   ├── constants.star
│   │   ├── input_parser.star
│   │   └── sanity_check.star
│   ├── participant.star
│   ├── participant_network.star
│   ├── prefunded_accounts/
│   │   └── get_prefunded_accounts.star
│   ├── prelaunch_data_generator/
│   │   ├── el_cl_genesis/
│   │   │   ├── el_cl_genesis_data.star
│   │   │   └── el_cl_genesis_generator.star
│   │   ├── genesis_constants/
│   │   │   └── genesis_constants.star
│   │   └── validator_keystores/
│   │       ├── generate_keystores_result.star
│   │       ├── keystore_files.star
│   │       ├── validator_keystore_generator.star
│   │       └── validator_ranges_generator.star
│   ├── prometheus/
│   │   └── prometheus_launcher.star
│   ├── rakoon/
│   │   └── rakoon.star
│   ├── remote_signer/
│   │   ├── remote_signer_context.star
│   │   └── remote_signer_launcher.star
│   ├── shared_utils/
│   │   └── shared_utils.star
│   ├── slashoor/
│   │   └── slashoor_launcher.star
│   ├── snooper/
│   │   ├── snooper_beacon_context.star
│   │   ├── snooper_beacon_launcher.star
│   │   ├── snooper_el_context.star
│   │   └── snooper_el_launcher.star
│   ├── spamoor/
│   │   └── spamoor.star
│   ├── static_files/
│   │   └── static_files.star
│   ├── tempo/
│   │   └── tempo_launcher.star
│   ├── tracoor/
│   │   └── tracoor_launcher.star
│   ├── tx_fuzz/
│   │   └── tx_fuzz.star
│   ├── vc/
│   │   ├── lighthouse.star
│   │   ├── lodestar.star
│   │   ├── nimbus.star
│   │   ├── prysm.star
│   │   ├── shared.star
│   │   ├── teku.star
│   │   ├── vc_context.star
│   │   ├── vc_launcher.star
│   │   └── vero.star
│   ├── xatu_sentry/
│   │   ├── xatu_sentry_context.star
│   │   └── xatu_sentry_launcher.star
│   └── zkboost/
│       └── zkboost_launcher.star
├── static_files/
│   ├── apache-config/
│   │   ├── enode.txt.tmpl
│   │   ├── enr.txt.tmpl
│   │   ├── enr_list.txt.tmpl
│   │   └── index.html
│   ├── assertoor-config/
│   │   ├── config.yaml.tmpl
│   │   └── tests/
│   │       ├── all-opcodes-transaction-test.yaml
│   │       ├── blob-transactions-test.yaml
│   │       ├── block-proposal-check.yaml
│   │       ├── eoa-transactions-test.yaml
│   │       ├── stability-check.yaml
│   │       └── validator-lifecycle-test.yaml
│   ├── blutgang-config/
│   │   └── config.toml.tmpl
│   ├── checkpointz-config/
│   │   └── config.yaml.tmpl
│   ├── dora-config/
│   │   └── config.yaml.tmpl
│   ├── dugtrio-config/
│   │   └── config.yaml.tmpl
│   ├── erpc-config/
│   │   └── erpc.yaml.tmpl
│   ├── forkmon-config/
│   │   └── config.toml.tmpl
│   ├── forky-config/
│   │   └── config.yaml.tmpl
│   ├── full-beaconchain-config/
│   │   └── config.yaml.tmpl
│   ├── genesis-generation-config/
│   │   └── el-cl/
│   │       ├── additional-contracts.json.tmpl
│   │       └── values.env.tmpl
│   ├── grafana-config/
│   │   ├── dashboards/
│   │   │   ├── beacon-metrics-dashboard.json
│   │   │   ├── besu-dashboard.json
│   │   │   ├── default.json
│   │   │   ├── ethereum-metrics-exporter-overview.json
│   │   │   ├── ethereum-metrics-exporter.json
│   │   │   ├── geth-dashboard.json
│   │   │   ├── lighthouse/
│   │   │   │   ├── AttestationProcessing.json
│   │   │   │   ├── BeaconProcessorV2.json
│   │   │   │   ├── BlockProcessing.json
│   │   │   │   ├── BlockProduction.json
│   │   │   │   ├── EIP8025ProofEngine.json
│   │   │   │   ├── EIP8025ProofSync.json
│   │   │   │   ├── ForkChoice.json
│   │   │   │   ├── Network.json
│   │   │   │   ├── Summary.json
│   │   │   │   ├── SyncMetrics.json
│   │   │   │   └── ValidatorClient.json
│   │   │   ├── peerdas-dashboard.json
│   │   │   ├── prysm-latency-dashboard.json
│   │   │   ├── teku-dashboard.json
│   │   │   ├── vero-detailed.json
│   │   │   └── zkboost/
│   │   │       └── zkboost.json
│   │   └── templates/
│   │       ├── dashboard-providers.yml.tmpl
│   │       └── datasource.yml.tmpl
│   ├── jwt/
│   │   └── jwtsecret
│   ├── keymanager/
│   │   ├── generate_certs.sh
│   │   ├── keymanager.txt
│   │   ├── openssl.cnf
│   │   └── validator_keystore.p12
│   ├── mempool-bridge-config/
│   │   └── config.yaml.tmpl
│   ├── mev/
│   │   ├── commit-boost/
│   │   │   └── cb-config.toml.tmpl
│   │   ├── flashbots/
│   │   │   └── mev_builder/
│   │   │       └── config.toml.tmpl
│   │   ├── helix/
│   │   │   └── config.yaml.tmpl
│   │   └── mev-rs/
│   │       ├── mev_boost/
│   │       │   └── config.toml.tmpl
│   │       ├── mev_builder/
│   │       │   └── config.toml.tmpl
│   │       └── mev_relay/
│   │           └── config.toml.tmpl
│   ├── nginx-config/
│   │   ├── enode.txt.tmpl
│   │   ├── enr.txt.tmpl
│   │   ├── enr_list.txt.tmpl
│   │   └── index.html
│   ├── peerdas-node-keys/
│   │   ├── grandine/
│   │   │   ├── node-key-file-1/
│   │   │   │   └── key
│   │   │   ├── node-key-file-10/
│   │   │   │   └── key
│   │   │   ├── node-key-file-11/
│   │   │   │   └── key
│   │   │   ├── node-key-file-12/
│   │   │   │   └── key
│   │   │   ├── node-key-file-13/
│   │   │   │   └── key
│   │   │   ├── node-key-file-14/
│   │   │   │   └── key
│   │   │   ├── node-key-file-15/
│   │   │   │   └── key
│   │   │   ├── node-key-file-16/
│   │   │   │   └── key
│   │   │   ├── node-key-file-2/
│   │   │   │   └── key
│   │   │   ├── node-key-file-3/
│   │   │   │   └── key
│   │   │   ├── node-key-file-4/
│   │   │   │   └── key
│   │   │   ├── node-key-file-5/
│   │   │   │   └── key
│   │   │   ├── node-key-file-6/
│   │   │   │   └── key
│   │   │   ├── node-key-file-7/
│   │   │   │   └── key
│   │   │   ├── node-key-file-8/
│   │   │   │   └── key
│   │   │   └── node-key-file-9/
│   │   │       └── key
│   │   ├── keys.json
│   │   ├── lighthouse/
│   │   │   ├── node-key-file-1/
│   │   │   │   └── key
│   │   │   ├── node-key-file-10/
│   │   │   │   └── key
│   │   │   ├── node-key-file-11/
│   │   │   │   └── key
│   │   │   ├── node-key-file-12/
│   │   │   │   └── key
│   │   │   ├── node-key-file-13/
│   │   │   │   └── key
│   │   │   ├── node-key-file-14/
│   │   │   │   └── key
│   │   │   ├── node-key-file-15/
│   │   │   │   └── key
│   │   │   ├── node-key-file-16/
│   │   │   │   └── key
│   │   │   ├── node-key-file-2/
│   │   │   │   └── key
│   │   │   ├── node-key-file-3/
│   │   │   │   └── key
│   │   │   ├── node-key-file-4/
│   │   │   │   └── key
│   │   │   ├── node-key-file-5/
│   │   │   │   └── key
│   │   │   ├── node-key-file-6/
│   │   │   │   └── key
│   │   │   ├── node-key-file-7/
│   │   │   │   └── key
│   │   │   ├── node-key-file-8/
│   │   │   │   └── key
│   │   │   └── node-key-file-9/
│   │   │       └── key
│   │   ├── lodestar/
│   │   │   ├── node-key-file-1/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-10/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-11/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-12/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-13/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-14/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-15/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-16/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-2/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-3/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-4/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-5/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-6/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-7/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-8/
│   │   │   │   └── peer-id.json
│   │   │   └── node-key-file-9/
│   │   │       └── peer-id.json
│   │   ├── nimbus/
│   │   │   ├── node-key-file-1.json
│   │   │   ├── node-key-file-10.json
│   │   │   ├── node-key-file-11.json
│   │   │   ├── node-key-file-12.json
│   │   │   ├── node-key-file-13.json
│   │   │   ├── node-key-file-14.json
│   │   │   ├── node-key-file-15.json
│   │   │   ├── node-key-file-16.json
│   │   │   ├── node-key-file-2.json
│   │   │   ├── node-key-file-3.json
│   │   │   ├── node-key-file-4.json
│   │   │   ├── node-key-file-5.json
│   │   │   ├── node-key-file-6.json
│   │   │   ├── node-key-file-7.json
│   │   │   ├── node-key-file-8.json
│   │   │   └── node-key-file-9.json
│   │   ├── prysm/
│   │   │   ├── node-key-file-1
│   │   │   ├── node-key-file-10
│   │   │   ├── node-key-file-11
│   │   │   ├── node-key-file-12
│   │   │   ├── node-key-file-13
│   │   │   ├── node-key-file-14
│   │   │   ├── node-key-file-15
│   │   │   ├── node-key-file-16
│   │   │   ├── node-key-file-2
│   │   │   ├── node-key-file-3
│   │   │   ├── node-key-file-4
│   │   │   ├── node-key-file-5
│   │   │   ├── node-key-file-6
│   │   │   ├── node-key-file-7
│   │   │   ├── node-key-file-8
│   │   │   └── node-key-file-9
│   │   └── teku/
│   │       ├── node-key-file-1
│   │       ├── node-key-file-10
│   │       ├── node-key-file-11
│   │       ├── node-key-file-12
│   │       ├── node-key-file-13
│   │       ├── node-key-file-14
│   │       ├── node-key-file-15
│   │       ├── node-key-file-16
│   │       ├── node-key-file-2
│   │       ├── node-key-file-3
│   │       ├── node-key-file-4
│   │       ├── node-key-file-5
│   │       ├── node-key-file-6
│   │       ├── node-key-file-7
│   │       ├── node-key-file-8
│   │       └── node-key-file-9
│   ├── slashoor-config/
│   │   └── config.yaml.tmpl
│   ├── spamoor-config/
│   │   ├── rpc-hosts.txt.tmpl
│   │   └── startup-spammer.yaml.tmpl
│   ├── tempo-config/
│   │   └── tempo.yaml.tmpl
│   ├── tracoor-config/
│   │   └── config.yaml.tmpl
│   ├── validator-ranges/
│   │   └── config.yaml.tmpl
│   ├── xatu-sentry-config/
│   │   └── config.yaml.tmpl
│   └── zkboost-config/
│       └── config.toml.tmpl
└── version.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .claude/skills/kurtosis-ethereum/SKILL.md
================================================
---
name: kurtosis-ethereum
description: Run Ethereum multi-client devnets using Kurtosis and the ethpandaops/ethereum-package. Use for spinning up local devnets, syncing public testnets, validating cross-client interop, testing fork transitions, shadowforks, running assertoor checks, debugging CL/EL client interactions, or verifying new feature implementations across multiple consensus and execution clients.
allowed-tools: Bash, Read, Write, Edit, WebFetch, Glob, Grep
---

# Kurtosis Devnet

Run Ethereum consensus/execution client devnets via [kurtosis](https://github.com/kurtosis-tech/kurtosis) + [ethereum-package](https://github.com/ethpandaops/ethereum-package).

## Config Principle

**Only include fields that differ from defaults.** If the task doesn't mention a setting, don't include it. Shorter configs are better — let the defaults handle the rest.

## Quick Start

```bash
# ALWAYS start grafloki first — enables Loki log collection for debugging
kurtosis loki start

# Write a network_params.yaml, then:
kurtosis run github.com/ethpandaops/ethereum-package \
  --enclave <name> \
  --args-file network_params.yaml \
  --image-download always

kurtosis enclave ls                    # list enclaves
kurtosis enclave inspect <name>        # inspect services + ports
kurtosis service logs <enclave> <svc>  # view logs
kurtosis enclave rm -f <name>          # cleanup
```

**If you are told to use a fork or a branch of the ethereum-package, then replace github.com/ethpandaops/ethereum-package with github.com/<fork>/ethereum-package@branch**

**If you want to quickly sanity check something, then use preset: "minimal". This will lead to much faster networks, but do not default to this approach. Only use it when you are sure you want to quickly check something. When the user expects it to behave like mainnet, then use preset: "mainnet".**

## Config Structure (`network_params.yaml`)

### `participants`

Each entry is a CL+EL node. Only specify fields you need to override:

```yaml
participants:
  - el_type: geth           # geth, reth, nethermind, besu, erigon
    cl_type: lighthouse      # lighthouse, lodestar, prysm, teku, nimbus
```

Available overrides (only use when needed):
- `el_image` / `cl_image` / `vc_image` — custom Docker images
- `el_extra_params` / `cl_extra_params` / `vc_extra_params` — extra CLI flags
- `el_max_cpu` / `el_max_mem` / `cl_max_cpu` / `cl_max_mem` — resource limits (millicores / MB)
- `vc_type` — separate validator client type (creates a dedicated vc service)
- `use_remote_signer: true` + `remote_signer_type: web3signer` — remote signing
- `count` — number of identical instances (default: 1)
- `validator_count` — validators assigned (default: from network config)

### `network_params`

Network-level settings. Only include fields you need to change. Use `kurtosis-ref.sh search <term>` to find exact field names — do not guess.

```yaml
network_params:
  # Only add fields the task requires. Examples of available settings:
  # preset, seconds_per_slot, fork epochs, gas limits, etc.
  # Verify field names with: bash .claude/skills/kurtosis-ethereum/kurtosis-ref.sh search <term>
```

### `additional_services`

```yaml
additional_services:
  - dora                     # block explorer
  - assertoor                # automated testing
```

## Reference Tool

One script for all lookups. Use targeted sections instead of `all`.

```bash
bash .claude/skills/kurtosis-ethereum/kurtosis-ref.sh <section>
```

| Section | What it shows |
|---------|--------------|
| `clients` | Supported EL/CL/VC client types |
| `participants` | Participant fields with defaults |
| `network` | network_params fields with defaults |
| `forks` | Fork epoch fields and defaults |
| `mev` | MEV types and params |
| `services` | Additional services list |
| `sections` | Config subcategory and root-level params |
| `search <term>` | Search the README for a field/concept |
| `example <name>` | Fetch a real CI test config (e.g. `remote-signer`, `minimal`, `mix`) |
| `examples` | List all available CI test configs |

Use targeted sections instead of dumping everything. For example:
- Need to know MEV options? `kurtosis-ref.sh mev`
- Unsure about a field name? `kurtosis-ref.sh search gas_limit`
- Need fork epoch names? `kurtosis-ref.sh forks`
- Setting up something complex? `kurtosis-ref.sh example remote-signer` to see a working CI config

## Service Naming Convention

- EL: `el-{index}-{el_type}-{cl_type}`
- CL: `cl-{index}-{cl_type}-{el_type}`
- VC: `vc-{index}-{el_type}-{cl_type}-{vc_type}` (only when vc_type differs from cl_type)

## Examples

### 2-node devnet

```yaml
participants:
  - el_type: geth
    cl_type: lodestar
  - el_type: reth
    cl_type: lighthouse

network_params:
  preset: minimal
```

### Mixed clients with monitoring

```yaml
participants:
  - el_type: geth
    cl_type: lighthouse
  - el_type: nethermind
    cl_type: prysm
  - el_type: besu
    cl_type: teku

network_params:
  preset: minimal

additional_services:
  - dora
  - assertoor

assertoor_params:
  run_stability_check: true
```

### Custom images

```yaml
participants:
  - el_type: geth
    el_image: ethpandaops/geth:my-branch
    cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:my-branch

network_params:
  preset: minimal
```

### Observer node (no validators)

```yaml
participants:
  - el_type: geth
    cl_type: lighthouse
    validator_count: 0

network_params:
  preset: minimal
```

## Monitoring

```bash
# Check finality
curl -s http://127.0.0.1:<cl-port>/eth/v1/beacon/states/head/finality_checkpoints | jq

# Check peers
curl -s http://127.0.0.1:<cl-port>/eth/v1/node/peers | jq '.data | length'
```

Finality requires ~6-8 min after genesis with default settings (32 slots/epoch, 12s/slot).

## Troubleshooting

| Issue | Fix                                                            |
|-------|----------------------------------------------------------------|
| Image not found | Verify image exists in registry; use `--image-download always` |
| Port conflicts | May be conflicting enclaves, ask user how to proceed           |


================================================
FILE: .claude/skills/kurtosis-ethereum/kurtosis-ref.sh
================================================
#!/usr/bin/env bash
# Unified reference tool for ethereum-package configuration.
# Only fetches the source file(s) needed for the requested section.
#
# Usage:
#   bash .claude/skills/kurtosis/kurtosis-ref.sh <section>
#
# Sections:
#   clients       Supported EL/CL/VC client types
#   participants  Participant fields with defaults
#   network       network_params fields with defaults
#   forks         Fork epoch fields and defaults
#   mev           MEV types and params
#   services      Additional services list
#   sections      Config subcategory and root-level params
#   search <term> Search the README for a field/concept
#   example <name> Fetch a CI test config (e.g. remote-signer, minimal, mix)
#   examples      List available CI test configs
#   all           Dump all sections
set -euo pipefail

SECTION="${1:-all}"
SEARCH_TERM="${2:-}"

BASE="https://raw.githubusercontent.com/ethpandaops/ethereum-package/main/src/package_io"
README_URL="https://raw.githubusercontent.com/ethpandaops/ethereum-package/main/README.md"
TESTS_URL="https://raw.githubusercontent.com/ethpandaops/ethereum-package/main/.github/tests"
TESTS_LIST_URL="https://api.github.com/repos/ethpandaops/ethereum-package/contents/.github/tests"

# Lazy loaders — each file fetched at most once per invocation
fetch_constants()    { [[ -z "${constants:-}" ]]    && constants=$(curl -sfL "$BASE/constants.star"); }
fetch_input_parser() { [[ -z "${input_parser:-}" ]] && input_parser=$(curl -sfL "$BASE/input_parser.star"); }
fetch_sanity_check() { [[ -z "${sanity_check:-}" ]] && sanity_check=$(curl -sfL "$BASE/sanity_check.star"); }

join_csv() { tr '\n' ',' | sed 's/,$//' | sed 's/,/, /g'; }

show_clients() {
  fetch_constants
  echo "## Supported Client Types"
  echo ""
  echo -n "EL: "; echo "$constants" | sed -n '/^EL_TYPE = struct(/,/^)/p' | grep '^ ' | sed 's/.*"\(.*\)".*/\1/' | join_csv; echo
  echo -n "CL: "; echo "$constants" | sed -n '/^CL_TYPE = struct(/,/^)/p' | grep '^ ' | sed 's/.*"\(.*\)".*/\1/' | join_csv; echo
  echo -n "VC: "; echo "$constants" | sed -n '/^VC_TYPE = struct(/,/^)/p' | grep '^ ' | sed 's/.*"\(.*\)".*/\1/' | join_csv; echo
}

show_participants() {
  fetch_input_parser
  echo "## Participant Fields (defaults)"
  echo ""
  echo "$input_parser" | sed -n '/^def default_participant/,/^def /p' | grep '^ *"[a-z]' | grep -v '^\s*"prometheus_config' | grep -v '^\s*"scrape_interval' | grep -v '^\s*"labels' | sed 's/^ *"\(.*\)": \(.*\),$/\1: \2/' | grep -v '^[[:space:]]*$'
  echo "prometheus_config: {scrape_interval: \"15s\", labels: None}"
}

show_network() {
  fetch_input_parser
  echo "## network_params Fields (defaults)"
  echo ""
  echo "$input_parser" | sed -n '/^def default_network_params/,/^def /p' | grep '^ *"' | sed 's/^ *"\(.*\)": \(.*\),$/\1: \2/' | sed 's/constants\.DEFAULT_MNEMONIC/"<default-mnemonic>"/' | sed 's/constants\.FAR_FUTURE_EPOCH/FAR_FUTURE/'
}

show_forks() {
  fetch_input_parser
  echo "## Fork Epoch Defaults"
  echo ""
  echo "$input_parser" | sed -n '/^def default_network_params/,/^def /p' | grep '_fork_epoch' | sed 's/^ *"\(.*\)": \(.*\),$/\1: \2/' | sed 's/constants.FAR_FUTURE_EPOCH/FAR_FUTURE/'
}

show_mev() {
  fetch_constants
  echo "## MEV Types"
  echo ""
  echo "$constants" | grep '_MEV_TYPE = ' | sed 's/.*= "\(.*\)"/\1/' | join_csv; echo
  echo ""
  echo "## MEV Config"
  echo "Set mev_type at root level. Optional mev_params for custom images."
  echo "Participant-level: el_builder_type, cl_builder_type for builder roles."
}

show_services() {
  fetch_sanity_check
  echo "## Additional Services"
  echo ""
  echo "$sanity_check" | sed -n '/^ADDITIONAL_SERVICES_PARAMS = \[/,/^\]/p' | grep '"' | sed 's/.*"\(.*\)".*/\1/' | join_csv; echo
}

show_sections() {
  fetch_sanity_check
  echo "## Config Subcategory Params"
  echo ""
  echo "$sanity_check" | sed -n '/^SUBCATEGORY_PARAMS = {/,/^}/p' | grep '^ *"[a-z_]*": \[' | sed 's/^ *"\([a-z_]*\)".*/\1/' | sort -u | join_csv; echo
  echo ""
  echo "## Root-Level Params"
  echo ""
  echo "$sanity_check" | sed -n '/^ADDITIONAL_CATEGORY_PARAMS = {/,/^}/p' | grep '^ *"' | sed 's/^ *"\([a-z_]*\)".*/\1/' | join_csv; echo
}

do_search() {
  local term="$1"
  local readme
  readme=$(curl -sfL "$README_URL")
  echo "## Matches for '${term}' in ethereum-package README"
  echo ""
  echo "$readme" | grep -n -i -B3 -A2 "$term" | head -80
  echo ""
  echo "(Up to 80 lines shown. Refine search term if needed.)"
}

do_example() {
  local name="$1"
  # Try with .yaml extension first, then .yml
  local content
  content=$(curl -sfL "$TESTS_URL/${name}.yaml" 2>/dev/null) || \
  content=$(curl -sfL "$TESTS_URL/${name}.yml" 2>/dev/null) || \
  content=$(curl -sfL "$TESTS_URL/${name}" 2>/dev/null) || {
    echo "No test config found for '${name}'."
    echo "Use 'kurtosis-ref.sh examples' to list available configs."
    return 1
  }
  echo "## CI test config: ${name}"
  echo ""
  echo "$content"
}

do_examples_list() {
  local listing
  listing=$(curl -sfL "$TESTS_LIST_URL") || {
    echo "Failed to fetch test config listing."
    return 1
  }
  echo "## Available CI test configs"
  echo ""
  echo "$listing" | grep '"name"' | sed 's/.*"name": "\(.*\)".*/\1/' | sed 's/\.yaml$//' | sed 's/\.yml$//' | sort
}

case "$SECTION" in
  clients)      show_clients ;;
  participants)  show_participants ;;
  network|network_params) show_network ;;
  forks)        show_forks ;;
  mev)          show_mev ;;
  services)     show_services ;;
  sections)     show_sections ;;
  search)
    if [[ -z "$SEARCH_TERM" ]]; then
      echo "Usage: kurtosis-ref.sh search <term>"
      exit 1
    fi
    do_search "$SEARCH_TERM"
    ;;
  example)
    if [[ -z "$SEARCH_TERM" ]]; then
      echo "Usage: kurtosis-ref.sh example <name>"
      exit 1
    fi
    do_example "$SEARCH_TERM"
    ;;
  examples) do_examples_list ;;
  all)
    fetch_constants; fetch_input_parser; fetch_sanity_check
    show_clients; echo ""
    show_mev; echo ""
    show_services; echo ""
    show_forks; echo ""
    show_network; echo ""
    show_participants; echo ""
    show_sections
    ;;
  *)
    echo "Unknown section: $SECTION"
    echo "Available: clients, participants, network, forks, mev, services, sections, search <term>, example <name>, examples, all"
    exit 1
    ;;
esac


================================================
FILE: .editorconfig
================================================
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# This is the top-most .editorconfig file (do not search in parent directories)
root = true

# 4 space indentation for all starlark files
[*.star]
indent_style = space
indent_size = 4

# 4 space indentation for all python files
[*.py]

# 2 space indentation for all yaml files
[*.yml, *.yaml]
indent_style = space
indent_size = 2

# 2 space indentation for all json files
[*.json]
indent_style = space
indent_size = 2

[*.yaml]
indent_style = space
indent_size = 2


================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.md
================================================
---
name: Bug report
about: Create a bug report
title: ''
labels: bug
assignees: ''

---

<!-- Ethereum package is meant for strictly development purposes. It is not suitable for production use, and the use of production setup will always be actively discouraged. 
Please note that all issues related to setting up ethereum package in a production environment e.g:
- Setup a long running permanent network
- Exposing services for the public - rpc/beacon/tooling endpoints
- Syncing external nodes to an already running enclave
- Running testnet/mainnet validators
- Any other issues that smell like production use
Any issues that are related to to the above mentioned topics/related to running kurtosis with ethereum-package in a production like environment will be automatically closed. By opening an issue you agree to these terms.  -->


================================================
FILE: .github/actions/docker-login/action.yaml
================================================
name: Docker login
description: Log in to Docker Hub
inputs:
  username:
     required: true
  password:
     required: true
runs:
  using: composite
  steps:
    - name: Check for Docker Hub credentials
      shell: bash
      env:
        DOCKER_USERNAME: ${{ inputs.username }}
        DOCKER_PASSWORD: ${{ inputs.password }}
      run: |
        if [ -z "$DOCKER_USERNAME" ] || [ -z "$DOCKER_PASSWORD" ]; then
          echo "AUTH_EXISTS=false" >> $GITHUB_ENV
          echo "No credentials provided"
        else
          echo "AUTH_EXISTS=true" >> $GITHUB_ENV
          echo "Credentials provided"
        fi

    - name: Login to Docker Hub
      if: env.AUTH_EXISTS == 'true'
      uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
      with:
        username: ${{ inputs.username }}
        password: ${{ inputs.password }}

    - name: Install regctl
      uses: regclient/actions/regctl-installer@1b705e32d40851370799ea5814e83d0a5f6a70dc # v0.1.0

    - name: Check Docker Hub Rate Limits
      shell: bash
      run: regctl image ratelimit ubuntu:latest


================================================
FILE: .github/actions/kurtosis-install/action.yaml
================================================
name: Kurtosis install
inputs:
  version:
    description: 'Version to install'
    required: false
    default: 'latest'
runs:
  using: composite
  steps:
    - name: Install
      shell: bash
      run: |
        echo "deb [trusted=yes] https://sdk.kurtosis.com/kurtosis-cli-release-artifacts/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
        sudo apt update
        if [ "${{ inputs.version }}" = "latest" ]; then
          sudo apt install kurtosis-cli
        else
          sudo apt install kurtosis-cli=${{ inputs.version }}
        fi
        kurtosis analytics disable
        echo "$(dirname $(which kurtosis))" >> $GITHUB_PATH

        # Get the installed version and save it as an environment variable
        KURTOSIS_VERSION=$(kurtosis version | grep -o 'Version:[[:space:]]*[^[:space:]]*' | cut -d':' -f2 | tr -d ' ')
        echo "KURTOSIS_VERSION=$KURTOSIS_VERSION" >> $GITHUB_ENV
        echo "Installed Kurtosis version: $KURTOSIS_VERSION"


================================================
FILE: .github/check-consensus-spec-values.py
================================================
#!/usr/bin/env python3
"""
Compares a generated config.yaml against the upstream consensus-specs config.

Exits non-zero if any non-excluded fields have different values or are missing
from our config relative to the upstream spec.
"""

import argparse
import sys
import urllib.request

import yaml


# Fields that are intentionally testnet-specific or explicitly excluded from comparison.
EXCLUDED_FIELDS = {
    # Network identity - intentionally differs for testnets
    "CONFIG_NAME",
    # Merge transition - testnets start post-merge with TTD=0
    "TERMINAL_TOTAL_DIFFICULTY",
    # Genesis params - testnet-configurable
    "MIN_GENESIS_ACTIVE_VALIDATOR_COUNT",
    "MIN_GENESIS_TIME",
    "GENESIS_FORK_VERSION",
    "GENESIS_DELAY",
    # Fork versions - testnet-specific values
    "ALTAIR_FORK_VERSION",
    "BELLATRIX_FORK_VERSION",
    "CAPELLA_FORK_VERSION",
    "DENEB_FORK_VERSION",
    "ELECTRA_FORK_VERSION",
    "FULU_FORK_VERSION",
    "GLOAS_FORK_VERSION",
    "HEZE_FORK_VERSION",
    "EIP7928_FORK_VERSION",
    # Fork activation epochs - testnets activate all forks at epoch 0
    "ALTAIR_FORK_EPOCH",
    "BELLATRIX_FORK_EPOCH",
    "CAPELLA_FORK_EPOCH",
    "DENEB_FORK_EPOCH",
    "ELECTRA_FORK_EPOCH",
    "FULU_FORK_EPOCH",
    "GLOAS_FORK_EPOCH",
    "HEZE_FORK_EPOCH",
    "EIP7928_FORK_EPOCH",
    # Deposit contract - testnet-configurable
    "DEPOSIT_CHAIN_ID",
    "DEPOSIT_NETWORK_ID",
    "DEPOSIT_CONTRACT_ADDRESS",
    # Blob schedule - explicitly excluded
    "BLOB_SCHEDULE",
    # Deprecated field moved to preset files, not present in spec configs
    "SECONDS_PER_SLOT",
}


def load_yaml(path_or_url: str) -> dict:
    if path_or_url.startswith("http://") or path_or_url.startswith("https://"):
        with urllib.request.urlopen(path_or_url) as response:
            return yaml.safe_load(response.read().decode())
    with open(path_or_url) as f:
        return yaml.safe_load(f)


def compare_configs(our_config: dict, spec_config: dict) -> bool:
    failures = []
    warnings = []

    spec_keys = {k for k in spec_config if k not in EXCLUDED_FIELDS}
    our_keys = {k for k in our_config if k not in EXCLUDED_FIELDS}

    for key in sorted(spec_keys - our_keys):
        failures.append(
            f"  MISSING in our config: {key!r}  (spec has: {spec_config[key]!r})"
        )

    for key in sorted(spec_keys & our_keys):
        spec_val = spec_config[key]
        our_val = our_config[key]
        if spec_val != our_val:
            failures.append(
                f"  MISMATCH {key!r}:\n"
                f"    ours: {our_val!r}\n"
                f"    spec: {spec_val!r}"
            )

    for key in sorted(our_keys - spec_keys):
        warnings.append(
            f"  EXTRA field in our config (not in spec): {key!r} = {our_config[key]!r}"
        )

    if warnings:
        print("Warnings (fields present in our config but not in the upstream spec):")
        for w in warnings:
            print(w)
        print()

    if failures:
        print(f"FAILED: {len(failures)} issue(s) found:")
        for failure in failures:
            print(failure)
        return False

    print(f"OK: all {len(spec_keys & our_keys)} comparable spec fields match.")
    return True


def main():
    parser = argparse.ArgumentParser(
        description="Compare our generated config.yaml against the upstream consensus-specs config"
    )
    parser.add_argument(
        "--our-config",
        required=True,
        help="Path to our generated config.yaml",
    )
    parser.add_argument(
        "--spec-config",
        required=True,
        help="Path or HTTPS URL to the upstream consensus-spec config.yaml",
    )
    args = parser.parse_args()

    our_config = load_yaml(args.our_config)
    spec_config = load_yaml(args.spec_config)

    if not compare_configs(our_config, spec_config):
        sys.exit(1)


if __name__ == "__main__":
    main()


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
   - package-ecosystem: github-actions
     directory: /
     schedule:
        interval: weekly
     groups:
        actions:
           patterns:
              - '*'


================================================
FILE: .github/remove_trailing_space.py
================================================
# This is used by the pr-description-update action
# to trim trailing newlines and spaces in pr descriptions

import sys

def remove():
    line = sys.argv[1]
    return line.strip()

if __name__ == "__main__":
    print(remove())


================================================
FILE: .github/tests/1gpu_zkvm.yaml_norun
================================================
# EIP-8025 testnet with zkboost backed by a single GPU ZisK prover.
#
#
# Run with:
#   kurtosis run --enclave eip8025-zkboost-1gpu \
#       . \
#       --args-file .github/tests/1gpu_zkvm.yaml_norun
#
# Prerequisites:
#   - NVIDIA GPU with drivers installed
#   - NVIDIA Container Toolkit configured for Docker

participants:
  - cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:eth-act-optional-proofs
    el_type: reth
    el_image: ghcr.io/paradigmxyz/reth
    supernode: true
    cl_extra_params:
      - --target-peers=3
      - --proof-engine-endpoint=http://zkboost-1:3000
      - --proof-types=6
    vc_extra_params:
      - --proof-engine-endpoint=http://zkboost-1:3000
      - --proof-types=6
    count: 2
  - cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:eth-act-optional-proofs
    el_type: dummy
    supernode: false
    cl_extra_params:
      - --target-peers=3
      - --proof-engine-endpoint=http://zkboost-1:3000
      - --proof-types=6
    count: 2

network_params:
  seconds_per_slot: 30

additional_services:
  - zkboost
  - dora
  - prometheus
  - grafana
  - tempo

zkboost_params:
  image: ghcr.io/eth-act/zkboost/zkboost:0.6.0
  env:
    RUST_LOG: info,zkboost=debug
  instances:
    - name: zkboost-1
      el_participant_index: 0
  zkvms:
    - kind: ere
      proof_type: reth-zisk
      gpu:
        device_ids: ["0"]


================================================
FILE: .github/tests/8gpu_zkvm.yaml_norun
================================================
# EIP-8025 testnet with zkboost backed by GPU (ZisK) provers.
#
#
# Run with:
#   kurtosis run --enclave eip8025-zkboost-8gpu \
#       . \
#       --args-file .github/tests/8gpu_zkvm.yaml_norun
#
# Prerequisites:
#   - NVIDIA GPUs with drivers installed (8 GPUs: 4 per prover type)
#   - NVIDIA Container Toolkit configured for Docker

participants:
  - cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:eth-act-optional-proofs
    el_type: reth
    el_image: ghcr.io/paradigmxyz/reth
    supernode: true
    cl_extra_params:
      - --target-peers=3
      - --proof-engine-endpoint=http://zkboost-1:3000
      - --proof-types=2,6
    vc_extra_params:
      - --proof-engine-endpoint=http://zkboost-1:3000
      - --proof-types=2,6
    count: 2
  - cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:eth-act-optional-proofs
    el_type: reth
    el_image: ghcr.io/paradigmxyz/reth
    supernode: false
    cl_extra_params:
      - --target-peers=3
      - --proof-engine-endpoint=http://zkboost-1:3000
      - --proof-types=6
    vc_extra_params:
      - --proof-engine-endpoint=http://zkboost-1:3000
      - --proof-types=6
    count: 2

network_params:
  fulu_fork_epoch: 0
  seconds_per_slot: 6

snooper_enabled: false
global_log_level: debug

additional_services:
  - zkboost
  - dora
  - prometheus
  - grafana
  - tempo

zkboost_params:
  image: ghcr.io/eth-act/zkboost/zkboost:0.6.0
  env:
    RUST_LOG: info,zkboost=debug
  instances:
    - name: zkboost-1
      el_participant_index: 0
  zkvms:
    - kind: ere
      proof_type: reth-zisk
      gpu:
        device_ids: ["0", "1", "2", "3"]
    - kind: ere
      proof_type: ethrex-zisk
      gpu:
        device_ids: ["4", "5", "6", "7"]


================================================
FILE: .github/tests/altair-genesis.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    supernode: true
  - el_type: reth
    cl_type: prysm
  - el_type: nethermind
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: nimbus
    cl_type: lodestar
  - el_type: erigon
    cl_type: grandine
  - el_type: ethrex
    cl_type: lodestar
additional_services:
  - dora
network_params:
  altair_fork_epoch: 0
  bellatrix_fork_epoch: 1
  capella_fork_epoch: 2
  deneb_fork_epoch: 3
  electra_fork_epoch: 4
  fulu_fork_epoch: 5
  bpo_1_epoch: 6
  gloas_fork_epoch: 7
  genesis_delay: 120



================================================
FILE: .github/tests/archive-storage.yaml.norun
================================================
# Test archive mode for clients that default to full (geth, nethermind, besu)
participants:
  - el_type: geth
    el_storage_type: archive
    cl_type: lighthouse
  - el_type: nethermind
    el_storage_type: archive
    cl_type: teku
  - el_type: besu
    el_storage_type: archive
    cl_type: nimbus


================================================
FILE: .github/tests/assertoor.yaml
================================================
participants:
  - el_type: geth
    cl_type: lighthouse
    count: 1
  - el_type: geth
    cl_type: lodestar
    count: 1
additional_services:
  - assertoor


================================================
FILE: .github/tests/bal-devnet-0.yaml_norun
================================================
participants_matrix:
  el:
    - el_type: reth
      el_image: ethpandaops/reth:bal-devnet-0
    - el_type: geth
      el_image: ethpandaops/geth:bal-devnet-0
    - el_type: besu
      el_image: ethpandaops/besu:bal-devnet-0
      el_extra_params: ["--bonsai-parallel-tx-processing-enabled=false"]
  cl:
    - cl_type: lodestar
      cl_image: ethpandaops/lodestar:bal-devnet-0
      supernode: true
    - cl_type: prysm
      cl_image: ethpandaops/prysm-beacon-chain:bal-devnet-0
network_params:
  genesis_delay: 20
  fulu_fork_epoch: 0
  gloas_fork_epoch: 1
snooper_enabled: true
dora_params:
  image: ethpandaops/dora:eip7928-support
additional_services:
  - dora
  - tx_fuzz
  - spamoor


================================================
FILE: .github/tests/bellatrix-genesis.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    supernode: true
  - el_type: reth
    cl_type: prysm
  - el_type: nethermind
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: nimbus
    cl_type: lodestar
  - el_type: erigon
    cl_type: grandine
  - el_type: ethrex
    cl_type: lodestar
additional_services:
  - dora
network_params:
  altair_fork_epoch: 0
  bellatrix_fork_epoch: 0
  capella_fork_epoch: 1
  deneb_fork_epoch: 2
  electra_fork_epoch: 3
  fulu_fork_epoch: 4
  bpo_1_epoch: 5
  gloas_fork_epoch: 6
  genesis_delay: 120


================================================
FILE: .github/tests/besu-all.yaml
================================================
participants:
  - el_type: besu
    cl_type: prysm
  - el_type: besu
    cl_type: teku
  - el_type: besu
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: besu
    cl_type: lodestar
  - el_type: besu
    cl_type: grandine


================================================
FILE: .github/tests/binary.yaml_norun
================================================
participants:
  - cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    count: 4
  - el_type: geth
    cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    cl_binary_path: binary/lighthouse
additional_services:
  - dora


================================================
FILE: .github/tests/binary_force.yaml_norun
================================================
participants:
  - cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    count: 4
  - el_type: geth
    cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    cl_binary_path: binary/lighthouse
    cl_force_restart: true
additional_services:
  - dora


================================================
FILE: .github/tests/blobber.yaml
================================================
participants:
  - el_type: geth
    el_image: ethpandaops/geth:master
    cl_type: lighthouse
    blobber_enabled: true
    blobber_image: ethpandaops/blobber:latest
    blobber_extra_params:
      - --proposal-action-frequency=1
      - "--proposal-action={\"name\": \"blob_gossip_delay\", \"delay_milliseconds\": 3000}"
    count: 1
  - el_type: geth
    el_image: ethpandaops/geth:master
    cl_type: lodestar
    count: 1
  - el_type: geth
    el_image: ethpandaops/geth:master
    cl_type: prysm
    blobber_enabled: true
    blobber_image: ethpandaops/blobber:latest
    blobber_extra_params:
      - --proposal-action-frequency=1
      - "--proposal-action={\"name\": \"blob_gossip_delay\", \"delay_milliseconds\": 30000}"
    count: 1

additional_services:
  - dora
  - spamoor

#       - "--proposal-action={\"name\": \"blob_gossip_delay\", \"delay_milliseconds\": 30000}"
#       - "--proposal-action={\"name\": \"conflicting_blobs\"}"


================================================
FILE: .github/tests/bootnodoor.yaml
================================================
participants:
  - el_type: geth
    cl_type: lighthouse
    count: 1
  - el_type: geth
    cl_type: lodestar
    count: 1
additional_services:
  - dora
  - bootnodoor



================================================
FILE: .github/tests/capella-genesis.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    supernode: true
  - el_type: reth
    cl_type: prysm
  - el_type: nethermind
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: nimbus
    cl_type: lodestar
  - el_type: erigon
    cl_type: grandine
  - el_type: ethrex
    cl_type: teku
additional_services:
  - dora
network_params:
  altair_fork_epoch: 0
  bellatrix_fork_epoch: 0
  capella_fork_epoch: 0
  deneb_fork_epoch: 1
  electra_fork_epoch: 2
  fulu_fork_epoch: 3
  bpo_1_epoch: 4
  gloas_fork_epoch: 5
  genesis_delay: 120


================================================
FILE: .github/tests/caplin-basic.yaml
================================================
participants:
  - el_type: erigon
    cl_type: caplin
    use_separate_vc: true
    vc_type: lighthouse
  - el_type: geth
    cl_type: lighthouse


================================================
FILE: .github/tests/consensoor-basic.yaml
================================================
participants:
  - el_type: geth
    el_image: ethpandaops/geth:epbs-devnet-0
    cl_type: consensoor
    cl_image: ethpandaops/consensoor:main
network_params:
  #gloas_fork_epoch: 1  # GLOAS/ePBS at epoch 2 (slot 16 with minimal preset)
  preset: mainnet


additional_services:
  - dora
  #- spamoor
snooper_enabled: true
global_log_level: debug

port_publisher:
  cl:
    enabled: true
  additional_services:
    enabled: true


================================================
FILE: .github/tests/custom-contracts.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: teku
network_params:
  network: kurtosis
  additional_preloaded_contracts: '{"0x123463a4B065722E99115D6c222f267d9cABb524": {"balance": "2ETH","code": "0x1234","storage": {}}}'


================================================
FILE: .github/tests/custom-mnemonics.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: teku
network_params:
  network: kurtosis
  num_validator_keys_per_node: 128
  additional_mnemonics:
    - mnemonic: "estate dog switch misery manage room million bleak wrap distance always insane usage busy chicken limit already duck feature unhappy dial emotion expire please"
      count: 10
      status: 1 # exited
    - mnemonic: "bachelor goose intact globe grab observe youth kit castle purchase ranch safe wire planet portion artist soon captain before cute dinner arrange cat churn"
      count: 10
      status: 2 # slashed & exited


================================================
FILE: .github/tests/deneb-genesis.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: prysm
network_params:
  altair_fork_epoch: 0
  bellatrix_fork_epoch: 0
  capella_fork_epoch: 0
  deneb_fork_epoch: 0
  electra_fork_epoch: 1
  fulu_fork_epoch: 2
  bpo_1_epoch: 3
  gloas_fork_epoch: 4
  genesis_delay: 120


================================================
FILE: .github/tests/deneb.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    supernode: true
  - el_type: reth
    cl_type: prysm
  - el_type: nethermind
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: nimbus
    cl_type: lodestar
  - el_type: erigon
    cl_type: grandine
  - el_type: ethrex
    cl_type: lodestar
additional_services:
  - dora
network_params:
  altair_fork_epoch: 0
  bellatrix_fork_epoch: 0
  capella_fork_epoch: 0
  deneb_fork_epoch: 1
  electra_fork_epoch: 2
  fulu_fork_epoch: 3
  bpo_1_epoch: 4
  gloas_fork_epoch: 5
  preset: minimal


================================================
FILE: .github/tests/disable-peer-scoring.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: erigon
    cl_type: nimbus
  - el_type: nethermind
    cl_type: prysm
  - el_type: ethrex
    cl_type: teku
disable_peer_scoring: true


================================================
FILE: .github/tests/dummy-el.yaml
================================================
participants:
  - el_type: geth
  - el_type: dummy
    cl_type: teku
  - el_type: dummy
    cl_type: prysm
  - el_type: dummy
    cl_type: nimbus
  - el_type: dummy
    cl_type: lighthouse
  - el_type: dummy
    cl_type: lodestar
  - el_type: dummy
    cl_type: grandine

network_params:
  preset: minimal


================================================
FILE: .github/tests/electra-genesis.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: lighthouse
network_params:
  altair_fork_epoch: 0
  bellatrix_fork_epoch: 0
  capella_fork_epoch: 0
  deneb_fork_epoch: 0
  electra_fork_epoch: 0
  fulu_fork_epoch: 1
  bpo_1_epoch: 1
  gloas_fork_epoch: 2
  genesis_delay: 120
additional_services:
  - dora


================================================
FILE: .github/tests/ephemery.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: besu
    cl_type: grandine
  - el_type: ethrex
    cl_type: teku
network_params:
  network: sepolia
checkpoint_sync_enabled: true


================================================
FILE: .github/tests/erigon-all.yaml
================================================
participants:
  - el_type: erigon
    cl_type: teku
  - el_type: erigon
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: erigon
    cl_type: lighthouse
  - el_type: erigon
    cl_type: lodestar
  - el_type: erigon
    cl_type: grandine
  - el_type: erigon
    cl_type: caplin
    use_separate_vc: true
    vc_type: lighthouse


================================================
FILE: .github/tests/erpc.yaml
================================================
participants:
  - el_type: geth
    cl_type: lighthouse
    count: 2
  - el_type: reth
    cl_type: prysm
    count: 1


additional_services:
  - erpc


================================================
FILE: .github/tests/ethereumjs-all.yaml.norun
================================================
participants:
  - el_type: ethereumjs
    cl_type: teku
  - el_type: ethereumjs
    cl_type: prysm
  - el_type: ethereumjs
    cl_type: nimbus
  - el_type: ethereumjs
    cl_type: lighthouse
  - el_type: ethereumjs
    cl_type: lodestar
  - el_type: ethereumjs
    cl_type: grandine


================================================
FILE: .github/tests/ethrex.yaml
================================================
participants:
  - el_type: ethrex
    cl_type: teku
  - el_type: ethrex
    cl_type: prysm
  - el_type: ethrex
    cl_type: nimbus
  - el_type: ethrex
    cl_type: lighthouse
  - el_type: ethrex
    cl_type: lodestar
  - el_type: ethrex
    cl_type: grandine


================================================
FILE: .github/tests/force.yaml
================================================
participants:
  - cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    count: 2
  - el_type: geth
    cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    cl_force_restart: true


================================================
FILE: .github/tests/full-storage.yaml.norun
================================================
# Test full mode for clients that default to archive (reth, erigon)
participants:
  - el_type: reth
    el_storage_type: full
    cl_type: lighthouse
  - el_type: erigon
    el_storage_type: full
    cl_type: teku


================================================
FILE: .github/tests/fulu-genesis.yaml
================================================
participants:
  - el_type: geth
    el_image: ethpandaops/geth:master
    el_extra_params: ["--miner.extradata=lighthouseFromLocal"]
    cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    supernode: true

  - el_type: nethermind
    el_image: ethpandaops/nethermind:master
    el_extra_params: ["--Blocks.ExtraData=TekuFromLocal"]
    cl_type: teku
    cl_image: ethpandaops/teku:master

  - el_type: reth
    el_image: ethpandaops/reth:main
    el_extra_params: ["--builder.extradata=LodestarFromLocal"]
    cl_type: lodestar
    cl_image: ethpandaops/lodestar:unstable

  - el_type: geth
    el_image: ethpandaops/geth:master
    el_extra_params: ["--miner.extradata=PrysmFromLocal"]
    cl_type: prysm
    cl_image: ethpandaops/prysm-beacon-chain:develop

  - el_type: nethermind
    el_image: ethpandaops/nethermind:master
    el_extra_params: ["--Blocks.ExtraData=NimbusFromLocal"]
    cl_type: nimbus
    cl_image: ethpandaops/nimbus-eth2:unstable

  - el_type: reth
    el_image: ethpandaops/reth:main
    el_extra_params: ["--builder.extradata=GrandineFromLocal"]
    cl_type: grandine
    cl_image: ethpandaops/grandine:develop
network_params:
  altair_fork_epoch: 0
  bellatrix_fork_epoch: 0
  capella_fork_epoch: 0
  deneb_fork_epoch: 0
  electra_fork_epoch: 0
  fulu_fork_epoch: 0
  bpo_1_epoch: 1
  gloas_fork_epoch: 2
  genesis_delay: 120
additional_services:
  - dora



================================================
FILE: .github/tests/fulu-mev.yaml
================================================
participants:
  - el_type: geth
    el_image: ethpandaops/geth:master
    cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    vc_image: ethpandaops/lighthouse:unstable
    supernode: true
    count: 2
  - el_type: nethermind
    el_image: ethpandaops/nethermind:master
    cl_type: prysm
    cl_image: ethpandaops/prysm-beacon-chain:develop
    supernode: true

additional_services:
  - dora
  - spamoor

mev_type: flashbots
mev_params:
  mev_relay_image: ethpandaops/mev-boost-relay:main
  mev_builder_image: ethpandaops/reth-rbuilder:develop
  mev_boost_image: ethpandaops/mev-boost:develop
  mev_builder_cl_image: ethpandaops/lighthouse:unstable
  mev_builder_subsidy: 1

spamoor_params:
  spammers:
     - name: "Blob Spammer (Kurtosis Package)"
       description: "3 type-4 blob transactions per slot with 1-2 sidecars each, gas/blobgas limit 20 gwei"
       scenario: "blobs"
       config:
         throughput: 10
     - name: "ERC txs"
       description: "ERC txs"
       scenario: "erctx"
       config:
         throughput: 50
         max_pending: 400

network_params:
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
  churn_limit_quotient: 16
  prefunded_accounts: '{"0xb9e79d19f651a941757b35830232e7efc77e1c79": {"balance": "100000ETH"}}'


================================================
FILE: .github/tests/fulu.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    supernode: true


network_params:
  altair_fork_epoch: 0
  bellatrix_fork_epoch: 0
  capella_fork_epoch: 0
  deneb_fork_epoch: 0
  electra_fork_epoch: 1
  fulu_fork_epoch: 2
  bpo_1_epoch: 3
  gloas_fork_epoch: 4



================================================
FILE: .github/tests/geth-all.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: geth
    cl_type: prysm
  - el_type: geth
    cl_type: nimbus
  - el_type: geth
    cl_type: lighthouse
  - el_type: geth
    cl_type: lodestar
  - el_type: geth
    cl_type: grandine


================================================
FILE: .github/tests/grandine-all.yaml
================================================
participants:
  - el_type: geth
    cl_type: grandine
  - el_type: nethermind
    cl_type: grandine
  - el_type: erigon
    cl_type: grandine
  - el_type: besu
    cl_type: grandine
  - el_type: reth
    cl_type: grandine
  - el_type: ethrex
    cl_type: grandine
  - el_type: nimbus
    cl_type: grandine


================================================
FILE: .github/tests/hoodi-shadowfork.yaml_norun
================================================
participants:
  - el_type: geth
  - el_type: nethermind
  - el_type: besu
  - el_type: reth
  - el_type: erigon
network_params:
  fulu_fork_epoch: 10
  bpo_1_epoch: 11
  network: hoodi-shadowfork
additional_services:
  - dora
snooper_enabled: true
persistent: true


================================================
FILE: .github/tests/hoodi-shadowfork_at_height.yaml_norun
================================================
participants:
  - el_type: geth
network_params:
  fulu_fork_epoch: 10
  bpo_1_epoch: 11
  shadowfork_block_height: 240000
  network: hoodi-shadowfork
additional_services:
  - dora
persistent: true


================================================
FILE: .github/tests/lighthouse-all.yaml
================================================
participants:
  - el_type: geth
    cl_type: lighthouse
  - el_type: nethermind
    cl_type: lighthouse
  - el_type: erigon
    cl_type: lighthouse
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lighthouse
  - el_type: ethrex
    cl_type: lighthouse
  - el_type: nimbus
    cl_type: lighthouse


================================================
FILE: .github/tests/lodestar-all.yaml
================================================
participants:
  - el_type: geth
    cl_type: lodestar
  - el_type: nethermind
    cl_type: lodestar
  - el_type: erigon
    cl_type: lodestar
  - el_type: besu
    cl_type: lodestar
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: lodestar
  - el_type: nimbus
    cl_type: lodestar


================================================
FILE: .github/tests/mainnet-split.yaml.norun
================================================
participants:
  # Prysm nodes (33%)
  - el_type: geth
    cl_type: prysm
  - el_type: geth
    cl_type: prysm
  - el_type: nethermind
    cl_type: prysm
  - el_type: nethermind
    cl_type: prysm
  - el_type: besu
    cl_type: prysm

  # Lighthouse nodes (32%)
  - el_type: geth
    cl_type: lighthouse
  - el_type: geth
    cl_type: lighthouse
  - el_type: nethermind
    cl_type: lighthouse
  - el_type: nethermind
    cl_type: lighthouse
  - el_type: besu
    cl_type: lighthouse

  # Teku nodes (27%)
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: teku
  - el_type: nethermind
    cl_type: teku
  - el_type: besu
    cl_type: teku

  # Nimbus nodes (4%)
  - el_type: geth
    cl_type: nimbus

  # One each of Lodestar and Grandine
  - el_type: reth
    cl_type: lodestar
  - el_type: erigon
    cl_type: grandine

# Enable MEV via the flashbots stack
mev_type: flashbots

additional_services:
  - dora
  - spamoor
  - tx_fuzz
  - assertoor

global_log_level: debug


================================================
FILE: .github/tests/mainnet.yaml.norun
================================================
participants_matrix:
  el:
    - el_type: geth
      el_image: ethereum/client-go:v1.15.11
    - el_type: reth
      el_image: ghcr.io/paradigmxyz/reth:v1.4.8
    - el_type: nethermind
      el_image: nethermind/nethermind:1.31.11
    - el_type: erigon
      el_image: erigontech/erigon:v3.0.7
    - el_type: besu
      el_image: hyperledger/besu:25.6.0
  cl:
    - cl_type: lighthouse
      cl_image: sigp/lighthouse:v7.0.1
    - cl_type: teku
      cl_image: consensys/teku:25.5.0
    - cl_type: nimbus
      cl_image: statusim/nimbus-eth2:multiarch-v25.6.0
    - cl_type: lodestar
      cl_image: chainsafe/lodestar:v1.31.0
    - cl_type: prysm
      cl_image: offchainlabs/prysm-beacon-chain:v6.0.4
      vc_image: offchainlabs/prysm-validator:v6.0.4
network_params:
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
  churn_limit_quotient: 16
additional_services:
  - dora
  - assertoor
  - spamoor

snooper_enabled: false
assertoor_params:
  image: "ethpandaops/assertoor:master"
  run_stability_check: false
  run_block_proposal_check: false
  tests:
    - { file: "https://raw.githubusercontent.com/ethpandaops/assertoor-test/master/assertoor-tests/pectra-dev/wait-for-slot.yaml", id: "wait1", config: { slot: 34 }}
    - { file: "https://raw.githubusercontent.com/ethpandaops/assertoor/refs/heads/master/playbooks/pectra-dev/validator-lifecycle-test-v3.yaml"}
    - { file: "https://raw.githubusercontent.com/ethpandaops/assertoor/refs/heads/master/playbooks/pectra-dev/kurtosis/all.yaml" }
    - { file: "https://raw.githubusercontent.com/ethpandaops/assertoor/refs/heads/master/playbooks/pectra-dev/execution-spec-tests-sequential.yaml" }


================================================
FILE: .github/tests/mempool_bridge.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    count: 2

additional_services:
  - mempool_bridge
  - dora

network_params:
  network: sepolia
  shadowfork_block_height: 340000
  withdrawal_type: "0x01"
  validator_balance: 1000000
  withdrawal_address: "0x4d1CB4eB7969f8806E2CaAc0cbbB71f88C8ec413"

persistent: true

mempool_bridge_params:
  log_level: "debug"
  mode: "rpc"
  source_enodes:
    - http://127.0.0.1:8545
    - http://127.0.0.1:8546


================================================
FILE: .github/tests/mev-buildoor.yaml
================================================
participants:
  - el_type: geth
    cl_type: lighthouse
    count: 2
mev_type: buildoor
buildoor_params:
  builder_api: true
  epbs_builder: true
additional_services:
  - dora
  - spamoor


================================================
FILE: .github/tests/mev-commit-boost.yaml
================================================
participants:
  - el_type: geth
    cl_type: lighthouse
mev_type: commit-boost
additional_services:
  - tx_fuzz
  - spamoor
  - custom_flood
  - forkmon
  - dora
  - prometheus
  - grafana
mev_params:
  mev_boost_image: ghcr.io/commit-boost/pbs:latest
network_params:
  seconds_per_slot: 3


================================================
FILE: .github/tests/mev-helix.yaml
================================================
participants:
  - el_type: geth
    el_image: ethpandaops/geth:master
    cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    vc_image: ethpandaops/lighthouse:unstable
    supernode: true
    count: 2
  - el_type: nethermind
    el_image: ethpandaops/nethermind:master
    cl_type: prysm
    cl_image: ethpandaops/prysm-beacon-chain:develop
    supernode: true

additional_services:
  - dora
  - spamoor

mev_type: helix
mev_params:
  mev_relay_image: ghcr.io/gattaca-com/helix-relay:main
  mev_builder_image: ethpandaops/reth-rbuilder:develop
  mev_boost_image: ethpandaops/mev-boost:develop
  mev_builder_cl_image: ethpandaops/lighthouse:unstable
  mev_builder_subsidy: 1

spamoor_params:
  spammers:
     - name: "Blob Spammer (Kurtosis Package)"
       description: "3 type-4 blob transactions per slot with 1-2 sidecars each, gas/blobgas limit 20 gwei"
       scenario: "blobs"
       config:
         throughput: 10
     - name: "ERC txs"
       description: "ERC txs"
       scenario: "erctx"
       config:
         throughput: 50
         max_pending: 400

network_params:
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
  churn_limit_quotient: 16
  prefunded_accounts: '{"0xb9e79d19f651a941757b35830232e7efc77e1c79": {"balance": "100000ETH"}}'


================================================
FILE: .github/tests/mev-mock.yaml
================================================
participants:
  - el_type: geth
    cl_type: lighthouse
    count: 3
mev_type: mock
additional_services:
  - dora
  - spamoor
  - tx_fuzz
mev_params:
  mock_mev_image: "ethpandaops/rustic-builder:main"


================================================
FILE: .github/tests/mev-multiple-relays.yaml
================================================
participants:
  - el_type: geth
    el_image: ethpandaops/geth:master
    cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    vc_image: ethpandaops/lighthouse:unstable
    supernode: true
    count: 2
  - el_type: nethermind
    el_image: ethpandaops/nethermind:master
    cl_type: prysm
    cl_image: ethpandaops/prysm-beacon-chain:develop
    supernode: true

additional_services:
  - dora
  - spamoor

# Use flashbots as base mev_type, but run_multiple_relays will launch both flashbots and helix
mev_type: flashbots
mev_params:
  mev_relay_image: ethpandaops/mev-boost-relay:main
  mev_builder_image: ethpandaops/reth-rbuilder:develop
  mev_boost_image: ethpandaops/mev-boost:develop
  mev_builder_cl_image: ethpandaops/lighthouse:unstable
  mev_builder_subsidy: 1
  run_multiple_relays: true
  helix_relay_image: ghcr.io/gattaca-com/helix-relay:main
  
spamoor_params:
  spammers:
    - name: "Blob Spammer (Kurtosis Package)"
      description: "3 type-4 blob transactions per slot with 1-2 sidecars each, gas/blobgas limit 20 gwei"
      scenario: "blobs"
      config:
        throughput: 10
    - name: "ERC txs"
      description: "ERC txs"
      scenario: "erctx"
      config:
        throughput: 50
        max_pending: 400

network_params:
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
  churn_limit_quotient: 16
  prefunded_accounts: '{"0xb9e79d19f651a941757b35830232e7efc77e1c79": {"balance": "100000ETH"}}'


================================================
FILE: .github/tests/mev.yaml
================================================
participants:
  - el_type: geth
    el_extra_params: ["--miner.extradata=localGeth"]
    cl_type: lighthouse

mev_type: flashbots
mev_params:
  mev_builder_image: ethpandaops/reth-rbuilder:develop
  mev_relay_image: ethpandaops/mev-boost-relay:main
  mev_boost_image: ethpandaops/mev-boost:develop

additional_services:
  - tx_fuzz
  - custom_flood
  - spamoor
  - dora
  - prometheus
  - grafana
network_params:
  seconds_per_slot: 6


================================================
FILE: .github/tests/minimal-fulu.yaml
================================================
participants:
  - el_type: geth
    el_image: ethpandaops/geth:master
    el_extra_params: ["--miner.extradata=lighthouseFromLocal"]
    cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:unstable
    supernode: true

  - el_type: nethermind
    el_image: ethpandaops/nethermind:master
    el_extra_params: ["--Blocks.ExtraData=TekuFromLocal"]
    cl_type: teku
    cl_image: ethpandaops/teku:master

  - el_type: reth
    el_image: ethpandaops/reth:main
    el_extra_params: ["--builder.extradata=LodestarFromLocal"]
    cl_type: lodestar
    cl_image: ethpandaops/lodestar:unstable

  - el_type: geth
    el_image: ethpandaops/geth:master
    el_extra_params: ["--miner.extradata=PrysmFromLocal"]
    cl_type: prysm
    cl_image: ethpandaops/prysm-beacon-chain:develop-minimal

  - el_type: nethermind
    el_image: ethpandaops/nethermind:master
    el_extra_params: ["--Blocks.ExtraData=NimbusFromLocal"]
    cl_type: nimbus
    cl_image: ethpandaops/nimbus-eth2:unstable-minimal

  - el_type: reth
    el_image: ethpandaops/reth:main
    el_extra_params: ["--builder.extradata=GrandineFromLocal"]
    cl_type: grandine
    cl_image: ethpandaops/grandine:develop-minimal
additional_services:
  - dora
  - tx_fuzz
  - spamoor
  - assertoor

network_params:
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
  churn_limit_quotient: 16
  fulu_fork_epoch: 0
  genesis_delay: 120
  preset: minimal

assertoor_params:
  tests:
    - file: https://raw.githubusercontent.com/ethpandaops/assertoor/refs/heads/master/playbooks/pectra-dev/kurtosis/fillup-all-el-queues.yaml
      config:
        requestCount: 1000  # total number of requests
        walletCount: 2  # number of wallets to send from for each request type
        throughputPerWallet: 2 # number of transactions per slot, type and wallet
        maxPendingPerWallet: 10 # max number of pending requests per type


================================================
FILE: .github/tests/minimal-mev.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: geth
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: geth
    cl_type: grandine
  - el_type: ethrex
    cl_type: lodestar
network_params:
  preset: minimal
  prefunded_accounts: '{"0xb9e79D19f651a941757b35830232E7EFC77E1c79": {"balance": "100000ETH"}}'

additional_services:
  - dora
  - spamoor

mev_type: flashbots
mev_params:
  mev_relay_image: ethpandaops/mev-boost-relay:main
  mev_boost_image: ethpandaops/mev-boost:develop
  mev_builder_cl_image: ethpandaops/lighthouse:unstable
  mev_builder_image: ethpandaops/reth-rbuilder:develop
  mev_builder_subsidy: 1


================================================
FILE: .github/tests/minimal.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: geth
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: nimbus
    cl_type: nimbus
  - el_type: ethrex
    cl_type: grandine
  - el_type: geth
    cl_type: grandine
network_params:
  preset: minimal


================================================
FILE: .github/tests/mix-assert.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: grandine
network_params:
  preset: minimal
additional_services:
  - assertoor
  - dora
assertoor_params:
  run_stability_check: false
  run_block_proposal_check: true


================================================
FILE: .github/tests/mix-persistence-k8s.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    use_separate_vc: true
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
    use_separate_vc: true
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: nimbus
persistent: true


================================================
FILE: .github/tests/mix-persistence.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    use_separate_vc: true
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
    use_separate_vc: true
  - el_type: reth
    cl_type: lodestar
  - el_type: besu
    cl_type: lighthouse
  - el_type: ethrex
    cl_type: nimbus
persistent: true


================================================
FILE: .github/tests/mix-public.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: grandine
port_publisher:
  nat_exit_ip: KURTOSIS_IP_ADDR_PLACEHOLDER
  el:
    enabled: true
    public_port_start: 40000
  cl:
    enabled: true
    public_port_start: 41000
  vc:
    enabled: true
    public_port_start: 42000
  remote_signer:
    enabled: true
    public_port_start: 43000
  additional_services:
    enabled: true
    public_port_start: 44000
  mev:
    enabled: true
    public_port_start: 45000
  other:
    enabled: true
    public_port_start: 46000
additional_services:
  - tx_fuzz
  - forkmon
  - dora
  - checkpointz
  - prometheus
  - grafana
  - dugtrio
  - erpc
  - apache
  - tracoor
  - spamoor
ethereum_metrics_exporter_enabled: true
snooper_enabled: true
keymanager_enabled: true


================================================
FILE: .github/tests/mix-with-tools-mev.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: teku
additional_services:
  - tx_fuzz
  - forkmon
  - dora
  - checkpointz
  - prometheus
  - grafana
  - custom_flood
  - blockscout
  - dugtrio
  - erpc
  - apache
  - tracoor
  - spamoor
ethereum_metrics_exporter_enabled: true
snooper_enabled: true
mev_type: flashbots
mev_params:
  mev_relay_image: ethpandaops/mev-boost-relay:main
persistent: True


================================================
FILE: .github/tests/mix-with-tools-minimal.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: geth
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: geth
    cl_type: grandine
  - el_type: ethrex
    cl_type: lodestar
  - el_type: erigon
    cl_type: caplin
    use_separate_vc: true
    vc_type: lighthouse
network_params:
  preset: minimal
additional_services:
  - tx_fuzz
  - forkmon
  - dora
  - checkpointz
  - prometheus
  - grafana
  - custom_flood
  - blockscout
  - dugtrio
  - erpc
  - apache
  - tracoor
  - spamoor
  - bootnodoor
ethereum_metrics_exporter_enabled: true
snooper_enabled: true
keymanager_enabled: true


================================================
FILE: .github/tests/mix-with-tools.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: nimbus
    cl_type: teku
  - el_type: ethrex
    cl_type: grandine
  - el_type: geth
    cl_type: grandine
  - el_type: erigon
    cl_type: caplin
    use_separate_vc: true
    vc_type: lighthouse
additional_services:
  - tx_fuzz
  - forkmon
  - dora
  - checkpointz
  - prometheus
  - grafana
  - dugtrio
  - erpc
  - apache
  - tracoor
  - spamoor
ethereum_metrics_exporter_enabled: true
snooper_enabled: true
keymanager_enabled: true


================================================
FILE: .github/tests/mix.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: nimbus
    cl_type: teku
  - el_type: ethrex
    cl_type: grandine
  - el_type: erigon
    cl_type: caplin
    use_separate_vc: true
    vc_type: lighthouse


================================================
FILE: .github/tests/mixed-cl-vc.yml
================================================
participants:
  - el_type: geth
    cl_type: teku
    use_separate_vc: true
    vc_type: lodestar
  - el_type: besu
    cl_type: nimbus
    use_separate_vc: true
    vc_type: lighthouse


================================================
FILE: .github/tests/multi-beacon.yaml
================================================
participants:
  - supernode: true
  - cl_type: lighthouse
    vc_beacon_node_indices: []  # Connect to its own beacon node
  - cl_type: lighthouse
    vc_beacon_node_indices: [0, 1, 2]  # Connect to both beacon nodes (indices 0, 1 and its own beacon)
  - cl_type: lodestar
    vc_beacon_node_indices: [0, 1, 2]  # Connect to both beacon nodes (indices 0, 1 and 2)
  - cl_type: prysm
    vc_beacon_node_indices: [0, 1, 2]  # Connect to both beacon nodes (indices 0, 1 and 2)
  - cl_type: teku
    use_separate_vc: true
    vc_beacon_node_indices: [0, 1, 2]  # Connect to both beacon nodes (indices 0, 1 and 2)
  - cl_type: nimbus
    use_separate_vc: true
    vc_beacon_node_indices: [0, 1, 2]  # Connect to both beacon nodes (indices 0, 1 and 2)
additional_services:
  - dora


================================================
FILE: .github/tests/nethermind-all.yaml
================================================
participants:
  - el_type: nethermind
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: nethermind
    cl_type: nimbus
  - el_type: nethermind
    cl_type: lighthouse
  - el_type: nethermind
    cl_type: lodestar
  - el_type: nethermind
    cl_type: grandine


================================================
FILE: .github/tests/nimbus-all.yaml
================================================
participants:
  - el_type: geth
    cl_type: nimbus
  - el_type: nethermind
    cl_type: nimbus
  - el_type: erigon
    cl_type: nimbus
  - el_type: besu
    cl_type: nimbus
  - el_type: reth
    cl_type: nimbus
  - el_type: ethrex
    cl_type: nimbus
  - el_type: nimbus
    cl_type: nimbus


================================================
FILE: .github/tests/nimbus-eth1-all.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nimbus
    cl_type: teku
  - el_type: nimbus
    cl_type: prysm
  - el_type: nimbus
    cl_type: nimbus
  - el_type: nimbus
    cl_type: lighthouse
  - el_type: nimbus
    cl_type: lodestar
  - el_type: nimbus
    cl_type: grandine


================================================
FILE: .github/tests/nimbus-mev.yaml
================================================
participants:
  - el_type: geth
    cl_type: nimbus
    cl_image: ethpandaops/nimbus-eth2:unstable
mev_type: flashbots


================================================
FILE: .github/tests/node-selectors.yaml
================================================
participants:
  - el_type: reth
    cl_type: teku
    use_separate_vc: true
    node_selectors: {
      "kubernetes.io/hostname": testing-1,
    }
  - el_type: reth
    cl_type: teku
    use_separate_vc: true
global_node_selectors: {
  "kubernetes.io/hostname": testing-2,
}


================================================
FILE: .github/tests/parallel-keystores.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: geth
    cl_type: teku
    validator_count: 0
  - el_type: geth
    cl_type: teku
parallel_keystore_generation: true


================================================
FILE: .github/tests/participants-matrix.yaml
================================================
participants_matrix:
  el:
    - el_type: besu
  cl:
    - cl_type: prysm
  vc:
    - vc_type: nimbus
participants:
  - count: 1


================================================
FILE: .github/tests/phase0-genesis.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    supernode: true
  - el_type: reth
    cl_type: prysm
  - el_type: nethermind
    cl_type: nimbus
  - el_type: besu
    cl_type: lighthouse
  - el_type: nimbus
    cl_type: lodestar
  - el_type: erigon
    cl_type: grandine
  - el_type: ethrex
    cl_type: teku
additional_services:
  - dora
network_params:
  altair_fork_epoch: 1
  bellatrix_fork_epoch: 2
  capella_fork_epoch: 3
  deneb_fork_epoch: 4
  electra_fork_epoch: 5
  fulu_fork_epoch: 6
  bpo_1_epoch: 7
  gloas_fork_epoch: 8
  genesis_delay: 120


================================================
FILE: .github/tests/preregistered_validator_count.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: geth
    cl_type: prysm
  - el_type: geth
    cl_type: nimbus
  - el_type: geth
    cl_type: lighthouse
  - el_type: geth
    cl_type: lodestar
network_params:
  preregistered_validator_count: 400


================================================
FILE: .github/tests/prysm-all.yaml
================================================
participants:
  - el_type: geth
    cl_type: prysm
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: prysm
  - el_type: besu
    cl_type: prysm
  - el_type: reth
    cl_type: prysm
  - el_type: ethrex
    cl_type: prysm
  - el_type: nimbus
    cl_type: prysm


================================================
FILE: .github/tests/rakoon.yaml
================================================
participants:
  - el_type: geth
    cl_type: lighthouse
  - el_type: reth
    cl_type: teku
additional_services:
  - rakoon
  - dora
rakoon_params:
  tx_type: "eip7702"
  workers: 50
  batch_size: 100


================================================
FILE: .github/tests/remote-signer.yaml
================================================
participants:
  - el_type: geth
    cl_type: lodestar
    use_separate_vc: true
    use_remote_signer: true
  - el_type: geth
    cl_type: nimbus
    use_separate_vc: true
    use_remote_signer: true
  - el_type: geth
    cl_type: prysm
    use_separate_vc: true
    use_remote_signer: true
  - el_type: geth
    cl_type: teku
    use_separate_vc: true
    use_remote_signer: true
  - el_type: geth
    cl_type: grandine
    use_separate_vc: true
    use_remote_signer: true
    # Grandine doesn't have a separate VC
    vc_type: lodestar


================================================
FILE: .github/tests/reth-all.yaml
================================================
participants:
  - el_type: reth
    cl_type: teku
  - el_type: reth
    cl_type: prysm
  - el_type: reth
    cl_type: nimbus
  - el_type: reth
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: reth
    cl_type: grandine


================================================
FILE: .github/tests/sepolia-mix.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: prysm
  - el_type: erigon
    cl_type: lighthouse
  - el_type: besu
    cl_type: lighthouse
  - el_type: reth
    cl_type: lodestar
  - el_type: ethrex
    cl_type: nimbus
network_params:
  network: sepolia
checkpoint_sync_enabled: true


================================================
FILE: .github/tests/skip.yaml
================================================
participants:
  - cl_type: prysm

  - cl_type: lighthouse
    checkpoint_sync_enabled: true
    skip_start: true
    validator_count: 1

  - cl_type: teku
    checkpoint_sync_enabled: true
    skip_start: true
    validator_count: 1

  - cl_type: lodestar
    checkpoint_sync_enabled: true
    skip_start: true
    validator_count: 1

  - cl_type: grandine
    checkpoint_sync_enabled: true
    skip_start: true
    validator_count: 1

network_params:
  seconds_per_slot: 4
  preset: minimal
additional_services:
  - dora
  - checkpointz



================================================
FILE: .github/tests/split-nimbus.yaml
================================================
participants:
  - el_type: geth
    cl_type: nimbus
    use_separate_vc: true
    validator_count: 0
  - el_type: nethermind
    cl_type: nimbus
    use_separate_vc: true
  - el_type: erigon
    cl_type: nimbus
    use_separate_vc: true
  - el_type: besu
    cl_type: nimbus
    use_separate_vc: true
  - el_type: reth
    cl_type: nimbus
    use_separate_vc: true
  - el_type: ethrex
    cl_type: nimbus
    use_separate_vc: true


================================================
FILE: .github/tests/split-teku.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
    validator_count: 0
    use_separate_vc: true
  - el_type: nethermind
    cl_type: teku
    use_separate_vc: true
  - el_type: erigon
    cl_type: teku
    use_separate_vc: true
  - el_type: besu
    cl_type: teku
    use_separate_vc: true
  - el_type: reth
    cl_type: teku
    use_separate_vc: true
  - el_type: ethrex
    cl_type: teku
    use_separate_vc: true


================================================
FILE: .github/tests/teku-all.yaml
================================================
participants:
  - el_type: geth
    cl_type: teku
  - el_type: nethermind
    cl_type: teku
  - el_type: erigon
    cl_type: teku
  - el_type: besu
    cl_type: teku
  - el_type: reth
    cl_type: teku
  - el_type: ethrex
    cl_type: teku
  - el_type: nimbus
    cl_type: teku


================================================
FILE: .github/tests/tolerations.yaml
================================================
participants:
  - el_type: reth
    cl_type: teku
    use_separate_vc: true
    cl_tolerations:
      - key: "node-role.kubernetes.io/master1"
        operator: "Exists"
        effect: "NoSchedule"
      - key: "node-role.kubernetes.io/master2"
        operator: "Exists"
        effect: "NoSchedule"
    el_tolerations:
      - key: "node-role.kubernetes.io/master3"
        operator: "Exists"
        effect: "NoSchedule"
    vc_tolerations:
      - key: "node-role.kubernetes.io/master4"
        operator: "Exists"
        effect: "NoSchedule"
  - el_type: reth
    cl_type: teku
    use_separate_vc: true
    tolerations:
      - key: "node-role.kubernetes.io/master5"
        operator: "Exists"
        effect: "NoSchedule"
  - el_type: reth
    cl_type: teku
    use_separate_vc: true
additional_services:
  - dora
global_tolerations:
  - key: "node-role.kubernetes.io/master6"
    value: "true"
    operator: "Equal"
    effect: "NoSchedule"


================================================
FILE: .github/tests/vero-all.yaml
================================================
participants:
  - el_type: besu
    cl_type: grandine
    use_separate_vc: true
    vc_type: vero
    use_remote_signer: true
  - el_type: erigon
    cl_type: lighthouse
    use_separate_vc: true
    vc_type: vero
    use_remote_signer: true
  - el_type: ethrex
    cl_type: lodestar
    use_separate_vc: true
    vc_type: vero
    use_remote_signer: true
  - el_type: geth
    cl_type: nimbus
    use_separate_vc: true
    vc_type: vero
    use_remote_signer: true
  - el_type: nethermind
    cl_type: prysm
    use_separate_vc: true
    vc_type: vero
    use_remote_signer: true
  - el_type: reth
    cl_type: teku
    use_separate_vc: true
    vc_type: vero
    use_remote_signer: true


================================================
FILE: .github/tests/zkboost.yaml
================================================
participants:
  - cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:eth-act-optional-proofs
    el_type: reth
    supernode: true
    cl_extra_params:
      - --target-peers=3
      - --proof-engine-endpoint=http://zkboost:3000
      - --proof-types=6
    vc_extra_params:
      - --proof-engine-endpoint=http://zkboost:3000
      - --proof-types=6
    count: 2
  - cl_type: lighthouse
    cl_image: ethpandaops/lighthouse:eth-act-optional-proofs
    el_type: reth
    supernode: false
    cl_extra_params:
      - --target-peers=3
      - --proof-engine-endpoint=http://zkboost:3000
      - --proof-types=6
    count: 2

additional_services:
  - zkboost
  - dora
  - prometheus
  - grafana
  - tempo


================================================
FILE: .github/workflows/check-consensus-spec-values.yml
================================================
name: Check consensus spec values

on:
  schedule:
    - cron: '0 8 * * *'
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  check-consensus-spec-values:
    name: Check consensus spec values (${{ matrix.preset }})
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - preset: mainnet
            args_file: network_params.yaml
          - preset: minimal
            args_file: .github/tests/minimal.yaml
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: ./.github/actions/docker-login
        with:
          username: ethpandaops
          password: ${{ secrets.DOCKER_PASSWORD }}
      - name: Setup Kurtosis
        uses: ./.github/actions/kurtosis-install
      - name: Run genesis
        run: |
          kurtosis run ${{ github.workspace }} --enclave spec-check-${{ matrix.preset }} --args-file ${{ matrix.args_file }} --verbosity detailed --image-download always
      - name: Check consensus spec values
        run: |
          pip install pyyaml --quiet
          curl -fsSL \
            "https://raw.githubusercontent.com/ethereum/consensus-specs/master/configs/${{ matrix.preset }}.yaml" \
            -o /tmp/spec.yaml
          kurtosis files download spec-check-${{ matrix.preset }} el_cl_genesis_data /tmp/genesis
          python3 .github/check-consensus-spec-values.py \
            --our-config /tmp/genesis/config.yaml \
            --spec-config /tmp/spec.yaml


================================================
FILE: .github/workflows/check-typos.yml
================================================
name: Check typos

on:
  pull_request:
    branches:
      - main

jobs:
  check-typos:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

      - name: Check for typos
        uses: crate-ci/typos@cf5f1c29a8ac336af8568821ec41919923b05a83 # v1.45.1


================================================
FILE: .github/workflows/conventional-pr-title-checker.yml
================================================
# Check PR title for conventional commits
name: Check PR title
on:
  pull_request_target:
    types:
      - opened
      - reopened
      - edited
      - synchronize

# cancel redundant builds
concurrency:
  group: "title-checker-${{ github.head_ref }}"
  cancel-in-progress: true

jobs:
  title_check:
    runs-on: ubuntu-latest
    steps:
      - uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/nightly.yml
================================================
name: Nightly test Workflow

on:
  schedule:
    - cron: "0 2 * * *" # This schedules the workflow to run at 02:00 UTC every day
  workflow_dispatch:

jobs:
  list-yamls:
    runs-on: ubuntu-latest
    outputs:
      matrix: ${{ steps.set-matrix.outputs.matrix }}
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - id: set-matrix
        # List all yaml files in the .github/tests directory, except for the k8s.yaml file
        run: echo "matrix=$(ls ./.github/tests/*.yaml | grep -vE 'k8s.yaml$' | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
  run_with_args:
    needs:
      - list-yamls
    strategy:
      matrix:
          file_name: ${{ fromJson(needs.list-yamls.outputs.matrix) }}
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
      - name: Checkout Repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: ./.github/actions/docker-login
        with:
          username: ethpandaops
          password: ${{ secrets.DOCKER_PASSWORD }}
      - name: Setup Kurtosis
        uses: ./.github/actions/kurtosis-install

      - name: Run Starlark
        run: |
          if [ "${{ matrix.file_name }}" != "./.github/tests/mix-with-tools-mev.yaml" ]; then
            kurtosis run ${{ github.workspace }} --verbosity detailed --args-file ${{ matrix.file_name }}
          else
            echo "Skipping ./.github/tests/mix-with-tools-mev.yaml"
          fi

      - name: Check if Discord Webhook is Set
        id: check_discord_webhook
        env:
          DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
        run: |
          if [ -z "$DISCORD_WEBHOOK" ]; then
            echo "discord_webhook_set=false" >> $GITHUB_ENV
          else
            echo "discord_webhook_set=true" >> $GITHUB_ENV
          fi

      - name: Notify
        if: (cancelled() || failure()) && env.discord_webhook_set == 'true'
        uses: nobrayner/discord-webhook@1766a33bf571acdcc0678f00da4fb83aad01ebc7 # v1
        with:
          description: "The nightly test for ${{matrix.file_name}} on ethereum-package has failed find it here ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
          github-token: ${{ secrets.github_token }}
          discord-webhook: ${{ secrets.DISCORD_WEBHOOK }}

  assertoor-mix-assert:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: ./.github/actions/docker-login
        with:
          username: ethpandaops
          password: ${{ secrets.DOCKER_PASSWORD }}
      - name: Kurtosis Assertoor GitHub Action
        uses: ethpandaops/kurtosis-assertoor-github-action@f64942cbc780df731a731ea9f45765b161d2c8df # v1
        with:
          kurtosis_extra_args: "--image-download always --non-blocking-tasks --verbosity DETAILED"
          ethereum_package_branch: ""
          ethereum_package_args: .github/tests/mix-assert.yaml
          ethereum_package_url: "$GITHUB_WORKSPACE"
          persistent_logs: "true"


================================================
FILE: .github/workflows/per-pr.yml
================================================
name: CI

on:
  pull_request:

concurrency:
  group: "tests-${{ github.head_ref }}"
  cancel-in-progress: true

jobs:
  run_with_args:
    strategy:
      matrix:
        file_name:
          [
            "./.github/tests/mev.yaml",
            "./.github/tests/mev-mock.yaml",
            "./.github/tests/mix-with-tools.yaml",
            "./.github/tests/mix-persistence.yaml",
            "./.github/tests/mix-public.yaml",
            "./.github/tests/minimal.yaml",
            "./network_params.yaml",
            "."
          ]
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: ./.github/actions/docker-login
        with:
          username: ethpandaops
          password: ${{ secrets.DOCKER_PASSWORD }}
      - name: Setup Kurtosis
        uses: ./.github/actions/kurtosis-install
      - name: Run Starlark
        run: |
          if [[ "${{ matrix.file_name }}" == "." ]]; then
            echo "ENCLAVE=default" >> "$GITHUB_ENV"
            kurtosis run ${{ github.workspace }} --enclave "default" --verbosity detailed --image-download always
          else
            enclave=$(basename "${{ matrix.file_name }}" .yaml | tr '_.' '--')
            echo "ENCLAVE=$enclave" >> "$GITHUB_ENV"
            kurtosis run ${{ github.workspace }} --enclave "$enclave" --args-file ${{ matrix.file_name }} --verbosity detailed --image-download always
          fi
      - name: Upload genesis config
        if: matrix.file_name == '.' || matrix.file_name == './network_params.yaml' || matrix.file_name == './.github/tests/minimal.yaml'
        run: kurtosis files download "$ENCLAVE" el_cl_genesis_data /tmp/genesis-$ENCLAVE
      - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
        if: matrix.file_name == '.' || matrix.file_name == './network_params.yaml' || matrix.file_name == './.github/tests/minimal.yaml'
        with:
          name: genesis-config-${{ env.ENCLAVE }}
          path: /tmp/genesis-${{ env.ENCLAVE }}/config.yaml
          retention-days: 1

  check-consensus-spec-values:
    name: Check consensus spec values (${{ matrix.label }})
    needs: run_with_args
    continue-on-error: true
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - label: default
            artifact: genesis-config-default
            preset: mainnet
          - label: network-params
            artifact: genesis-config-network-params
            preset: mainnet
          - label: minimal
            artifact: genesis-config-minimal
            preset: minimal
    steps:
      - name: Checkout Repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
        with:
          name: ${{ matrix.artifact }}
          path: /tmp/genesis
      - name: Install pyyaml
        run: pip install pyyaml --quiet
      - name: Download upstream consensus-specs config
        run: |
          curl -fsSL \
            "https://raw.githubusercontent.com/ethereum/consensus-specs/master/configs/${{ matrix.preset }}.yaml" \
            -o /tmp/spec.yaml
      - name: Compare genesis config.yaml against upstream spec
        run: |
          python3 .github/check-consensus-spec-values.py \
            --our-config /tmp/genesis/config.yaml \
            --spec-config /tmp/spec.yaml

  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - name: Setup Kurtosis
        uses: ./.github/actions/kurtosis-install
      - name: Kurtosis Lint
        run: kurtosis lint ${{ github.workspace }}

  assertoor:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: Checkout Repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: ./.github/actions/docker-login
        with:
          username: ethpandaops
          password: ${{ secrets.DOCKER_PASSWORD }}
      - name: Kurtosis Assertoor GitHub Action
        uses: ethpandaops/kurtosis-assertoor-github-action@f64942cbc780df731a731ea9f45765b161d2c8df # v1
        with:
          ethereum_package_url: "."
          ethereum_package_branch: ""
          ethereum_package_args: .github/tests/mix-assert.yaml


  #check_optimism_package:
  #  runs-on: ubuntu-latest
  #  steps:
  #    - name: Check out Repository
  #      uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
  #    - name: Setup Kurtosis
  #      uses: ./.github/actions/kurtosis-install
  #    - name: Run L1
  #      run: |
  #        kurtosis run --enclave test ${{ github.workspace }} --args-file https://raw.githubusercontent.com/ethpandaops/optimism-package/refs/heads/main/.github/tests/external-l1/ethereum.yaml --verbosity detailed
  #    - name: Run L2
  #      run: |
  #        kurtosis run --enclave test github.com/ethpandaops/optimism-package --args-file https://raw.githubusercontent.com/ethpandaops/optimism-package/refs/heads/main/.github/tests/external-l1/optimism.yaml --verbosity detailed


================================================
FILE: .github/workflows/release-please.yml
================================================
on:
  push:
    branches:
      - main

permissions:
  contents: write
  pull-requests: write

name: release-please

jobs:
  release-please:
    runs-on: ubuntu-latest
    steps:
      - name: Run Release Please
        uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0
        with:
          token: ${{ secrets.PAT }}
          config-file: release-please-config.json
          manifest-file: .release-please-manifest.json


================================================
FILE: .github/workflows/run-k8s.yml
================================================
name: Run k8s test

on:
  pull_request:
  workflow_dispatch:
  schedule:
    - cron: '0 2 * * *'

concurrency:
  group: "scheduled-test"
  cancel-in-progress: false

jobs:
  run_k8s_test:
    strategy:
      matrix:
        payload:
          - { name: "minimal", file: "./.github/tests/minimal.yaml" }
          - { name: "network-params", file: "./network_params.yaml" }
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

      - name: Setup minikube
        id: minikube
        uses: medyagh/setup-minikube@e9e035a86bbc3caea26a450bd4dbf9d0c453682e # v0.0.21

      - name: Get kubeconfig
        id: kubeconfig
        shell: bash
        run: |
          cat ~/.kube/config > kubeconfig
          echo "kubeconfig=$(cat kubeconfig | base64 -w 0)" >> $GITHUB_OUTPUT

      # run kurtosis test and assertoor
      - name: Run kurtosis testnet
        id: testnet
        uses: ethpandaops/kurtosis-assertoor-github-action@f64942cbc780df731a731ea9f45765b161d2c8df # v1
        with:
          kurtosis_extra_args: "--image-download always --non-blocking-tasks --verbosity DETAILED"
          kurtosis_backend: "kubernetes"
          kubernetes_config: "${{ steps.kubeconfig.outputs.kubeconfig }}"
          kubernetes_cluster: "minikube"
          kubernetes_storage_class: "standard"
          ethereum_package_branch: ""
          ethereum_package_args: "${{ matrix.payload.file }}"
          ethereum_package_url: "$GITHUB_WORKSPACE"
          enclave_name: "ethereum-package-${{ matrix.payload.name }}-${{ github.run_id }}"
          persistent_logs: "true"

      - name: Check if Discord Webhook is Set
        id: check_discord_webhook
        env:
          DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
        run: |
          if [ -z "$DISCORD_WEBHOOK" ]; then
            echo "discord_webhook_set=false" >> $GITHUB_ENV
          else
            echo "discord_webhook_set=true" >> $GITHUB_ENV
          fi

      - name: Notify
        if: (cancelled() || failure()) && env.discord_webhook_set == 'true'
        uses: Ilshidur/action-discord@d2594079a10f1d6739ee50a2471f0ca57418b554 # dependabot/npm_and_yarn/axios-1.3.4-08d9328
        env:
          DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
        with:
          args: "The k8s nightly/per PR test for ${{matrix.payload.name}} on ethereum-package has failed. Find it here: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"


================================================
FILE: .gitignore
================================================
# IntelliJ
.idea
*.iws
*.iml
*.ipr

# VS Code
*.vscode

# Jenv
.java-version

# Pyenv
.python-version

# Mac spotlight index files
.DS_Store

*.un~
Session.vim
.netrwhist
*~
*.pyc
*.pydevproject
.project
.metadata
bin/**
tmp/**
tmp/**/*
*.tmp
*.bak
*~.nib
local.properties
.classpath
.settings/
.loadpath

# Vim swapfiles
*.swp

# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Archive files
*.tgz
*.zip

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath

# Ignore Vim helptags
doc/tags

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Test binary, built with `go test -c`
*.test


# Output directories
build/
dist/

# Java
.gradle

# Node
node_modules
yarn-error.log

# Bazel
/bazel-*

# enclave dumps
dump/

# binary files
binary
binaries

# Claude file
CLAUDE.md


================================================
FILE: .release-please-manifest.json
================================================
{
  ".": "6.1.0"
}


================================================
FILE: .typos.toml
================================================
[default]
extend-ignore-re = [
    # Ignore Ethereum Node Records (ENR)
    "enr:-.*",
    # Ignore blutgang config typo
    "supress_rpc_check",
]

[files]
extend-exclude = [
  "CHANGELOG.md",
]


================================================
FILE: CHANGELOG.md
================================================
# Changelog

## [6.1.0](https://github.com/ethpandaops/ethereum-package/compare/6.0.0...6.1.0) (2026-04-01)


### Features

* Add Besu and Teku grafana dashboards ([#1281](https://github.com/ethpandaops/ethereum-package/issues/1281)) ([7a3cc83](https://github.com/ethpandaops/ethereum-package/commit/7a3cc83c6a5de4a49eaa7b3e66d4ca936ad240f7))
* add buildoor as separate mev stack ([#1309](https://github.com/ethpandaops/ethereum-package/issues/1309)) ([903fd99](https://github.com/ethpandaops/ethereum-package/commit/903fd992c9a06a350a92a82bd392a3ebc5aa70ea))
* add Caplin (Erigon embedded CL) as a supported consensus launcher ([#1339](https://github.com/ethpandaops/ethereum-package/issues/1339)) ([173e3d5](https://github.com/ethpandaops/ethereum-package/commit/173e3d5c32ca031789d1853f2acead0736e7ad9d))
* add custom binary execution functionality ([#1287](https://github.com/ethpandaops/ethereum-package/issues/1287)) ([68f9c19](https://github.com/ethpandaops/ethereum-package/commit/68f9c19ddb7c65cdefba260aa4f33cf080978f87))
* add ews (execution witness sentry) ([#1285](https://github.com/ethpandaops/ethereum-package/issues/1285)) ([5593889](https://github.com/ethpandaops/ethereum-package/commit/559388991071d3cb8b665a131dc3b97d2e44b974))
* add force_restart - to be able to replace images/binaries without killing enclave ([#1289](https://github.com/ethpandaops/ethereum-package/issues/1289)) ([e243677](https://github.com/ethpandaops/ethereum-package/commit/e243677d68affc719ca596664119d860cab8e856))
* add heze ([#1323](https://github.com/ethpandaops/ethereum-package/issues/1323)) ([eb8c590](https://github.com/ethpandaops/ethereum-package/commit/eb8c590a3634188ecb29ae1319ee53bd356e16e7))
* add mev-builder-cl-extra-params ([#1284](https://github.com/ethpandaops/ethereum-package/issues/1284)) ([c7027e8](https://github.com/ethpandaops/ethereum-package/commit/c7027e863fb60c218d9d00d24e4061c5aabd1882))
* add min builder withdrawal delay ([#1294](https://github.com/ethpandaops/ethereum-package/issues/1294)) ([7f67acd](https://github.com/ethpandaops/ethereum-package/commit/7f67acda08e12705a64fe157c200f316ca4b01bf))
* Add skill for more efficient use of the package for running devnets ([#1326](https://github.com/ethpandaops/ethereum-package/issues/1326)) ([ff545a6](https://github.com/ethpandaops/ethereum-package/commit/ff545a6e19fbaca65d576647de0aa90822e3fa28))
* add slashoor ([#1308](https://github.com/ethpandaops/ethereum-package/issues/1308)) ([e4b3305](https://github.com/ethpandaops/ethereum-package/commit/e4b330579580477814cfaebb004e354f7eb396f4))
* add snooper_params ([#1327](https://github.com/ethpandaops/ethereum-package/issues/1327)) ([c2bc134](https://github.com/ethpandaops/ethereum-package/commit/c2bc134c2225c77296011cc9ebd7f1512564e5c0))
* added option for custom logging (Teku only) ([#1321](https://github.com/ethpandaops/ethereum-package/issues/1321)) ([582ebad](https://github.com/ethpandaops/ethereum-package/commit/582ebad9ec0f74efb1bcff2418414dd18c77833f))
* Adding rakoon as tool ([#1303](https://github.com/ethpandaops/ethereum-package/issues/1303)) ([0272744](https://github.com/ethpandaops/ethereum-package/commit/02727445663d0554374898dd9b310653a6e1e430))
* **checkpointz:** add automatic GLOAS fork image detection ([#1344](https://github.com/ethpandaops/ethereum-package/issues/1344)) ([44f21e7](https://github.com/ethpandaops/ethereum-package/commit/44f21e7d9fe61c7a8dfc5336ab06d7a72ed29ae8))
* **ci:** add consensoor ([#1301](https://github.com/ethpandaops/ethereum-package/issues/1301)) ([865e221](https://github.com/ethpandaops/ethereum-package/commit/865e221fe5ca4e397f5b522e868477aa197deff1))
* **constants:** add 'consensoor' to CL_TYPE and VC_TYPE constants ([865e221](https://github.com/ethpandaops/ethereum-package/commit/865e221fe5ca4e397f5b522e868477aa197deff1))
* enable dora execution indexer ([#1282](https://github.com/ethpandaops/ethereum-package/issues/1282)) ([5c8fd38](https://github.com/ethpandaops/ethereum-package/commit/5c8fd3867d8536047c972561f28a79ccbd73e12e))
* enable execution details indexing & tracing for dora ([#1317](https://github.com/ethpandaops/ethereum-package/issues/1317)) ([2f2690b](https://github.com/ethpandaops/ethereum-package/commit/2f2690ba6926497a75ecc57b081b57d97dcebb5c))
* **launcher:** add publish_udp to participant configurations ([#1300](https://github.com/ethpandaops/ethereum-package/issues/1300)) ([a412048](https://github.com/ethpandaops/ethereum-package/commit/a4120483625f12acc7c090013657c9d9603fbde6))
* **launcher:** integrate consensoor client launcher ([865e221](https://github.com/ethpandaops/ethereum-package/commit/865e221fe5ca4e397f5b522e868477aa197deff1))
* replace ews with zkboost ([#1338](https://github.com/ethpandaops/ethereum-package/issues/1338)) ([964a9f4](https://github.com/ethpandaops/ethereum-package/commit/964a9f4851fa4af8892b4266b889026ca17293f5))
* **starlark:** add Consensoor launcher support for Starlark ([865e221](https://github.com/ethpandaops/ethereum-package/commit/865e221fe5ca4e397f5b522e868477aa197deff1))
* support spinning up multiple relays ([#1272](https://github.com/ethpandaops/ethereum-package/issues/1272)) ([c26e7e2](https://github.com/ethpandaops/ethereum-package/commit/c26e7e2e9f1b93ec0755012c4a2007ee7082531d))
* update assertoor config ([#1312](https://github.com/ethpandaops/ethereum-package/issues/1312)) ([8afc10c](https://github.com/ethpandaops/ethereum-package/commit/8afc10c8c16b168c46592c855e3ee4d0a4cd2d07))
* use gloas-support image image for assertoor when gloas is scheduled ([#1318](https://github.com/ethpandaops/ethereum-package/issues/1318)) ([f18408b](https://github.com/ethpandaops/ethereum-package/commit/f18408b0195c03dc1c930ad2ca200050c4b14080))
* **vc:** allow 'consensoor' VC type in vc_launcher ([865e221](https://github.com/ethpandaops/ethereum-package/commit/865e221fe5ca4e397f5b522e868477aa197deff1))


### Bug Fixes

* **besu:** remove CLIQUE from RPC API lists ([#1341](https://github.com/ethpandaops/ethereum-package/issues/1341)) ([6307765](https://github.com/ethpandaops/ethereum-package/commit/6307765a78a0c7f44cb9106c2451712dff051770))
* binary rename from nimbus_exe.. to nimbus ([#1325](https://github.com/ethpandaops/ethereum-package/issues/1325)) ([343ae7f](https://github.com/ethpandaops/ethereum-package/commit/343ae7f946408cde2950241bb3239d4810acc306))
* bump ethereum-genesis-generator to 5.3.1 ([#1330](https://github.com/ethpandaops/ethereum-package/issues/1330)) ([429e3cb](https://github.com/ethpandaops/ethereum-package/commit/429e3cb9316e0811165f8b963d0245e0cfbcc0d7))
* bump ethereum-genesis-generator to 5.3.5 ([#1332](https://github.com/ethpandaops/ethereum-package/issues/1332)) ([56535d9](https://github.com/ethpandaops/ethereum-package/commit/56535d9ed5c88149b7ac82039daa4b8cde9ae48d))
* bump GitHub Actions to latest releases ([#1342](https://github.com/ethpandaops/ethereum-package/issues/1342)) ([0dedf87](https://github.com/ethpandaops/ethereum-package/commit/0dedf877ec283014c62aecab5b28295b16aaf3e9))
* bump kurtosis-assertoor-github-action to fix Node.js 20 deprecation warnings ([#1336](https://github.com/ethpandaops/ethereum-package/issues/1336)) ([b31af5e](https://github.com/ethpandaops/ethereum-package/commit/b31af5e2f8656c05b4b923b07d4065b00c43c184))
* claude skill install command does exist ([#1331](https://github.com/ethpandaops/ethereum-package/issues/1331)) ([a0f3436](https://github.com/ethpandaops/ethereum-package/commit/a0f3436b0c308e12ff53583a596aa0b6e03a2b01))
* dora eip7732-support to gloas-support ([#1298](https://github.com/ethpandaops/ethereum-package/issues/1298)) ([c6ca605](https://github.com/ethpandaops/ethereum-package/commit/c6ca605fc7af611d88864355285f8ef4ebfd42a1))
* enable private discovery for Grandine for both built-in and external vc ([#1315](https://github.com/ethpandaops/ethereum-package/issues/1315)) ([7282336](https://github.com/ethpandaops/ethereum-package/commit/72823365ae5078e2d38de0f36865b7c3f1ac006a))
* enforce spammer names to avoid deduplication on spammor side ([#1296](https://github.com/ethpandaops/ethereum-package/issues/1296)) ([2faba19](https://github.com/ethpandaops/ethereum-package/commit/2faba1900ccdb1deeff9dccb888a0b072bf85fd5))
* fail if dummy first error handling ([#1290](https://github.com/ethpandaops/ethereum-package/issues/1290)) ([8803a15](https://github.com/ethpandaops/ethereum-package/commit/8803a1598745e5195c66737c8670b52ef93adaf9))
* grafana dashboard data source ([#1291](https://github.com/ethpandaops/ethereum-package/issues/1291)) ([6b605f1](https://github.com/ethpandaops/ethereum-package/commit/6b605f15c6389cbd53f280fb4ffac03559eee181))
* **input_parser:** expand VC matrix as cartesian product in participants_matrix ([#1347](https://github.com/ethpandaops/ethereum-package/issues/1347)) ([4cb71e5](https://github.com/ethpandaops/ethereum-package/commit/4cb71e5c53fa8faa7b7dea9732d5c14521f5937b))
* mev api ci startup bug ([#1297](https://github.com/ethpandaops/ethereum-package/issues/1297)) ([103b078](https://github.com/ethpandaops/ethereum-package/commit/103b078f107ade53c3d61c12b9e040a1d04ed07a))
* treat besu/teku as special butterflies ([#1322](https://github.com/ethpandaops/ethereum-package/issues/1322)) ([87df9d9](https://github.com/ethpandaops/ethereum-package/commit/87df9d9d15e493ea91db788161e54324c39f6a6e))
* update assertoor ai models ([#1313](https://github.com/ethpandaops/ethereum-package/issues/1313)) ([234fb54](https://github.com/ethpandaops/ethereum-package/commit/234fb54662a42734b77720bc95e9ef45ba4115f9))
* update docker/login-action to v4.0.0 for Node.js 24 ([#1333](https://github.com/ethpandaops/ethereum-package/issues/1333)) ([4918751](https://github.com/ethpandaops/ethereum-package/commit/49187518a755123a1a6a866d2fbc97df122fad6f))
* update kurtosis apt source to sdk.kurtosis.com ([#1334](https://github.com/ethpandaops/ethereum-package/issues/1334)) ([b031d21](https://github.com/ethpandaops/ethereum-package/commit/b031d21763c199571167026504191f6539935604))

## [6.0.0](https://github.com/ethpandaops/ethereum-package/compare/5.0.1...6.0.0) (2026-01-05)


### ⚠ BREAKING CHANGES

* geth genesis flag, osaka time passthrough for public networks ([#1229](https://github.com/ethpandaops/ethereum-package/issues/1229))
* remove mev_flood  ([#1091](https://github.com/ethpandaops/ethereum-package/issues/1091))

### Features

* Add 'trace' to enabled JSON-RPC modules ([#1235](https://github.com/ethpandaops/ethereum-package/issues/1235)) ([ea241af](https://github.com/ethpandaops/ethereum-package/commit/ea241af2bdd5b125fb6c909af1b2498bfcdaf327))
* add `depends_on` to store service files for parallel ([#1208](https://github.com/ethpandaops/ethereum-package/issues/1208)) ([98206c8](https://github.com/ethpandaops/ethereum-package/commit/98206c89e06f616e94fea85f7c84fb062de7277a))
* add `env` parameter to Blockscout configuration for custom environment variables ([#1262](https://github.com/ethpandaops/ethereum-package/issues/1262)) ([627619c](https://github.com/ethpandaops/ethereum-package/commit/627619c192bf55c340681d18388b0cb84706aa80))
* add api to dora ([#1120](https://github.com/ethpandaops/ethereum-package/issues/1120)) ([9dbde5a](https://github.com/ethpandaops/ethereum-package/commit/9dbde5a5199360093c44866880ef5596e1fddb5a))
* add bpo ([#1016](https://github.com/ethpandaops/ethereum-package/issues/1016)) ([37082b2](https://github.com/ethpandaops/ethereum-package/commit/37082b2253e3df3526cd96f48858d43bfadb9ebf))
* add chainspec support for fusaka-devnet-2 ([#1055](https://github.com/ethpandaops/ethereum-package/issues/1055)) ([0e18733](https://github.com/ethpandaops/ethereum-package/commit/0e18733e0db851310ceb287bd72a96ec7336e4ab))
* add checkpointz ([#1254](https://github.com/ethpandaops/ethereum-package/issues/1254)) ([c9d72f9](https://github.com/ethpandaops/ethereum-package/commit/c9d72f9c4ce4b9466b39c44862be6a7bb8ebc51a))
* Add cl_devices parameter for mounting host devices to CL containers ([#1251](https://github.com/ethpandaops/ethereum-package/issues/1251)) ([ab9e55f](https://github.com/ethpandaops/ethereum-package/commit/ab9e55fc24441dac4c9ef41ce36fb4628afdebab))
* add client-language label to ethereum service containers ([#1074](https://github.com/ethpandaops/ethereum-package/issues/1074)) ([6955763](https://github.com/ethpandaops/ethereum-package/commit/6955763975046e2291217cf45eab8d5bde2f00d9))
* add custody group and getBlobsV2 metrics on PeerDAS dashboard ([#982](https://github.com/ethpandaops/ethereum-package/issues/982)) ([e43e569](https://github.com/ethpandaops/ethereum-package/commit/e43e569c47b6f8ee06a73add24bb59518aa74396))
* add debug port for ethjs ([#1044](https://github.com/ethpandaops/ethereum-package/issues/1044)) ([459a931](https://github.com/ethpandaops/ethereum-package/commit/459a9312d6f503c3107c5b6cf25822b1e72aafae))
* add disk usage as a metric for ethereum-metrics-exporter ([#1026](https://github.com/ethpandaops/ethereum-package/issues/1026)) ([8e793a5](https://github.com/ethpandaops/ethereum-package/commit/8e793a52da52eb13336c74184deff569ce5a47a8))
* add el genesis files to dora config for extended blob gas display ([#1180](https://github.com/ethpandaops/ethereum-package/issues/1180)) ([2fd2b41](https://github.com/ethpandaops/ethereum-package/commit/2fd2b4177a6e03c535c8b51b346cfac495828429))
* add engine snooper urls to dora config for block execution time tracking ([#1083](https://github.com/ethpandaops/ethereum-package/issues/1083)) ([7ffb9d5](https://github.com/ethpandaops/ethereum-package/commit/7ffb9d5af373f28db31fc257ff67ae0c68012dd9))
* Add eRPC integration ([#1223](https://github.com/ethpandaops/ethereum-package/issues/1223)) ([16b72b7](https://github.com/ethpandaops/ethereum-package/commit/16b72b79d3392a851f0a18aaf18fe4b4fce20c03))
* add ethrex execution client ([#1131](https://github.com/ethpandaops/ethereum-package/issues/1131)) ([82e5a71](https://github.com/ethpandaops/ethereum-package/commit/82e5a7178138d892c0c31c3839c89d53ffd42d9a))
* add extra labels ([#1030](https://github.com/ethpandaops/ethereum-package/issues/1030)) ([12447f8](https://github.com/ethpandaops/ethereum-package/commit/12447f8ece26d48c4f5b324d288d19cf518c1a36))
* add genesis_time as a possible network_param config value ([#1216](https://github.com/ethpandaops/ethereum-package/issues/1216)) ([b11ce6f](https://github.com/ethpandaops/ethereum-package/commit/b11ce6f5739a849496440ff64967dcfb72fbd035))
* Add Geth dashboard  to the grafana module ([#1166](https://github.com/ethpandaops/ethereum-package/issues/1166)) ([47c90f6](https://github.com/ethpandaops/ethereum-package/commit/47c90f6defb3777e0667984a1eec63f45c8496d2))
* Add Kurtosis config for BALs devnet 0 ([#1197](https://github.com/ethpandaops/ethereum-package/issues/1197)) ([9a93b33](https://github.com/ethpandaops/ethereum-package/commit/9a93b33071be666b583a77c849b13a2ea2dcd6c8))
* add log level to ethrex ([#1269](https://github.com/ethpandaops/ethereum-package/issues/1269)) ([57af564](https://github.com/ethpandaops/ethereum-package/commit/57af564deb618745b752f76396c8371fd936f78f))
* add maxblobspertx ([#1063](https://github.com/ethpandaops/ethereum-package/issues/1063)) ([1944080](https://github.com/ethpandaops/ethereum-package/commit/19440801b1837d266ad4d847f399a577f9c57550))
* add mempool-bridge service integration ([#1222](https://github.com/ethpandaops/ethereum-package/issues/1222)) ([92d2239](https://github.com/ethpandaops/ethereum-package/commit/92d2239c5c8d87d182273cf17122bdb32a14e2f0))
* add mev-fulu test ([#1014](https://github.com/ethpandaops/ethereum-package/issues/1014)) ([67a76e9](https://github.com/ethpandaops/ethereum-package/commit/67a76e9ce49d64092afd13cde54db943928c71ab))
* add MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS as config option ([#1057](https://github.com/ethpandaops/ethereum-package/issues/1057)) ([97afe9c](https://github.com/ethpandaops/ethereum-package/commit/97afe9cf764447780db6a52acc666f370f8258ba))
* add more groups to spamoor clients ([#1066](https://github.com/ethpandaops/ethereum-package/issues/1066)) ([c9ed485](https://github.com/ethpandaops/ethereum-package/commit/c9ed4855cde389c3917b4905438c1a073afc9e72))
* add multiple bn nodes per vc ([#1189](https://github.com/ethpandaops/ethereum-package/issues/1189)) ([7727330](https://github.com/ethpandaops/ethereum-package/commit/7727330b96a6f9fc7a119b1bba72f2ca208b5d60))
* add name and nameoverride func to clients page spamoor ([#1068](https://github.com/ethpandaops/ethereum-package/issues/1068)) ([e3abf47](https://github.com/ethpandaops/ethereum-package/commit/e3abf47d30c90a07c571af1b006a8d0902b8449f))
* add new timing parameters ([#1168](https://github.com/ethpandaops/ethereum-package/issues/1168)) ([1d524c8](https://github.com/ethpandaops/ethereum-package/commit/1d524c82182ce053a1aed06129017442de1de97a))
* add nginx file server implementation ([#1065](https://github.com/ethpandaops/ethereum-package/issues/1065)) ([fd76bba](https://github.com/ethpandaops/ethereum-package/commit/fd76bba46326469872afb02c883a81c2fbfb9b0b))
* add node index label ([#1086](https://github.com/ethpandaops/ethereum-package/issues/1086)) ([5aa0d44](https://github.com/ethpandaops/ethereum-package/commit/5aa0d442501c2193d8c54e5a1a0a374679a9d5d3))
* add node selectors and tolerations to run_sh ([#1167](https://github.com/ethpandaops/ethereum-package/issues/1167)) ([c4e0c89](https://github.com/ethpandaops/ethereum-package/commit/c4e0c8945ede598729f496a58a9be59f71f558d5))
* add OTLP collector URL to Lighthouse validator client ([#1252](https://github.com/ethpandaops/ethereum-package/issues/1252)) ([f507360](https://github.com/ethpandaops/ethereum-package/commit/f5073608b8ea23d99bd1f36c911e42632dd0b629))
* add peercount support for nimbusel ([#1092](https://github.com/ethpandaops/ethereum-package/issues/1092)) ([12409e4](https://github.com/ethpandaops/ethereum-package/commit/12409e4912124f4a188994f623da49c623b7555c))
* add per participant checkpoint sync enabled flag ([#1243](https://github.com/ethpandaops/ethereum-package/issues/1243)) ([2101448](https://github.com/ethpandaops/ethereum-package/commit/2101448191a8937cf77e3f5806e14e598c2e1995))
* add public ports for mev ([#1023](https://github.com/ethpandaops/ethereum-package/issues/1023)) ([5d89274](https://github.com/ethpandaops/ethereum-package/commit/5d89274b8c0189add903dd814261eccdc1ef869f))
* add public ports for other tools ([#1025](https://github.com/ethpandaops/ethereum-package/issues/1025)) ([fa9d05e](https://github.com/ethpandaops/ethereum-package/commit/fa9d05ef4bbc55ec307f1e50e46f365c5d293b3d))
* add sanity check for lack of supernodes ([#1145](https://github.com/ethpandaops/ethereum-package/issues/1145)) ([70dd011](https://github.com/ethpandaops/ethereum-package/commit/70dd01125ef97484447c13af1c43ea9cec0c2d8c))
* add sanity check for perfect peerdas ([#1217](https://github.com/ethpandaops/ethereum-package/issues/1217)) ([6c51752](https://github.com/ethpandaops/ethereum-package/commit/6c517523ac22ffe258f21cbc00be796e4a7efe74))
* add skip_start ([#1253](https://github.com/ethpandaops/ethereum-package/issues/1253)) ([338bb88](https://github.com/ethpandaops/ethereum-package/commit/338bb88719985557bbbf229fb98f3513183201b6))
* Add support for dummy EL in kurtosis config ([#1276](https://github.com/ethpandaops/ethereum-package/issues/1276)) ([b8007fd](https://github.com/ethpandaops/ethereum-package/commit/b8007fd3eddcb35aba48c324ffe12ae95d18dcf6))
* add support for extra mounts for CL, EL, and VC clients ([#1136](https://github.com/ethpandaops/ethereum-package/issues/1136)) ([d385265](https://github.com/ethpandaops/ethereum-package/commit/d385265162c02d08df131d833b2729ef874afb67))
* add support for MIN_EPOCHS_FOR_BLOCK_REQUESTS ([#1211](https://github.com/ethpandaops/ethereum-package/issues/1211)) ([17ad84a](https://github.com/ethpandaops/ethereum-package/commit/17ad84a110801c2a0fd82eb550a45c180fc6d44d))
* add support for separate bootnode with bootnodoor ([#1238](https://github.com/ethpandaops/ethereum-package/issues/1238)) ([f8f4de6](https://github.com/ethpandaops/ethereum-package/commit/f8f4de6590ec18df5a9d7287ab51245c38b6be17))
* Add support for the helix relay ([#1237](https://github.com/ethpandaops/ethereum-package/issues/1237)) ([e17cb60](https://github.com/ethpandaops/ethereum-package/commit/e17cb60cc1e8e0962f48804d55108e433f702605))
* add telemetry service name flag to Lighthouse ([#1160](https://github.com/ethpandaops/ethereum-package/issues/1160)) ([2f61b9c](https://github.com/ethpandaops/ethereum-package/commit/2f61b9c65a49dca7428c02831c3bb034d8e11b79))
* add Tempo as an additional service to collect Lighthouse tracing data ([#1150](https://github.com/ethpandaops/ethereum-package/issues/1150)) ([ba328bb](https://github.com/ethpandaops/ethereum-package/commit/ba328bb51fa63fcabf0dc7cc14ffe43d4f9a64a8))
* add tolerations ([#1137](https://github.com/ethpandaops/ethereum-package/issues/1137)) ([a4b52da](https://github.com/ethpandaops/ethereum-package/commit/a4b52da3efdd58fbb27a66616ee2ee44fdd2455c))
* add tx snooper ([#1043](https://github.com/ethpandaops/ethereum-package/issues/1043)) ([34e1151](https://github.com/ethpandaops/ethereum-package/commit/34e11513881aebba04e50e57515b3cad42a5f168))
* add validator balance ([#1032](https://github.com/ethpandaops/ethereum-package/issues/1032)) ([3601346](https://github.com/ethpandaops/ethereum-package/commit/36013462cd74c1fd68de519d9dc0576f6920da97))
* add validator ranges for devnets ([#1176](https://github.com/ethpandaops/ethereum-package/issues/1176)) ([3fb5084](https://github.com/ethpandaops/ethereum-package/commit/3fb508465a65281044bd5d02952884bd11f6f207))
* add validator summary dora ([#1177](https://github.com/ethpandaops/ethereum-package/issues/1177)) ([f289914](https://github.com/ethpandaops/ethereum-package/commit/f28991489c922aace369a21f450a67bdc358b775))
* **ai:** Add docs ([#1061](https://github.com/ethpandaops/ethereum-package/issues/1061)) ([1bf0893](https://github.com/ethpandaops/ethereum-package/commit/1bf08937f7ec376d5e281fef87dc1efc28aeefef))
* allow passing custom env vars to the genesis generator ([#1227](https://github.com/ethpandaops/ethereum-package/issues/1227)) ([a43368e](https://github.com/ethpandaops/ethereum-package/commit/a43368eb3085a20f5950de0c7d11dc4bece37348))
* allow specifying additional mnemonics ([#1267](https://github.com/ethpandaops/ethereum-package/issues/1267)) ([dad4ea3](https://github.com/ethpandaops/ethereum-package/commit/dad4ea34e70f0e1a7b67c9569526c561bbcc3653))
* automatically generate a 2/3 ratio for target/max blobs  ([#1156](https://github.com/ethpandaops/ethereum-package/issues/1156)) ([2d1aa15](https://github.com/ethpandaops/ethereum-package/commit/2d1aa15be3f76e376baaf4e5cacfe3a3e96b96ef))
* bump egg (fulu genesis support) ([#1140](https://github.com/ethpandaops/ethereum-package/issues/1140)) ([601df3b](https://github.com/ethpandaops/ethereum-package/commit/601df3b1d51d6dd9b9b12f242f4f453bf5430ed8))
* configure Blockscout to index from shadowfork block height ([#1221](https://github.com/ethpandaops/ethereum-package/issues/1221)) ([a1347fe](https://github.com/ethpandaops/ethereum-package/commit/a1347fecad5e67bd6d31eec140bcf2b6792de217))
* default to ethpandaops/client:devnet images ([#1097](https://github.com/ethpandaops/ethereum-package/issues/1097)) ([fa4f99a](https://github.com/ethpandaops/ethereum-package/commit/fa4f99a70a6789254ee5127d8f9bbcd9ec4f3e9f))
* enable `custom_preset` in checkpointz config ([#1259](https://github.com/ethpandaops/ethereum-package/issues/1259)) ([8e9913b](https://github.com/ethpandaops/ethereum-package/commit/8e9913bdbda58209011533bf31fc3029b4f0e6cf))
* enable extra env vars to be set during runtime mev, enable pprof by default ([#1012](https://github.com/ethpandaops/ethereum-package/issues/1012)) ([94a7f22](https://github.com/ethpandaops/ethereum-package/commit/94a7f22c93f79a66d244fa6d9f179213afe6147e))
* enable mass das guardian scans in dora ([#1125](https://github.com/ethpandaops/ethereum-package/issues/1125)) ([0671925](https://github.com/ethpandaops/ethereum-package/commit/06719250033abf51b4caabf36211e29906c6358b))
* enable prom and grafana to be ran separatly ([#1028](https://github.com/ethpandaops/ethereum-package/issues/1028)) ([500c3f0](https://github.com/ethpandaops/ethereum-package/commit/500c3f06a53db0648406c78de7370c8f15b769f2))
* enable rpc proxy in dora ([#1212](https://github.com/ethpandaops/ethereum-package/issues/1212)) ([4de44ce](https://github.com/ethpandaops/ethereum-package/commit/4de44ceb5c3f0a57d98759beb393637773fe755e))
* enable tty for prysm ([#1076](https://github.com/ethpandaops/ethereum-package/issues/1076)) ([1ae1826](https://github.com/ethpandaops/ethereum-package/commit/1ae18265fa2c0421ff950e0aae6873aac2e4654b))
* enable validator block on sentry ([#1224](https://github.com/ethpandaops/ethereum-package/issues/1224)) ([0f61746](https://github.com/ethpandaops/ethereum-package/commit/0f61746d8ab4e304c6d603923dd021b134945210))
* Extra Files for `*_extra_mounts` support ([#1144](https://github.com/ethpandaops/ethereum-package/issues/1144)) ([1b889f6](https://github.com/ethpandaops/ethereum-package/commit/1b889f6da26914699b8a71aea06a26eefa5b29ad))
* feature flag for DisableFinalizedRootCheck ([#1228](https://github.com/ethpandaops/ethereum-package/issues/1228)) ([c51f183](https://github.com/ethpandaops/ethereum-package/commit/c51f183b336b2b6a2af89526a5102f9625821b1b))
* fine grained control with public ip addresses per service ([#1111](https://github.com/ethpandaops/ethereum-package/issues/1111)) ([3f60fa8](https://github.com/ethpandaops/ethereum-package/commit/3f60fa8540538dd94335aed6656d0034bf7c1255))
* make default node a supernode ([#1230](https://github.com/ethpandaops/ethereum-package/issues/1230)) ([802c045](https://github.com/ethpandaops/ethereum-package/commit/802c0454bb21d31991b0736ea603ef6b7f071f7a))
* remove maxBlobsPerTx ([#1113](https://github.com/ethpandaops/ethereum-package/issues/1113)) ([9f40d0a](https://github.com/ethpandaops/ethereum-package/commit/9f40d0ac052759dcdc6515e7d6969c780f4f1b9b))
* remove mev_flood  ([#1091](https://github.com/ethpandaops/ethereum-package/issues/1091)) ([2d3b170](https://github.com/ethpandaops/ethereum-package/commit/2d3b17048a37daa8f5742b978828eef6aa83b55c))
* rename eip7732 to gloas ([#1157](https://github.com/ethpandaops/ethereum-package/issues/1157)) ([f0c5522](https://github.com/ethpandaops/ethereum-package/commit/f0c552299d076609d3edacc4643c7f0abe8767d0))
* set fulu fork epoch at genesis ([#1261](https://github.com/ethpandaops/ethereum-package/issues/1261)) ([6ae2474](https://github.com/ethpandaops/ethereum-package/commit/6ae24741119d429704d41251f47a7d0e0893bc39))
* sps setting Qu0b/nethermind sps ([#1225](https://github.com/ethpandaops/ethereum-package/issues/1225)) ([969a707](https://github.com/ethpandaops/ethereum-package/commit/969a7076d1694f8cf2010459cf19babf679466b2))
* Support el_storage_type flag ([#1257](https://github.com/ethpandaops/ethereum-package/issues/1257)) ([2eb1e85](https://github.com/ethpandaops/ethereum-package/commit/2eb1e858e2e2bd7439ca205dfb56ab8157201d8e))
* use dns names instead of ip addresses for services ([#1194](https://github.com/ethpandaops/ethereum-package/issues/1194)) ([f360a51](https://github.com/ethpandaops/ethereum-package/commit/f360a513b8298c1f89b89537848c28de5ba30713))


### Bug Fixes

* add fulu fork version for mev-boost-relay ([#1088](https://github.com/ethpandaops/ethereum-package/issues/1088)) ([953ec57](https://github.com/ethpandaops/ethereum-package/commit/953ec57c2446ba52f52c19d5d73f00529721aa61))
* add input option for blobber ([#1072](https://github.com/ethpandaops/ethereum-package/issues/1072)) ([293286d](https://github.com/ethpandaops/ethereum-package/commit/293286dfe970868b2d18265e28ffe708b19907ff))
* assertoor image for fulu support ([#1240](https://github.com/ethpandaops/ethereum-package/issues/1240)) ([b0f4fab](https://github.com/ethpandaops/ethereum-package/commit/b0f4fabf9d2958d7b67e56a2e0dc91ef26c2dd9a))
* besu sync snap if non kurtosis ([#1034](https://github.com/ethpandaops/ethereum-package/issues/1034)) ([6752218](https://github.com/ethpandaops/ethereum-package/commit/6752218a02be6ef293b6adfc432535b53ac03748))
* **blockscout:** make frontend available in kubernetes ([#1033](https://github.com/ethpandaops/ethereum-package/issues/1033)) ([d3ae571](https://github.com/ethpandaops/ethereum-package/commit/d3ae57110f8761bd26e47e2616ea6d52f8bff21c))
* bump egg,fix minimal preset ([#1165](https://github.com/ethpandaops/ethereum-package/issues/1165)) ([0f877c6](https://github.com/ethpandaops/ethereum-package/commit/0f877c6e2b7098705478931b83c1535064b61ad1))
* bump ethereum-genesis-generator to fix issues with large additional contracts ([#1019](https://github.com/ethpandaops/ethereum-package/issues/1019)) ([cb644af](https://github.com/ethpandaops/ethereum-package/commit/cb644aff035c6883575959ee50a64eef83615486))
* change default images ([#1099](https://github.com/ethpandaops/ethereum-package/issues/1099)) ([ba92830](https://github.com/ethpandaops/ethereum-package/commit/ba9283094612b1605599a03361cbb74305db17d0))
* change lh supernode flag ([#1186](https://github.com/ethpandaops/ethereum-package/issues/1186)) ([f64ff38](https://github.com/ethpandaops/ethereum-package/commit/f64ff386db4a31799a83f6c08ec7bc3a69ebd13a))
* change nimbus supernode flag ([#1275](https://github.com/ethpandaops/ethereum-package/issues/1275)) ([094b3f3](https://github.com/ethpandaops/ethereum-package/commit/094b3f3da003ae91cd83c0517deccec4c0f73425))
* cl node discovery on k8s ([#1162](https://github.com/ethpandaops/ethereum-package/issues/1162)) ([5643dfd](https://github.com/ethpandaops/ethereum-package/commit/5643dfd26f04f7b77c7556d2e3d67a84c2ea9822))
* cleanup besu ([#1139](https://github.com/ethpandaops/ethereum-package/issues/1139)) ([5001427](https://github.com/ethpandaops/ethereum-package/commit/5001427aa3acf8411f6286a6772ab591996f8df3))
* commit boost cb-config ([#1233](https://github.com/ethpandaops/ethereum-package/issues/1233)) ([87f3e03](https://github.com/ethpandaops/ethereum-package/commit/87f3e03ae478acb8e3a61a0f1e0af8c430c5569f))
* commit boost integration ([#1204](https://github.com/ethpandaops/ethereum-package/issues/1204)) ([69e60b3](https://github.com/ethpandaops/ethereum-package/commit/69e60b3b86c470d449ed0045af508e514b1c9c41))
* default to empty blob schedule if non defined ([#1115](https://github.com/ethpandaops/ethereum-package/issues/1115)) ([35c298d](https://github.com/ethpandaops/ethereum-package/commit/35c298d2d912ad6dadc1c6dd97c71f724829e16c))
* default to pandaops ethrex image for arm/amd ([#1249](https://github.com/ethpandaops/ethereum-package/issues/1249)) ([b03a571](https://github.com/ethpandaops/ethereum-package/commit/b03a571162f6132c147810ab829fc2a35aa9504b))
* disable page cache in dora ([#1079](https://github.com/ethpandaops/ethereum-package/issues/1079)) ([1e51446](https://github.com/ethpandaops/ethereum-package/commit/1e514461501c3c54594231c553305b2e3e2fd424))
* dora,assertoor pull through cache ([#1059](https://github.com/ethpandaops/ethereum-package/issues/1059)) ([69c965f](https://github.com/ethpandaops/ethereum-package/commit/69c965fb434622805a56267604562afdd9c869cb))
* downgrade teku from latest to master ([#1155](https://github.com/ethpandaops/ethereum-package/issues/1155)) ([996c2a1](https://github.com/ethpandaops/ethereum-package/commit/996c2a1b2483d9a4151023d465c0d5735524e08b))
* el/cl/vc index calculation bug, due to parallel execution ([#1121](https://github.com/ethpandaops/ethereum-package/issues/1121)) ([fc4e65e](https://github.com/ethpandaops/ethereum-package/commit/fc4e65e15c3b1b859e0f5eda31489d95e05abb7a))
* enable submission pages in dora ([#1031](https://github.com/ethpandaops/ethereum-package/issues/1031)) ([33e3f7b](https://github.com/ethpandaops/ethereum-package/commit/33e3f7b1d1b818ae993885ceaee530bdbf9a8a30))
* ensure proper bpo scheduling ([#1266](https://github.com/ethpandaops/ethereum-package/issues/1266)) ([57120bf](https://github.com/ethpandaops/ethereum-package/commit/57120bf668913b0f6cd62df929b8a265e8a2ae08))
* erigon db size alloc ([#1096](https://github.com/ethpandaops/ethereum-package/issues/1096)) ([777d37e](https://github.com/ethpandaops/ethereum-package/commit/777d37ed213916137e46b8886ed2e94d9140239b))
* failed to start network: ethereum-package execution error: Evaluation error: key osaka_time not in dict ([#1218](https://github.com/ethpandaops/ethereum-package/issues/1218)) ([ae74385](https://github.com/ethpandaops/ethereum-package/commit/ae74385e68086c1984fcd4a4eba995d0cb09afa7))
* fix checkpointz params override ([#1258](https://github.com/ethpandaops/ethereum-package/issues/1258)) ([9518b72](https://github.com/ethpandaops/ethereum-package/commit/9518b723cb1b349c81cb7003f6f18b49a88a28de))
* geth genesis flag, osaka time passthrough for public networks ([#1229](https://github.com/ethpandaops/ethereum-package/issues/1229)) ([d58cab7](https://github.com/ethpandaops/ethereum-package/commit/d58cab71d0e4ea0f75752232a2a78b024e2bf8a4))
* geth peering bug ([#1133](https://github.com/ethpandaops/ethereum-package/issues/1133)) ([bc62c0c](https://github.com/ethpandaops/ethereum-package/commit/bc62c0c30229b66fa67b73e32398cbb257d81e63))
* gloas minimal config values ([#1250](https://github.com/ethpandaops/ethereum-package/issues/1250)) ([2ec3a94](https://github.com/ethpandaops/ethereum-package/commit/2ec3a94a15c1e80eee70516e413fc53a1b0c6e44))
* helix logging type ([#1279](https://github.com/ethpandaops/ethereum-package/issues/1279)) ([756bfdd](https://github.com/ethpandaops/ethereum-package/commit/756bfdd19cd44d3a373d9e81c914992e66f6e2b0))
* **lighthouse:** allow genesis sync when checkpoint sync isn't enabled ([#1192](https://github.com/ethpandaops/ethereum-package/issues/1192)) ([4053331](https://github.com/ethpandaops/ethereum-package/commit/4053331ffff1977b9b3d7d4b48e4f504d6bfea51))
* make sure builder cl is supernode ([#1188](https://github.com/ethpandaops/ethereum-package/issues/1188)) ([dfef921](https://github.com/ethpandaops/ethereum-package/commit/dfef9215f1cfae27a9d39604726cfd0388440584))
* mev rbuilder remove unused config param ([#1248](https://github.com/ethpandaops/ethereum-package/issues/1248)) ([3838a5f](https://github.com/ethpandaops/ethereum-package/commit/3838a5fa80958d1bc66af844b6bebc79ae3739f9))
* minimal builds should use latest unstable branches ([#1174](https://github.com/ethpandaops/ethereum-package/issues/1174)) ([d6d6d5f](https://github.com/ethpandaops/ethereum-package/commit/d6d6d5f168b443be6ce6b4434275774cd6bb5ed9))
* minimal spec ([#1037](https://github.com/ethpandaops/ethereum-package/issues/1037)) ([2372550](https://github.com/ethpandaops/ethereum-package/commit/23725502f0ee74106d84f7d9eb5d9d210ca983c5))
* missing dns_name ([#1274](https://github.com/ethpandaops/ethereum-package/issues/1274)) ([3238be5](https://github.com/ethpandaops/ethereum-package/commit/3238be51bd23edccdae35f38ec94c22ea3fd3ee9))
* move bootnodoor to additional_services ([#1264](https://github.com/ethpandaops/ethereum-package/issues/1264)) ([bf40917](https://github.com/ethpandaops/ethereum-package/commit/bf409170c2a7632bb9e80128a0c933b479bb455d))
* nethermind chainspec, default genesis gas to 60M ([#1039](https://github.com/ethpandaops/ethereum-package/issues/1039)) ([b839e61](https://github.com/ethpandaops/ethereum-package/commit/b839e6148c04a11bc7b33559fd0f891a4ec324ef))
* network params default images ([#1213](https://github.com/ethpandaops/ethereum-package/issues/1213)) ([33a0db2](https://github.com/ethpandaops/ethereum-package/commit/33a0db2f85303add140bbc997bd8ca5d25a46081))
* nimbus checkpoint syncing ([#1181](https://github.com/ethpandaops/ethereum-package/issues/1181)) ([d464295](https://github.com/ethpandaops/ethereum-package/commit/d4642957cf3ceac6df8381ea9eff12ed3a0e17a3))
* only add --target-peers=0 only when the network is kurtosis ([#1119](https://github.com/ethpandaops/ethereum-package/issues/1119)) ([572cbfc](https://github.com/ethpandaops/ethereum-package/commit/572cbfcf48a6a2ccff7c25e3c9ff8c39488fe6c9))
* only append blob schedule, if defined ([#1022](https://github.com/ethpandaops/ethereum-package/issues/1022)) ([43db03a](https://github.com/ethpandaops/ethereum-package/commit/43db03ac65e20398288d5c639a261153de0aa942))
* override bpo1,2 ([#1196](https://github.com/ethpandaops/ethereum-package/issues/1196)) ([836cbb8](https://github.com/ethpandaops/ethereum-package/commit/836cbb8b41a832f8f2fa0632a533c2634b1de19b))
* pass gas limit to ethrex if network gas_limit was specified ([#1232](https://github.com/ethpandaops/ethereum-package/issues/1232)) ([39ac09b](https://github.com/ethpandaops/ethereum-package/commit/39ac09b15fae9912e21e6878e4bbd674cb1a16ef))
* prysm gzip encoding bug ([#1112](https://github.com/ethpandaops/ethereum-package/issues/1112)) ([9f5fc45](https://github.com/ethpandaops/ethereum-package/commit/9f5fc45bd50c4f272c284684a3bccd6cff2a561e))
* pull kurtosis images in kurtosis install ([#1048](https://github.com/ethpandaops/ethereum-package/issues/1048)) ([a00b6dd](https://github.com/ethpandaops/ethereum-package/commit/a00b6ddb10b0232a4d674b8b8b7b65ad5ff49e2f))
* rbuilder parallel safe sorting ([#1046](https://github.com/ethpandaops/ethereum-package/issues/1046)) ([ec5895d](https://github.com/ethpandaops/ethereum-package/commit/ec5895dcc14046c48db4dcf330f9d760b8f009f6))
* readme for additional services ([#1270](https://github.com/ethpandaops/ethereum-package/issues/1270)) ([ba855e0](https://github.com/ethpandaops/ethereum-package/commit/ba855e0ada309474aa5df4f438a7b287dfc19780))
* readme/CI jobs  ([#1263](https://github.com/ethpandaops/ethereum-package/issues/1263)) ([ca6b7d2](https://github.com/ethpandaops/ethereum-package/commit/ca6b7d221ea6da9b3798126cf3ec0587cd415082))
* remove default basefee fraction ([#1143](https://github.com/ethpandaops/ethereum-package/issues/1143)) ([d29e0bf](https://github.com/ethpandaops/ethereum-package/commit/d29e0bf10dfcc09ffb271805e80175e5a572ad90))
* remove graffiti ([#1082](https://github.com/ethpandaops/ethereum-package/issues/1082)) ([ee4fff4](https://github.com/ethpandaops/ethereum-package/commit/ee4fff44d1ab01ee6ff3f00c8324fbe8cbdb29d2))
* remove unused env ([#1153](https://github.com/ethpandaops/ethereum-package/issues/1153)) ([ea73a95](https://github.com/ethpandaops/ethereum-package/commit/ea73a95cc6da41572a356712cb661ed4cd169309))
* revert prometheus branch ([#1024](https://github.com/ethpandaops/ethereum-package/issues/1024)) ([1559386](https://github.com/ethpandaops/ethereum-package/commit/1559386a3ca922bb11be2c2f011c083a052f6a55))
* sanity check for all subfields ([#1130](https://github.com/ethpandaops/ethereum-package/issues/1130)) ([3d2c71c](https://github.com/ethpandaops/ethereum-package/commit/3d2c71c72a4ed32c94c3334e41f7821b124aab3e))
* service ports ([#1021](https://github.com/ethpandaops/ethereum-package/issues/1021)) ([e83a1ad](https://github.com/ethpandaops/ethereum-package/commit/e83a1ad903eada1b2d193a305e43f1e33c41821f))
* set deploy_client_group for mev related uniswap spammer ([#1195](https://github.com/ethpandaops/ethereum-package/issues/1195)) ([09d09b0](https://github.com/ethpandaops/ethereum-package/commit/09d09b0df362b2194e32e36eb40b5fcb14a9e631))
* set miner gasprice for geth if running kt' ([#1027](https://github.com/ethpandaops/ethereum-package/issues/1027)) ([161fc14](https://github.com/ethpandaops/ethereum-package/commit/161fc14275420827e673617768b2e4aa5115e55d))
* sf for erigon/geth post fulu ([#1183](https://github.com/ethpandaops/ethereum-package/issues/1183)) ([e964e30](https://github.com/ethpandaops/ethereum-package/commit/e964e305a19d56b798800e84d264f97b87952c55))
* shadowfork enclave edits ([#1070](https://github.com/ethpandaops/ethereum-package/issues/1070)) ([63689ec](https://github.com/ethpandaops/ethereum-package/commit/63689ecf0a7119d2383d0dc08beaef0798e6a4ba))
* shadowfork latest bug ([#1045](https://github.com/ethpandaops/ethereum-package/issues/1045)) ([197cdf8](https://github.com/ethpandaops/ethereum-package/commit/197cdf84cbcc713f46bb37c4af84c4a0cf1854ff))
* shadowfork upstream to eth-clients ([#1047](https://github.com/ethpandaops/ethereum-package/issues/1047)) ([7c11a34](https://github.com/ethpandaops/ethereum-package/commit/7c11a34b8afc3f059aa6ca114f903d4f678bad29))
* single-node lighthouse startup issue ([#1073](https://github.com/ethpandaops/ethereum-package/issues/1073)) ([6d29b3a](https://github.com/ethpandaops/ethereum-package/commit/6d29b3ab4e729913188358bc7a4ccdba9cf1e767))
* some tests ([#1190](https://github.com/ethpandaops/ethereum-package/issues/1190)) ([fca81b3](https://github.com/ethpandaops/ethereum-package/commit/fca81b36413bd1d0cbb17e25c8d2c576b3c0a408))
* specify devnet size for persistent flag ([#1054](https://github.com/ethpandaops/ethereum-package/issues/1054)) ([b4c398c](https://github.com/ethpandaops/ethereum-package/commit/b4c398c8fb6307024b02149e9269f479ed730215))
* update custom-network to --network ([#1159](https://github.com/ethpandaops/ethereum-package/issues/1159)) ([1f57a7b](https://github.com/ethpandaops/ethereum-package/commit/1f57a7b70fadb770934bdc4d7834255e0362bef4))
* Update mainnet yaml ([#1069](https://github.com/ethpandaops/ethereum-package/issues/1069)) ([288919b](https://github.com/ethpandaops/ethereum-package/commit/288919b9519eeb90db6b95cd27459d4aafe10f88))
* Update sf to osaka ([#1105](https://github.com/ethpandaops/ethereum-package/issues/1105)) ([59579bb](https://github.com/ethpandaops/ethereum-package/commit/59579bb09baad5cd9990b294bbc37517c3682ef0))
* update some tests ([#1122](https://github.com/ethpandaops/ethereum-package/issues/1122)) ([9488046](https://github.com/ethpandaops/ethereum-package/commit/94880461c85946c2e3b7e4af06f21ce88cd0184a))
* use default dora image for fulu networks ([#1128](https://github.com/ethpandaops/ethereum-package/issues/1128)) ([b1f4e5c](https://github.com/ethpandaops/ethereum-package/commit/b1f4e5c4bd8823e39ea9171a664292b691de71a1))
* use reth-rbuilder image as the default mev_builder_image in network_params.yaml ([#1077](https://github.com/ethpandaops/ethereum-package/issues/1077)) ([f07f3b6](https://github.com/ethpandaops/ethereum-package/commit/f07f3b6acc3642dfdd10c162cb05353e835bbd1a))
* use self hosted runners ([#1100](https://github.com/ethpandaops/ethereum-package/issues/1100)) ([2fc4a3c](https://github.com/ethpandaops/ethereum-package/commit/2fc4a3c4cb96ecef81894fa3284ead609e30c088))
* use ubuntu-latest ([#1078](https://github.com/ethpandaops/ethereum-package/issues/1078)) ([d209af4](https://github.com/ethpandaops/ethereum-package/commit/d209af4abc698a8ac1e2599d47aefb06d7532b8f))
* validator client compatibility update ([#1114](https://github.com/ethpandaops/ethereum-package/issues/1114)) ([b826cc9](https://github.com/ethpandaops/ethereum-package/commit/b826cc991925fac696a698a5d41f6df492410230))
* yeet unused mev builder ([#1056](https://github.com/ethpandaops/ethereum-package/issues/1056)) ([40767fe](https://github.com/ethpandaops/ethereum-package/commit/40767fef19cc1f91c6b0ab435bc5c70ca616cf4c))
* yeet-7907 ([#1116](https://github.com/ethpandaops/ethereum-package/issues/1116)) ([93c6630](https://github.com/ethpandaops/ethereum-package/commit/93c66309b4c437dd342a306be62682a816879932))

## [5.0.1](https://github.com/ethpandaops/ethereum-package/compare/5.0.0...5.0.1) (2025-05-08)


### Bug Fixes

* lighthouse target peers revert ([#1008](https://github.com/ethpandaops/ethereum-package/issues/1008)) ([c26e9f6](https://github.com/ethpandaops/ethereum-package/commit/c26e9f6d40b9c1c6f9ca1d4214f937f6846be1db))

## [5.0.0](https://github.com/ethpandaops/ethereum-package/compare/4.6.0...5.0.0) (2025-05-08)


### ⚠ BREAKING CHANGES

* refactor open ports + add quic support ([#1000](https://github.com/ethpandaops/ethereum-package/issues/1000))
* launch spamoor daemon with web ui ([#964](https://github.com/ethpandaops/ethereum-package/issues/964))
* rename max_blob to sidecar for spamoor-blob ([#959](https://github.com/ethpandaops/ethereum-package/issues/959))
* rename transaction spammer, remove beacon metrics gazer ([#923](https://github.com/ethpandaops/ethereum-package/issues/923))

### Features

* add force snapshot syncing capability ([#993](https://github.com/ethpandaops/ethereum-package/issues/993)) ([28b6e95](https://github.com/ethpandaops/ethereum-package/commit/28b6e9566526c3b1fd565901164f36c66cbd5b63))
* add fraction as a config param ([#944](https://github.com/ethpandaops/ethereum-package/issues/944)) ([ad5ed42](https://github.com/ethpandaops/ethereum-package/commit/ad5ed42f3b4ee97f1d6bfc8bd950ce76b9a37579))
* add gas limit overrides ([#968](https://github.com/ethpandaops/ethereum-package/issues/968)) ([35a3667](https://github.com/ethpandaops/ethereum-package/commit/35a3667b91fdf8994854f0f9d417e7dfeb73cec9))
* add params to configure spamoor resource limits ([#1001](https://github.com/ethpandaops/ethereum-package/issues/1001)) ([0c2945c](https://github.com/ethpandaops/ethereum-package/commit/0c2945c319eead7846c4774f20e1363666963583))
* add peerdas fulu support to nethermind ([#937](https://github.com/ethpandaops/ethereum-package/issues/937)) ([c187400](https://github.com/ethpandaops/ethereum-package/commit/c18740085c1980745b7df2340153474712257a4b))
* add perfect peerdas testing ([#928](https://github.com/ethpandaops/ethereum-package/issues/928)) ([7e9a17f](https://github.com/ethpandaops/ethereum-package/commit/7e9a17f2f71d3346bd3ea7cff7e7828061ff757e))
* add shadowfork at block height ([#1006](https://github.com/ethpandaops/ethereum-package/issues/1006)) ([595d663](https://github.com/ethpandaops/ethereum-package/commit/595d66324d0de365534ba7458cd811f95252dac6))
* add spammor_blob wrapper v1 to activate with fulu ([#948](https://github.com/ethpandaops/ethereum-package/issues/948)) ([8c35011](https://github.com/ethpandaops/ethereum-package/commit/8c35011c72b89bf718147a1d0ffca6a8fc18e372))
* add validator custody ([#929](https://github.com/ethpandaops/ethereum-package/issues/929)) ([2ab3246](https://github.com/ethpandaops/ethereum-package/commit/2ab3246f8c214f16e59f4fa4b295addec11afa08))
* enable checkpoint sync for ephemery and public devnets ([#949](https://github.com/ethpandaops/ethereum-package/issues/949)) ([423b8c1](https://github.com/ethpandaops/ethereum-package/commit/423b8c1d232678475010ff9ec315dd85c141361d))
* enable checkpoint sync for public networks ([#935](https://github.com/ethpandaops/ethereum-package/issues/935)) ([13dbe4d](https://github.com/ethpandaops/ethereum-package/commit/13dbe4d99a80f183dd7546955a0fe491e111abc8))
* launch spamoor daemon with web ui ([#964](https://github.com/ethpandaops/ethereum-package/issues/964)) ([dabce8c](https://github.com/ethpandaops/ethereum-package/commit/dabce8c5ae92e68ad2bb3d124f30c33b32d111c7))
* make genesis electra ([#940](https://github.com/ethpandaops/ethereum-package/issues/940)) ([1d4e943](https://github.com/ethpandaops/ethereum-package/commit/1d4e943b19e29308cf02c40c3b57c1b7ba744b4d))
* remove python dependency ([#958](https://github.com/ethpandaops/ethereum-package/issues/958)) ([96cc80e](https://github.com/ethpandaops/ethereum-package/commit/96cc80e6d26aaed4892b3dda390e3b9cf3ac5609))
* rename max_blob to sidecar for spamoor-blob ([#959](https://github.com/ethpandaops/ethereum-package/issues/959)) ([8aa239e](https://github.com/ethpandaops/ethereum-package/commit/8aa239e86c4916e8faf6ccdeef0d1a6fec832016))
* test new eth-beacon-genesis ([#938](https://github.com/ethpandaops/ethereum-package/issues/938)) ([7ae4061](https://github.com/ethpandaops/ethereum-package/commit/7ae406180239bc6b67c65023bd4782e596031b52))
* Update pectra files ([#983](https://github.com/ethpandaops/ethereum-package/issues/983)) ([cf13b4b](https://github.com/ethpandaops/ethereum-package/commit/cf13b4b87030df42854a0bddd314bcda73168b6b))


### Bug Fixes

* able to override spamoor blob image ([#954](https://github.com/ethpandaops/ethereum-package/issues/954)) ([07ad4cf](https://github.com/ethpandaops/ethereum-package/commit/07ad4cf1482b76704e78172f59057f7edbea54ee))
* add blobscan DIRECT_URL env var ([#936](https://github.com/ethpandaops/ethereum-package/issues/936)) ([084e08d](https://github.com/ethpandaops/ethereum-package/commit/084e08d459a288839e24d4ef1c4fd9aa0fc36b8e)), closes [#916](https://github.com/ethpandaops/ethereum-package/issues/916)
* add missing flags to rbuilder ([#947](https://github.com/ethpandaops/ethereum-package/issues/947)) ([b710250](https://github.com/ethpandaops/ethereum-package/commit/b710250dac7c60a24f7b48896b9a459580ae20a2))
* add sec per slot to mev boost ([#984](https://github.com/ethpandaops/ethereum-package/issues/984)) ([ee447ec](https://github.com/ethpandaops/ethereum-package/commit/ee447ecef14302898db4e1d67b02b0ee722818b9))
* allow prysm to be forever-alone ([#969](https://github.com/ethpandaops/ethereum-package/issues/969)) ([6c82d40](https://github.com/ethpandaops/ethereum-package/commit/6c82d405cbb215d575979ec8408b10842c2bec0e))
* bump egg to v4.0.1 ([#939](https://github.com/ethpandaops/ethereum-package/issues/939)) ([4e3099c](https://github.com/ethpandaops/ethereum-package/commit/4e3099c9bf37c3c81c5d460cb43ca26b9f4d5d7f))
* bump eth metrics export and egg ([#991](https://github.com/ethpandaops/ethereum-package/issues/991)) ([1e65a6f](https://github.com/ethpandaops/ethereum-package/commit/1e65a6fc75c2b843d789f53f318f7bbbc6d51ba2))
* bump mev relay mem limit ([#1003](https://github.com/ethpandaops/ethereum-package/issues/1003)) ([8e54d8d](https://github.com/ethpandaops/ethereum-package/commit/8e54d8db091700de2af52488be5f8ba36625c7ac))
* bump tests ([#942](https://github.com/ethpandaops/ethereum-package/issues/942)) ([09ce03f](https://github.com/ethpandaops/ethereum-package/commit/09ce03f87140f2b058ca3ce9c7007860a7ceb2fd))
* cancellations for mev_relay_launcher.star ([#961](https://github.com/ethpandaops/ethereum-package/issues/961)) ([6b8f5e4](https://github.com/ethpandaops/ethereum-package/commit/6b8f5e4a9c9559894511a3e8e53096e48fba103e))
* change all deposit addresses to mainnet ([#981](https://github.com/ethpandaops/ethereum-package/issues/981)) ([d677e63](https://github.com/ethpandaops/ethereum-package/commit/d677e630f8e69137a3314df525e718f9dee6d286))
* **ci:** make docker rate limits appear correctly ([#946](https://github.com/ethpandaops/ethereum-package/issues/946)) ([0d9550a](https://github.com/ethpandaops/ethereum-package/commit/0d9550a788f936d4189f6fafe3756f8371f6a23f))
* cleanup spamoor blob ([#972](https://github.com/ethpandaops/ethereum-package/issues/972)) ([9f3a81e](https://github.com/ethpandaops/ethereum-package/commit/9f3a81e05bb04cfd6f8fca176d0b85e8ccc74928))
* geth network id cant be set with public networks ([#1005](https://github.com/ethpandaops/ethereum-package/issues/1005)) ([09ded2a](https://github.com/ethpandaops/ethereum-package/commit/09ded2a501f4b6d04bf46df42912d74d045abbe8))
* handle extra args for spamoor ([#975](https://github.com/ethpandaops/ethereum-package/issues/975)) ([12736e6](https://github.com/ethpandaops/ethereum-package/commit/12736e69c6d76395f94508cfab2de0ef155d27ae))
* lighthouse to be able to run alone ([#1007](https://github.com/ethpandaops/ethereum-package/issues/1007)) ([4c75506](https://github.com/ethpandaops/ethereum-package/commit/4c75506efb0b3a93c91cc660a688e350b2808166))
* make geth default to snap-sync ([#998](https://github.com/ethpandaops/ethereum-package/issues/998)) ([067ca8c](https://github.com/ethpandaops/ethereum-package/commit/067ca8cf4c374d658e1e530144de304d46a45663))
* make mev work with minimal preset ([#992](https://github.com/ethpandaops/ethereum-package/issues/992)) ([ff3da12](https://github.com/ethpandaops/ethereum-package/commit/ff3da1210a17b6fcf874657a5e620dd949b6606e))
* mev-pectra workflow ([#963](https://github.com/ethpandaops/ethereum-package/issues/963)) ([729ead8](https://github.com/ethpandaops/ethereum-package/commit/729ead846c3dac302bf6efd17ba842700bdb521c))
* nimbus supernode flag ([#997](https://github.com/ethpandaops/ethereum-package/issues/997)) ([8518302](https://github.com/ethpandaops/ethereum-package/commit/85183028766167dc52bdca56a26d1b5e48a4d5b1))
* osaka blob schedule chainspec ([#943](https://github.com/ethpandaops/ethereum-package/issues/943)) ([59ebc52](https://github.com/ethpandaops/ethereum-package/commit/59ebc524048024665e4902923c0edb24e9541f17))
* public networks wont fetch prague and osaka time ([#950](https://github.com/ethpandaops/ethereum-package/issues/950)) ([7fe59a8](https://github.com/ethpandaops/ethereum-package/commit/7fe59a8999f19498da981c57fde327540ecfeff0))
* python 3.11 bug, bump to 3.12 ([#957](https://github.com/ethpandaops/ethereum-package/issues/957)) ([83830d4](https://github.com/ethpandaops/ethereum-package/commit/83830d44823767af65eda7dfe6b26c87c536c4cf))
* refactor open ports + add quic support ([#1000](https://github.com/ethpandaops/ethereum-package/issues/1000)) ([a9247f3](https://github.com/ethpandaops/ethereum-package/commit/a9247f32e62db707407482ed20a0ad8a3f3765c9))
* reth-builder client name type ([#967](https://github.com/ethpandaops/ethereum-package/issues/967)) ([d27d959](https://github.com/ethpandaops/ethereum-package/commit/d27d959d0a6f2be74eb68c97ae3a1f9819d3ac2e))
* set fulu specific properties for blob scenarios in spamoor ([#971](https://github.com/ethpandaops/ethereum-package/issues/971)) ([74e98f0](https://github.com/ethpandaops/ethereum-package/commit/74e98f0e4e2546e8603bdc2b7fc4668f0bde7cc4))
* supernode bool in participant matrix ([#951](https://github.com/ethpandaops/ethereum-package/issues/951)) ([3a0a9a0](https://github.com/ethpandaops/ethereum-package/commit/3a0a9a00e94c42c8d5b99045eea64e8f53682d68))
* teku initial state to genesis state ([#962](https://github.com/ethpandaops/ethereum-package/issues/962)) ([1ad949f](https://github.com/ethpandaops/ethereum-package/commit/1ad949f4f65a34f041bd90050ca407e370eee579))
* update nimbus latest image ([#987](https://github.com/ethpandaops/ethereum-package/issues/987)) ([a5a1561](https://github.com/ethpandaops/ethereum-package/commit/a5a15619d89e5f193ef1d764f73259f425c4ffa2))
* update prysm supernode flag ([#999](https://github.com/ethpandaops/ethereum-package/issues/999)) ([eed788c](https://github.com/ethpandaops/ethereum-package/commit/eed788c074b3342b71498f8b864a3f5495ef4f38))
* Update tests ([#918](https://github.com/ethpandaops/ethereum-package/issues/918)) ([d8e035b](https://github.com/ethpandaops/ethereum-package/commit/d8e035b7a6e3e498b84b0edd77f0e526092a5fb1))
* use latest spamoor instead of blob-v1 for peerdas ([#1004](https://github.com/ethpandaops/ethereum-package/issues/1004)) ([f2c19b1](https://github.com/ethpandaops/ethereum-package/commit/f2c19b105ccf5824f7fc7ae3bf615ab504fd4e26))
* use next js proxy for blockscout frontend ([#873](https://github.com/ethpandaops/ethereum-package/issues/873)) ([151ff0a](https://github.com/ethpandaops/ethereum-package/commit/151ff0a1c865eb8365b7ec2f1ccfa0788d532d9f))
* use separate file for additional contracts & fix disabled fork activation epoch ([#849](https://github.com/ethpandaops/ethereum-package/issues/849)) ([e8cd95d](https://github.com/ethpandaops/ethereum-package/commit/e8cd95d9a9cc7e7b1f14584fed6c56ac0b0a6bd3))
* yeet trailing comma from enr list ([#965](https://github.com/ethpandaops/ethereum-package/issues/965)) ([63a6d50](https://github.com/ethpandaops/ethereum-package/commit/63a6d502d0a2d037ff083cb524f024c2d2e0b4db))


### Code Refactoring

* rename transaction spammer, remove beacon metrics gazer ([#923](https://github.com/ethpandaops/ethereum-package/issues/923)) ([96eeb99](https://github.com/ethpandaops/ethereum-package/commit/96eeb99bed7abc14dcec1eca5eae0f852eeb9fb0))

## [4.6.0](https://github.com/ethpandaops/ethereum-package/compare/4.5.0...4.6.0) (2025-03-19)


### Features

* use `eip7805-support` image for dora when eip7805 is scheduled for activation ([#900](https://github.com/ethpandaops/ethereum-package/issues/900)) ([9b3ee49](https://github.com/ethpandaops/ethereum-package/commit/9b3ee49c6086dcbdce833b68d8165f740273f23c))


### Bug Fixes

* add milliseconds to histograms ([#879](https://github.com/ethpandaops/ethereum-package/issues/879)) ([53602f1](https://github.com/ethpandaops/ethereum-package/commit/53602f1b042d2c8a2a5c064ce087a5f00ae53f7f))
* commit boost startup ([#906](https://github.com/ethpandaops/ethereum-package/issues/906)) ([040e622](https://github.com/ethpandaops/ethereum-package/commit/040e622cdf28e02721aa2e54904ee3d902485c18))
* decrease lighthouse mev --prepare-payload-lookahead from 12 to 8s ([#904](https://github.com/ethpandaops/ethereum-package/issues/904)) ([03bb449](https://github.com/ethpandaops/ethereum-package/commit/03bb449cfd327e55188fb1ff4407c4b75606b911))
* lighthouse minimal image ([#915](https://github.com/ethpandaops/ethereum-package/issues/915)) ([c3ecee8](https://github.com/ethpandaops/ethereum-package/commit/c3ecee8148068d5270d9e549d042066d2eb8aec0))
* prometheus shouldnt use latest ([#924](https://github.com/ethpandaops/ethereum-package/issues/924)) ([5cc99c8](https://github.com/ethpandaops/ethereum-package/commit/5cc99c8f30a758c77243a0f07c8f07462522436f))
* provide `--network-custom-config-path` to Vero ([#905](https://github.com/ethpandaops/ethereum-package/issues/905)) ([998063f](https://github.com/ethpandaops/ethereum-package/commit/998063fae8c68288dbc760e4a76bfdfa23ecd62b))
* Update config.toml.tmpl ([#919](https://github.com/ethpandaops/ethereum-package/issues/919)) ([8f8830f](https://github.com/ethpandaops/ethereum-package/commit/8f8830fd1992db4e5678c125bc400e310d5b6006))
* update to latest spec ([a9058f5](https://github.com/ethpandaops/ethereum-package/commit/a9058f540c6d34584dae6f73a79fae33d9fa29d6))

## [4.5.0](https://github.com/ethpandaops/ethereum-package/compare/4.4.0...4.5.0) (2025-02-10)


### ⚠ BREAKING CHANGES

* remove vc_count ([#844](https://github.com/ethpandaops/ethereum-package/issues/844))

### Features

* add custom image for egg ([#859](https://github.com/ethpandaops/ethereum-package/issues/859)) ([e60afbe](https://github.com/ethpandaops/ethereum-package/commit/e60afbeb7cefd1ee853c9bdca0041a6d4040fe78))
* add gossip limit as a configuratable flag ([#856](https://github.com/ethpandaops/ethereum-package/issues/856)) ([56a3197](https://github.com/ethpandaops/ethereum-package/commit/56a3197f5385de7d8c1e768fe4b537603c86abcf))
* add max,target blobs for future forks ([#851](https://github.com/ethpandaops/ethereum-package/issues/851)) ([1c33375](https://github.com/ethpandaops/ethereum-package/commit/1c333758f26ffc17dcfae92db68eda0bd8d2951b))
* add op package per pr check ([#854](https://github.com/ethpandaops/ethereum-package/issues/854)) ([0e4e7aa](https://github.com/ethpandaops/ethereum-package/commit/0e4e7aa8da7dc7f4e2270efdc1acded484a31322))
* add spamoor ([#850](https://github.com/ethpandaops/ethereum-package/issues/850)) ([a01d772](https://github.com/ethpandaops/ethereum-package/commit/a01d77274ebf7790a610932e225b8415575df492))
* add support for pull through cache ([#833](https://github.com/ethpandaops/ethereum-package/issues/833)) ([0b2a2ae](https://github.com/ethpandaops/ethereum-package/commit/0b2a2ae081652f5c7e7ef1da13744a40c7279f37))
* add vero `vc_type` ([#827](https://github.com/ethpandaops/ethereum-package/issues/827)) ([c2af143](https://github.com/ethpandaops/ethereum-package/commit/c2af14377ccb118e1ba6b06f1ee8335113ff6e16))
* Add-blockscout_params ([#838](https://github.com/ethpandaops/ethereum-package/issues/838)) ([777ec06](https://github.com/ethpandaops/ethereum-package/commit/777ec065efe9714acb2f6762ec21c6f5c1961f4a))
* Adding support for EIP-7732 and EIP-7805 ([#880](https://github.com/ethpandaops/ethereum-package/issues/880)) ([6b7a409](https://github.com/ethpandaops/ethereum-package/commit/6b7a409f2d78d50dfb66d8de7aededa080ab6230))
* Adding support for new system contracts + updating devnet config ([#862](https://github.com/ethpandaops/ethereum-package/issues/862)) ([8ed275a](https://github.com/ethpandaops/ethereum-package/commit/8ed275a4ec4524b1df4b7cfe38a5f2374711760d))
* Replacing mock builder ([#864](https://github.com/ethpandaops/ethereum-package/issues/864)) ([d3a0024](https://github.com/ethpandaops/ethereum-package/commit/d3a002494822c23bd7a0b677b738107c262ad0ff))
* support older forks ([#846](https://github.com/ethpandaops/ethereum-package/issues/846)) ([d7e31e0](https://github.com/ethpandaops/ethereum-package/commit/d7e31e01ca6fff88c64ee3846d517e2f32d7bbcf))
* update blockscout with new frontend ([#843](https://github.com/ethpandaops/ethereum-package/issues/843)) ([4f69962](https://github.com/ethpandaops/ethereum-package/commit/4f69962f440fc85c61e9ec2b812463d9ab965f7a))
* Update devnet-5 example ([#863](https://github.com/ethpandaops/ethereum-package/issues/863)) ([04e13f3](https://github.com/ethpandaops/ethereum-package/commit/04e13f3bca8f14207b4b8f6014790c7b1b4affe7))
* Update egg to support new system contract addresses ([#883](https://github.com/ethpandaops/ethereum-package/issues/883)) ([9f7ad78](https://github.com/ethpandaops/ethereum-package/commit/9f7ad78bdea16f2da63e0085272b78e55ccdc823))
* use `eip7732-support` image for dora when eip7732 is scheduled for activation (ePBS) ([#881](https://github.com/ethpandaops/ethereum-package/issues/881)) ([dbe7912](https://github.com/ethpandaops/ethereum-package/commit/dbe7912b932261ca3946562c263595e597bc6f8d))


### Bug Fixes

* add fulu overrides automatically for assertoor and dora if fulu is active ([#858](https://github.com/ethpandaops/ethereum-package/issues/858)) ([d6bec16](https://github.com/ethpandaops/ethereum-package/commit/d6bec165b9bbb3e2a63cbafb063fd52197b23af9))
* add txpool to reth api ([#841](https://github.com/ethpandaops/ethereum-package/issues/841)) ([35ec958](https://github.com/ethpandaops/ethereum-package/commit/35ec9585a728d373f3e9ec8c84e9abcddfed82a1))
* bump assertoor memory limit to 8G ([#874](https://github.com/ethpandaops/ethereum-package/issues/874)) ([8ff3b11](https://github.com/ethpandaops/ethereum-package/commit/8ff3b1138d910cdbff1bc60764e9ddb596c3a551))
* comment out optimism check from per-PR workflow ([#878](https://github.com/ethpandaops/ethereum-package/issues/878)) ([02323a3](https://github.com/ethpandaops/ethereum-package/commit/02323a3bf34089117ee303f114ac08267c34f9d0))
* dora override ([#857](https://github.com/ethpandaops/ethereum-package/issues/857)) ([50ec581](https://github.com/ethpandaops/ethereum-package/commit/50ec58115674dced97f9159123ba7e2b044518d4))
* Enable txpool on geth,besu and nethermind ([#868](https://github.com/ethpandaops/ethereum-package/issues/868)) ([f9d0b50](https://github.com/ethpandaops/ethereum-package/commit/f9d0b501a7a6543149d2ccd9b063f5beb34d30c9))
* Fixes minimal runs with deneb state ([#871](https://github.com/ethpandaops/ethereum-package/issues/871)) ([2ca35e8](https://github.com/ethpandaops/ethereum-package/commit/2ca35e8eb74d8a78e5b6fed110d69b0e68308c76))
* mev-builder custom image ([#847](https://github.com/ethpandaops/ethereum-package/issues/847)) ([bc89ad3](https://github.com/ethpandaops/ethereum-package/commit/bc89ad316b9b7b137382269138fc37e241a645d1))
* Private key for account 20 ([#870](https://github.com/ethpandaops/ethereum-package/issues/870)) ([9782552](https://github.com/ethpandaops/ethereum-package/commit/9782552e6828019f07f177c524988c24b4da1e1f))
* **prysm:** run p2p-udp on different port as it might conflict with the new quic port ([#845](https://github.com/ethpandaops/ethereum-package/issues/845)) ([3bb88e0](https://github.com/ethpandaops/ethereum-package/commit/3bb88e04d2fa9f27418c013d656b02a714c20f4d))
* rbuilder upstream repo with reth-rbuilder binary ([#828](https://github.com/ethpandaops/ethereum-package/issues/828)) ([55df658](https://github.com/ethpandaops/ethereum-package/commit/55df658f7757d29419aca7510830cf1d5c70d492))
* remove vc_count ([#844](https://github.com/ethpandaops/ethereum-package/issues/844)) ([b61a128](https://github.com/ethpandaops/ethereum-package/commit/b61a128bf1d96e8dd11f028925dee9b70e37ac6f))
* replace goomy with spamoor ([#860](https://github.com/ethpandaops/ethereum-package/issues/860)) ([28f7b7d](https://github.com/ethpandaops/ethereum-package/commit/28f7b7d4849ceeab56ac648949b74a1aa0e28dee))
* revert egg version ([#852](https://github.com/ethpandaops/ethereum-package/issues/852)) ([a182f30](https://github.com/ethpandaops/ethereum-package/commit/a182f3039b91c15cde5b0d0967666d336a9629ac))
* sanity check for count ([#835](https://github.com/ethpandaops/ethereum-package/issues/835)) ([2633d15](https://github.com/ethpandaops/ethereum-package/commit/2633d15b9739520bb979887965a04382869d16d8))
* Update default mev-images source ([#884](https://github.com/ethpandaops/ethereum-package/issues/884)) ([176b08a](https://github.com/ethpandaops/ethereum-package/commit/176b08a7062a2fe7bd71a141b1e796f040a38dc4))
* Update Erigon docker image repo naming ([#834](https://github.com/ethpandaops/ethereum-package/issues/834)) ([ceb1444](https://github.com/ethpandaops/ethereum-package/commit/ceb14448b4e3b48b4cbf893bf5d95572bfd8949c))
* Update ethereum-genesis-generator to fix eip7623 timestamp missing for Nethermind ([#875](https://github.com/ethpandaops/ethereum-package/issues/875)) ([1c1d698](https://github.com/ethpandaops/ethereum-package/commit/1c1d6988f9c1028ec9cdb22655b556977db901b1))
* update kt config ([#876](https://github.com/ethpandaops/ethereum-package/issues/876)) ([1704194](https://github.com/ethpandaops/ethereum-package/commit/1704194121ba25e1e845f210f248b9b5993d24c2))
* Update rbuilder flag and add mainnet split example ([#885](https://github.com/ethpandaops/ethereum-package/issues/885)) ([4bbd070](https://github.com/ethpandaops/ethereum-package/commit/4bbd0705d80770df230129d43920784b123b6bbd))
* Update test files ([#893](https://github.com/ethpandaops/ethereum-package/issues/893)) ([4fcca66](https://github.com/ethpandaops/ethereum-package/commit/4fcca6677bd87b2cb712989bfbcbd1e7bb7152f4))
* use default image for assertoor with electra enabled ([#855](https://github.com/ethpandaops/ethereum-package/issues/855)) ([3b51e5e](https://github.com/ethpandaops/ethereum-package/commit/3b51e5e280e9fc1c7dba890c4e8e795a75e525b2))
* use writable path for assertoor db ([#877](https://github.com/ethpandaops/ethereum-package/issues/877)) ([a913455](https://github.com/ethpandaops/ethereum-package/commit/a913455bb3cdf9abb5dea8e27def320b5bf3ae75))


### Miscellaneous Chores

* release 4.5.0 ([#896](https://github.com/ethpandaops/ethereum-package/issues/896)) ([0dc54e0](https://github.com/ethpandaops/ethereum-package/commit/0dc54e0018356e88a478bbaf4c6782cdcb0c9b6f))

## [4.4.0](https://github.com/ethpandaops/ethereum-package/compare/4.3.0...4.4.0) (2024-11-01)


### Features

* add checkpoint sync capabilities to nimbus ([#804](https://github.com/ethpandaops/ethereum-package/issues/804)) ([853417e](https://github.com/ethpandaops/ethereum-package/commit/853417efb5a79056bb6e8a1f37739747131066d5))
* add commit-boost support ([#779](https://github.com/ethpandaops/ethereum-package/issues/779)) ([ebbbe83](https://github.com/ethpandaops/ethereum-package/commit/ebbbe8365730a79b98e6bf96b72a8f75a9744f1b))
* add docker authentication ([#816](https://github.com/ethpandaops/ethereum-package/issues/816)) ([807f6aa](https://github.com/ethpandaops/ethereum-package/commit/807f6aa8a992d1868d2d0aed7f5857df3c5857e5))
* add peerdas metrics dashboard ([#790](https://github.com/ethpandaops/ethereum-package/issues/790)) ([12b787d](https://github.com/ethpandaops/ethereum-package/commit/12b787dd7f1b7130dde369c1eb643dedde4ca03c))
* add rbuilder remove old geth builder - flashbots ([#786](https://github.com/ethpandaops/ethereum-package/issues/786)) ([de95c61](https://github.com/ethpandaops/ethereum-package/commit/de95c61cf5d2243a3838d2104b5a4591a57e988f))
* add resource configuration for prometheus and grafana ([#773](https://github.com/ethpandaops/ethereum-package/issues/773)) ([d296c26](https://github.com/ethpandaops/ethereum-package/commit/d296c265ab7e4e67c9c6774c665fe3b3184f9f13))
* add supernode label to every container ([#788](https://github.com/ethpandaops/ethereum-package/issues/788)) ([43edfd5](https://github.com/ethpandaops/ethereum-package/commit/43edfd5a5bb597636dcbaa1d7f299868d27cdab2))
* add support for fulu/osaka fusaka ([#798](https://github.com/ethpandaops/ethereum-package/issues/798)) ([0a9e445](https://github.com/ethpandaops/ethereum-package/commit/0a9e445b3cf8a8557bf03b454b0967bf51f6734f))
* add support for remote signers - `use_remote_signer` ([#791](https://github.com/ethpandaops/ethereum-package/issues/791)) ([9f1b6e9](https://github.com/ethpandaops/ethereum-package/commit/9f1b6e953fec3fd172543ed8fad510523382c576))
* enable one parameter supernode, refactor el,cl,vc ([#778](https://github.com/ethpandaops/ethereum-package/issues/778)) ([8513c06](https://github.com/ethpandaops/ethereum-package/commit/8513c06020812e33a61ecaee073a165d85ed7ce0))


### Bug Fixes

* add database config to assertoor ([#783](https://github.com/ethpandaops/ethereum-package/issues/783)) ([56532cf](https://github.com/ethpandaops/ethereum-package/commit/56532cf50fc56e5958b5839905f7f1b1081ad169))
* add nimbus-eth1 net-key ([#811](https://github.com/ethpandaops/ethereum-package/issues/811)) ([c91bbbb](https://github.com/ethpandaops/ethereum-package/commit/c91bbbbe20d14712e3731e37bea46a9cf4c88da6))
* delete unnecessary port assignment for prysm ([#810](https://github.com/ethpandaops/ethereum-package/issues/810)) ([47204c3](https://github.com/ethpandaops/ethereum-package/commit/47204c350117b2a7b1cfa4c38d3308bd5e90828e))
* docker login to separate action yaml ([#819](https://github.com/ethpandaops/ethereum-package/issues/819)) ([2494022](https://github.com/ethpandaops/ethereum-package/commit/2494022122d3590f5dc1ec701a9fb7e081d5c0e6))
* get volume size recommendations when in shadowfork mode ([#820](https://github.com/ethpandaops/ethereum-package/issues/820)) ([b1f27c6](https://github.com/ethpandaops/ethereum-package/commit/b1f27c649e61f29700baf9f204b89054e507c44a))
* mixed up labels ([#799](https://github.com/ethpandaops/ethereum-package/issues/799)) ([e2c1528](https://github.com/ethpandaops/ethereum-package/commit/e2c1528834809db1f68f79133edc6016132d2f2f))
* only set supernode if its true ([#796](https://github.com/ethpandaops/ethereum-package/issues/796)) ([2110a60](https://github.com/ethpandaops/ethereum-package/commit/2110a608205e06e1986c58efeeeefefd37df51eb))
* prefund container suffixes for k8s ([#818](https://github.com/ethpandaops/ethereum-package/issues/818)) ([968cfbd](https://github.com/ethpandaops/ethereum-package/commit/968cfbdb702e5e277bec8704e5185055dedabe74))
* remove deprecated http-allow-sync-stalled from LH ([#805](https://github.com/ethpandaops/ethereum-package/issues/805)) ([1825dbf](https://github.com/ethpandaops/ethereum-package/commit/1825dbfc6d58a6326f11fa5a9531b6867b0d5b77))
* Remove not necessary "/api" (and bump verifier version) ([#792](https://github.com/ethpandaops/ethereum-package/issues/792)) ([befde97](https://github.com/ethpandaops/ethereum-package/commit/befde97ce72f133bd8b491fe2e4a40870af52f12))
* set default for label-maker ([#797](https://github.com/ethpandaops/ethereum-package/issues/797)) ([5b2d234](https://github.com/ethpandaops/ethereum-package/commit/5b2d234217de686ac002b077d3047708d0a0a132))
* swap http/grpc server ports and replace flags ([#802](https://github.com/ethpandaops/ethereum-package/issues/802)) ([8c6df26](https://github.com/ethpandaops/ethereum-package/commit/8c6df267a4d517e670425e0de4c18cff122500af))
* update built in assertoor tests ([#782](https://github.com/ethpandaops/ethereum-package/issues/782)) ([d24fb2a](https://github.com/ethpandaops/ethereum-package/commit/d24fb2a2ec529bb17b386d3c99bcdf9dd2a94118))
* update nethermind config option ([#824](https://github.com/ethpandaops/ethereum-package/issues/824)) ([08ce034](https://github.com/ethpandaops/ethereum-package/commit/08ce034e06ecdcc2885e3f5ecf721cf6df6caddd))

## [4.3.0](https://github.com/ethpandaops/ethereum-package/compare/4.2.0...4.3.0) (2024-09-23)


### Features

* add prefunded accounts ([#752](https://github.com/ethpandaops/ethereum-package/issues/752)) ([1be7efa](https://github.com/ethpandaops/ethereum-package/commit/1be7efa028d5b72837a9c4b5de5b70e102e2f166))
* dora - show more infos about all peers on client pages ([#760](https://github.com/ethpandaops/ethereum-package/issues/760)) ([c77d95f](https://github.com/ethpandaops/ethereum-package/commit/c77d95fe21deb9dd09481998d2e39f46b148f146))


### Bug Fixes

* `metrics-host-allowlist` for Teku ([#765](https://github.com/ethpandaops/ethereum-package/issues/765)) ([ad75fcc](https://github.com/ethpandaops/ethereum-package/commit/ad75fcce4aa3dcd0064a6d538462587e430478a0))
* built in validator lifecycle test for assertoor ([#763](https://github.com/ethpandaops/ethereum-package/issues/763)) ([6f868cc](https://github.com/ethpandaops/ethereum-package/commit/6f868ccf26abf341a83bc96569dea0fa890f90f7))
* explicitly set client contexts ([#755](https://github.com/ethpandaops/ethereum-package/issues/755)) ([94dc531](https://github.com/ethpandaops/ethereum-package/commit/94dc531e332f4fd4466a9473dfec328a3a681b01))
* no default resource limits ([#768](https://github.com/ethpandaops/ethereum-package/issues/768)) ([4c4831b](https://github.com/ethpandaops/ethereum-package/commit/4c4831bc509ae580f68b85c2c5b469d454586def))
* prysm gRPC removal - use http server instead for keymanager ([#761](https://github.com/ethpandaops/ethereum-package/issues/761)) ([ba91174](https://github.com/ethpandaops/ethereum-package/commit/ba911745b5e6cdc0216c5394394605d274ce70ef))
* remove epoch checker for goomy ([#754](https://github.com/ethpandaops/ethereum-package/issues/754)) ([f124bbf](https://github.com/ethpandaops/ethereum-package/commit/f124bbf96847ec08d3aa7e8b65df336ef6722475))
* remove exp RPC API namespace flag from nimbus-eth1 configuration ([#767](https://github.com/ethpandaops/ethereum-package/issues/767)) ([8fec454](https://github.com/ethpandaops/ethereum-package/commit/8fec454f7af0733277336fc3f06376442b7b4fa4))
* reth-builder volume claim ([#771](https://github.com/ethpandaops/ethereum-package/issues/771)) ([4570328](https://github.com/ethpandaops/ethereum-package/commit/4570328e47b6ef5a59a47635f6c58acd3f8ad2d1))
* update dora config for latest release & remove custom images ([#748](https://github.com/ethpandaops/ethereum-package/issues/748)) ([a433c50](https://github.com/ethpandaops/ethereum-package/commit/a433c50e1c61dd20a6c28dcebfde704c136ddb69))

## [4.2.0](https://github.com/ethpandaops/ethereum-package/compare/4.1.0...4.2.0) (2024-08-19)


### Features

* add customizable configuraiton for prometheus retention ([#745](https://github.com/ethpandaops/ethereum-package/issues/745)) ([6c02dfe](https://github.com/ethpandaops/ethereum-package/commit/6c02dfee67e239650f9f21786ff5c976770a733b))
* add genesis_gaslimit param configuration ([#726](https://github.com/ethpandaops/ethereum-package/issues/726)) ([a4ba9a6](https://github.com/ethpandaops/ethereum-package/commit/a4ba9a65852411db43dbcf3c727c9ad52040e482))
* Add Lighthouse PeerDAS Dashboard ([#736](https://github.com/ethpandaops/ethereum-package/issues/736)) ([ffbfde2](https://github.com/ethpandaops/ethereum-package/commit/ffbfde23f2e58350145ab48d0dbce5e245385ab5))
* add peerdas-electra-support ([#740](https://github.com/ethpandaops/ethereum-package/issues/740)) ([663e7e6](https://github.com/ethpandaops/ethereum-package/commit/663e7e654b81fb623a1fa486ccf7092ba2e39d80))
* add profiling for prysm ([#722](https://github.com/ethpandaops/ethereum-package/issues/722)) ([7dc6660](https://github.com/ethpandaops/ethereum-package/commit/7dc66606f5d5f86d4ef394bc70fe2e936cd55c75))
* add sanity check ([#710](https://github.com/ethpandaops/ethereum-package/issues/710)) ([b824cac](https://github.com/ethpandaops/ethereum-package/commit/b824cac89ca2c78604c82544888a89c0c1d3aa80))
* enable dora pprof ([#743](https://github.com/ethpandaops/ethereum-package/issues/743)) ([2b7be9a](https://github.com/ethpandaops/ethereum-package/commit/2b7be9a27c516b17322e8028c23813620bfc6afe))
* generate keys if not default key is used ([#707](https://github.com/ethpandaops/ethereum-package/issues/707)) ([2d1cab5](https://github.com/ethpandaops/ethereum-package/commit/2d1cab5317dac62524601f392a4a62a7c3a88b80))
* lodestar persists invalid ssz objects by default ([#730](https://github.com/ethpandaops/ethereum-package/issues/730)) ([5a45991](https://github.com/ethpandaops/ethereum-package/commit/5a459914327e33c426e82df62af6336970857f08))
* update egg config parameters ([#737](https://github.com/ethpandaops/ethereum-package/issues/737)) ([78c2bc7](https://github.com/ethpandaops/ethereum-package/commit/78c2bc77caaf814cf360499b6b61337ea7eb7099))


### Bug Fixes

* add debug ns to nethermind ([#732](https://github.com/ethpandaops/ethereum-package/issues/732)) ([372bb52](https://github.com/ethpandaops/ethereum-package/commit/372bb521525948bc0a97a1999e6d233cb2792626))
* allow vc properties in participants_matrix.cl ([#715](https://github.com/ethpandaops/ethereum-package/issues/715)) ([c8b9b19](https://github.com/ethpandaops/ethereum-package/commit/c8b9b19c045f6075fa02f9abf8f761a5a8056ba3))
* besu devnet schedule ([#734](https://github.com/ethpandaops/ethereum-package/issues/734)) ([28b67cd](https://github.com/ethpandaops/ethereum-package/commit/28b67cd17a6f0abf80c46821465872d4006f9277))
* blobscan redis dependency ([#712](https://github.com/ethpandaops/ethereum-package/issues/712)) ([0ed1c9c](https://github.com/ethpandaops/ethereum-package/commit/0ed1c9c8e974f7c6900f68679602d95cfcb17831))
* change churn limit default for pectra tests ([#747](https://github.com/ethpandaops/ethereum-package/issues/747)) ([8109054](https://github.com/ethpandaops/ethereum-package/commit/8109054e20121092ad5ad3eebbf1a16a20677887))
* correctly apply extra params if builder is enabled ([#725](https://github.com/ethpandaops/ethereum-package/issues/725)) ([a94caf0](https://github.com/ethpandaops/ethereum-package/commit/a94caf02c327347a7e6b4ed2f99badb787a25dc7))
* disable all assertoor tests by default ([#738](https://github.com/ethpandaops/ethereum-package/issues/738)) ([2961f96](https://github.com/ethpandaops/ethereum-package/commit/2961f969402b3f3dbf6f584e74644cf32cfd7902))
* lodestar vc faster startup ([#721](https://github.com/ethpandaops/ethereum-package/issues/721)) ([225e3d8](https://github.com/ethpandaops/ethereum-package/commit/225e3d80fe0389f6a22c88a56075ad86a1ae2b00))
* readme eof ([#739](https://github.com/ethpandaops/ethereum-package/issues/739)) ([7f94f6e](https://github.com/ethpandaops/ethereum-package/commit/7f94f6e2fefe21e11edb7cf5dc827e3f486afe98))
* remove custom peerdas images for dora & assertoor ([#741](https://github.com/ethpandaops/ethereum-package/issues/741)) ([a19398d](https://github.com/ethpandaops/ethereum-package/commit/a19398decc892ba6749284495891184de987cab0))
* remove subscribe all subnet nimbus ([#719](https://github.com/ethpandaops/ethereum-package/issues/719)) ([ef92f8f](https://github.com/ethpandaops/ethereum-package/commit/ef92f8f45e4e32d0e2b9711ca9671ff5d1bcab00))
* remove subscribe-all-subnets from default prysm config ([#717](https://github.com/ethpandaops/ethereum-package/issues/717)) ([6348c0b](https://github.com/ethpandaops/ethereum-package/commit/6348c0b4c0b8a03a27cdf8a5fa8615b0ab323d7b))
* remove subscribe-all-subnets lighthouse/lodestar/teku ([#720](https://github.com/ethpandaops/ethereum-package/issues/720)) ([cdb20e1](https://github.com/ethpandaops/ethereum-package/commit/cdb20e18110e3c85817adc7e970d4b4cbd445feb))
* update snapshots URL ([#731](https://github.com/ethpandaops/ethereum-package/issues/731)) ([f9269ad](https://github.com/ethpandaops/ethereum-package/commit/f9269ad7e7bc04fae486b340f8d189d3b965f4b2))

## [4.1.0](https://github.com/ethpandaops/ethereum-package/compare/4.0.0...4.1.0) (2024-07-03)


### Features

* add back k8s tests ([#699](https://github.com/ethpandaops/ethereum-package/issues/699)) ([d621cf0](https://github.com/ethpandaops/ethereum-package/commit/d621cf0a4936c40778e492bb307fef990477aa52))
* add checkpoint_enabled and checkpoint_url flags ([#689](https://github.com/ethpandaops/ethereum-package/issues/689)) ([b8cd2b4](https://github.com/ethpandaops/ethereum-package/commit/b8cd2b4574d4f8defa343532a7725b9ae3be692b))
* add eof support ([#682](https://github.com/ethpandaops/ethereum-package/issues/682)) ([cb203ff](https://github.com/ethpandaops/ethereum-package/commit/cb203ff1e9929529570f4dc59b7b3cb6022ff670))
* add mev relays to dora config ([#679](https://github.com/ethpandaops/ethereum-package/issues/679)) ([293001a](https://github.com/ethpandaops/ethereum-package/commit/293001a1e116e7e727d19ed42ba3e7113171f561))
* Add static ports ([#677](https://github.com/ethpandaops/ethereum-package/issues/677)) ([4f054d0](https://github.com/ethpandaops/ethereum-package/commit/4f054d0566c1a8a8f90a5436d022cd5fe36d7c3c))
* add ws_url to el_context ([#696](https://github.com/ethpandaops/ethereum-package/issues/696)) ([26fea61](https://github.com/ethpandaops/ethereum-package/commit/26fea619789253f73c1f53eb9478347bb908387a))
* introduce devnet_repo override ([#686](https://github.com/ethpandaops/ethereum-package/issues/686)) ([9952361](https://github.com/ethpandaops/ethereum-package/commit/99523611622dbbefc2a523e6b011e63487b1cbf7))
* use CDN URL for data snapshots used for shadow forks ([#676](https://github.com/ethpandaops/ethereum-package/issues/676)) ([91dc68c](https://github.com/ethpandaops/ethereum-package/commit/91dc68c9e709729e2a8c2fa59f48d8901eb49bb5))


### Bug Fixes

* besu bonsai log disable ([#673](https://github.com/ethpandaops/ethereum-package/issues/673)) ([955f19f](https://github.com/ethpandaops/ethereum-package/commit/955f19f8a79eda7d3d645c0c3d3a822705f10a7d))
* blockscout bad return ([#685](https://github.com/ethpandaops/ethereum-package/issues/685)) ([e80870b](https://github.com/ethpandaops/ethereum-package/commit/e80870b3f955d5e350e3b14ab8ea2e49fa8d2f48))
* bump peerdas images ([#678](https://github.com/ethpandaops/ethereum-package/issues/678)) ([1acc201](https://github.com/ethpandaops/ethereum-package/commit/1acc201cbb7314c593963e042796e4d93ceaf960))
* DNS-1035 label ([#697](https://github.com/ethpandaops/ethereum-package/issues/697)) ([440fb31](https://github.com/ethpandaops/ethereum-package/commit/440fb319084fc8ea16f961410162d35290deeb22))
* ephemery genesis loader ([#700](https://github.com/ethpandaops/ethereum-package/issues/700)) ([0235063](https://github.com/ethpandaops/ethereum-package/commit/023506362d489124d88f1d2b15408f08fbdd173e))
* ignore bootnodes if in shadowfork ([#660](https://github.com/ethpandaops/ethereum-package/issues/660)) ([cda5dda](https://github.com/ethpandaops/ethereum-package/commit/cda5ddac51e4ce2228f2a4da1d242b2fcb7eeccd))
* minimal eof ([#687](https://github.com/ethpandaops/ethereum-package/issues/687)) ([26a7618](https://github.com/ethpandaops/ethereum-package/commit/26a76187cd65114640764cc4eefc4a6c7517b57a))
* release please manifest ([#675](https://github.com/ethpandaops/ethereum-package/issues/675)) ([75ed7e1](https://github.com/ethpandaops/ethereum-package/commit/75ed7e18309d1d3884e222abcd097366649288cc))
* remove docker login ([#701](https://github.com/ethpandaops/ethereum-package/issues/701)) ([ede5962](https://github.com/ethpandaops/ethereum-package/commit/ede596266d2a0fe8af0e1bf21c6a09e4685b67a5))
* return empty services ([#688](https://github.com/ethpandaops/ethereum-package/issues/688)) ([6571a70](https://github.com/ethpandaops/ethereum-package/commit/6571a70bccb310957d531daea6685f641469b546))
* return the correct network_id ([#705](https://github.com/ethpandaops/ethereum-package/issues/705)) ([7c592f6](https://github.com/ethpandaops/ethereum-package/commit/7c592f6741718c20bdce4bd3bd6035b3ce37f38d))

## [4.0.0](https://github.com/ethpandaops/ethereum-package/compare/3.1.0...v4.0.0) (2024-06-13)


### ⚠ BREAKING CHANGES

* migrate from kurtosis-tech to ethpandaops repository ([#663](https://github.com/ethpandaops/ethereum-package/issues/663))

### Features

* add names to run-sh ([#666](https://github.com/ethpandaops/ethereum-package/issues/666)) ([6b447b7](https://github.com/ethpandaops/ethereum-package/commit/6b447b7254ce1e9d7a2383eb1a0b9435bbabf237))
* Adding arbitrary contract definition ([#646](https://github.com/ethpandaops/ethereum-package/issues/646)) ([cb58b65](https://github.com/ethpandaops/ethereum-package/commit/cb58b65911828b333c2aabf9052e30d79a8a55aa))
* migrate from kurtosis-tech to ethpandaops repository ([#663](https://github.com/ethpandaops/ethereum-package/issues/663)) ([d980fee](https://github.com/ethpandaops/ethereum-package/commit/d980feedac0fbe6a18a6b699f62d3f3275657b16))
* update Lodestar BN &lt;&gt; VC compatibility ([#664](https://github.com/ethpandaops/ethereum-package/issues/664)) ([7f365da](https://github.com/ethpandaops/ethereum-package/commit/7f365da6607bd863b12170ed475b77f4fafcc146))


### Bug Fixes

* permissions on autorelease ([#671](https://github.com/ethpandaops/ethereum-package/issues/671)) ([fcaa2c2](https://github.com/ethpandaops/ethereum-package/commit/fcaa2c23301c0f7012301fe019a75b0fa369961b))
* update release please ([#670](https://github.com/ethpandaops/ethereum-package/issues/670)) ([fa53672](https://github.com/ethpandaops/ethereum-package/commit/fa536729886fa911ce4778b6d4097e2fb69a6c06))

## [3.1.0](https://github.com/kurtosis-tech/ethereum-package/compare/3.0.0...3.1.0) (2024-06-07)


### Features

* add http url to el context ([#656](https://github.com/kurtosis-tech/ethereum-package/issues/656)) ([4e69a4c](https://github.com/kurtosis-tech/ethereum-package/commit/4e69a4c057c600d479879691837ba2ef7f683a34))
* add prefunded accounts to output ([#657](https://github.com/kurtosis-tech/ethereum-package/issues/657)) ([bc06e2a](https://github.com/kurtosis-tech/ethereum-package/commit/bc06e2a4e93add97c75c5b520b87a6b9863a9faf))
* add tracoor ([#651](https://github.com/kurtosis-tech/ethereum-package/issues/651)) ([b100cb6](https://github.com/kurtosis-tech/ethereum-package/commit/b100cb6fac5646783c0ee580ec3425fd74e0e4a1))
* add vc_count to increase the number of validators per participant ([#633](https://github.com/kurtosis-tech/ethereum-package/issues/633)) ([4272ff3](https://github.com/kurtosis-tech/ethereum-package/commit/4272ff3e27be1c85fd5e8e606b956ea31c0ae3b9))
* allow setting custom dora image & env variables ([#623](https://github.com/kurtosis-tech/ethereum-package/issues/623)) ([08a65c3](https://github.com/kurtosis-tech/ethereum-package/commit/08a65c33b645a1dc656feb0671513d9bf1b84c66))
* **apache:** Serve all config files ([#606](https://github.com/kurtosis-tech/ethereum-package/issues/606)) ([3f1f5e1](https://github.com/kurtosis-tech/ethereum-package/commit/3f1f5e118e5d125ec108a40f0edc0b0617a60b5f))
* **config:** add peerdas vars ([#619](https://github.com/kurtosis-tech/ethereum-package/issues/619)) ([22f1498](https://github.com/kurtosis-tech/ethereum-package/commit/22f1498a3d344150827a2393df3e3ff0c693a6ff))
* expose network-params ([#659](https://github.com/kurtosis-tech/ethereum-package/issues/659)) ([b0820dd](https://github.com/kurtosis-tech/ethereum-package/commit/b0820ddae77e7d45d090c00e47aa3e8d3832e194))
* forky ([#625](https://github.com/kurtosis-tech/ethereum-package/issues/625)) ([ded68bd](https://github.com/kurtosis-tech/ethereum-package/commit/ded68bdc73dbb0e166ef8e02dc3ab577066d0214))
* Support participants_matrix ([#620](https://github.com/kurtosis-tech/ethereum-package/issues/620)) ([3a57467](https://github.com/kurtosis-tech/ethereum-package/commit/3a57467519ca20a519985ce2e2257c3694dc4fde))
* use `peer-das` image for dora when eip7594 is active ([#593](https://github.com/kurtosis-tech/ethereum-package/issues/593)) ([1b4bd3d](https://github.com/kurtosis-tech/ethereum-package/commit/1b4bd3d1478839474a26d163312e99a810399b1b))


### Bug Fixes

* add additional prefund addresses ([#655](https://github.com/kurtosis-tech/ethereum-package/issues/655)) ([6d2cdb6](https://github.com/kurtosis-tech/ethereum-package/commit/6d2cdb6982da76f95bdde2b7930fbea9117016b8))
* add cl log level to builders ([#638](https://github.com/kurtosis-tech/ethereum-package/issues/638)) ([ad46dbd](https://github.com/kurtosis-tech/ethereum-package/commit/ad46dbdf8babbc5bf6a5aae9ee9ee4be54491a92))
* Add EIP-7002 & EIP-2935 bytecode to ethereum-genesis-generator ([#597](https://github.com/kurtosis-tech/ethereum-package/issues/597)) ([3d316ef](https://github.com/kurtosis-tech/ethereum-package/commit/3d316ef631b038355b88d23024d19086699bd452))
* add http to teku endpoint ([#622](https://github.com/kurtosis-tech/ethereum-package/issues/622)) ([085b6e1](https://github.com/kurtosis-tech/ethereum-package/commit/085b6e126fc0ccf98431d74f56e9965fa8b1f665))
* add peer_das_epoch to egg ([#603](https://github.com/kurtosis-tech/ethereum-package/issues/603)) ([91694df](https://github.com/kurtosis-tech/ethereum-package/commit/91694dfc1e8b64ac76b7dfda006f19db358941fa))
* add sha256 as an image label (if present) ([#637](https://github.com/kurtosis-tech/ethereum-package/issues/637)) ([3dcf888](https://github.com/kurtosis-tech/ethereum-package/commit/3dcf888326266aaba38f8253e47b3dd85a457cd0))
* add static port config for apache ([#608](https://github.com/kurtosis-tech/ethereum-package/issues/608)) ([b96e502](https://github.com/kurtosis-tech/ethereum-package/commit/b96e502145010694579d7b938a8112e0311ecb8b))
* **apache:** only set static port if wanted ([#610](https://github.com/kurtosis-tech/ethereum-package/issues/610)) ([2c6b7b1](https://github.com/kurtosis-tech/ethereum-package/commit/2c6b7b1af7b7513adf46394b9138f726a57f9e38))
* blockscout fix for json variant ([#662](https://github.com/kurtosis-tech/ethereum-package/issues/662)) ([e79c510](https://github.com/kurtosis-tech/ethereum-package/commit/e79c5101f44ca3a5bd70f16b2cf24976db8e555e))
* churn adjustments ([#614](https://github.com/kurtosis-tech/ethereum-package/issues/614)) ([12ca872](https://github.com/kurtosis-tech/ethereum-package/commit/12ca8721b42e000bcf8b6624a0b3c7b6cbde57bd))
* default config ([#632](https://github.com/kurtosis-tech/ethereum-package/issues/632)) ([14be117](https://github.com/kurtosis-tech/ethereum-package/commit/14be117598bca0d733cb8b1dc439abdde5be8ae1))
* drop everythign after [@sha](https://github.com/sha) from image labels ([#636](https://github.com/kurtosis-tech/ethereum-package/issues/636)) ([5d35463](https://github.com/kurtosis-tech/ethereum-package/commit/5d35463853b6bb7e58112b5df246660c8d1bd02d))
* erigon v3 - new default image ([#629](https://github.com/kurtosis-tech/ethereum-package/issues/629)) ([72cf150](https://github.com/kurtosis-tech/ethereum-package/commit/72cf150c580addc00c1ca0693b568d62b06118a1))
* genesis generator bump ([#611](https://github.com/kurtosis-tech/ethereum-package/issues/611)) ([5460f6f](https://github.com/kurtosis-tech/ethereum-package/commit/5460f6fc26972fe576ef89d521d5251470e65b5e))
* nightly tests ([#595](https://github.com/kurtosis-tech/ethereum-package/issues/595)) ([76c31e9](https://github.com/kurtosis-tech/ethereum-package/commit/76c31e91d830490c956321cc2f6b3301a8d6fd27))
* pectra example ([#605](https://github.com/kurtosis-tech/ethereum-package/issues/605)) ([67e3da0](https://github.com/kurtosis-tech/ethereum-package/commit/67e3da0e0cf4314353d5cea806186530df54a1cd))
* prysm vc key manager ports ([#639](https://github.com/kurtosis-tech/ethereum-package/issues/639)) ([81c1ee7](https://github.com/kurtosis-tech/ethereum-package/commit/81c1ee70a56f910ecd6b710dd0fe3721d81b6dcf))
* re-add images to labels ([#634](https://github.com/kurtosis-tech/ethereum-package/issues/634)) ([71f6e28](https://github.com/kurtosis-tech/ethereum-package/commit/71f6e28e682e47a550ffef037c7b26ce836d96df))
* README has invalid configs ([#631](https://github.com/kurtosis-tech/ethereum-package/issues/631)) ([e33b971](https://github.com/kurtosis-tech/ethereum-package/commit/e33b97171f1aedb647191e3b02835a8004cbaade))
* readme indentation ([#600](https://github.com/kurtosis-tech/ethereum-package/issues/600)) ([583db1b](https://github.com/kurtosis-tech/ethereum-package/commit/583db1b4ebaa5ab2e5eb2f97aa7414f89376b022))
* registration flags when using beacon node only ([#618](https://github.com/kurtosis-tech/ethereum-package/issues/618)) ([c12506b](https://github.com/kurtosis-tech/ethereum-package/commit/c12506b9587c9a87e89d2938351d72c4676160e1))
* repair check workflow for external PRs ([#616](https://github.com/kurtosis-tech/ethereum-package/issues/616)) ([a584682](https://github.com/kurtosis-tech/ethereum-package/commit/a5846821563d318b993de48baab5e3a9c9e267d0))
* seperate vc service names ([#654](https://github.com/kurtosis-tech/ethereum-package/issues/654)) ([a5ffe14](https://github.com/kurtosis-tech/ethereum-package/commit/a5ffe14e7d3c9f7ec6dbebd79a4b42c24394c0f7))
* tune Besu options to work with tx_spammer ([#612](https://github.com/kurtosis-tech/ethereum-package/issues/612)) ([b395189](https://github.com/kurtosis-tech/ethereum-package/commit/b39518904fbf2cad5ca2ec18ce1bc18455207014))
* update dora images ([#598](https://github.com/kurtosis-tech/ethereum-package/issues/598)) ([dd28d61](https://github.com/kurtosis-tech/ethereum-package/commit/dd28d61a31bdc4c58c33ca733487535041f5ae0a))
* update prysm image ([#599](https://github.com/kurtosis-tech/ethereum-package/issues/599)) ([0a38114](https://github.com/kurtosis-tech/ethereum-package/commit/0a38114e8444837d7cff9aab9afe6b06e1c99d84))
* use `electra-support` image for assertoor when electra fork epoch is set ([#607](https://github.com/kurtosis-tech/ethereum-package/issues/607)) ([cdeab93](https://github.com/kurtosis-tech/ethereum-package/commit/cdeab939eda037770b89b580658a87817aac1158))

## [3.0.0](https://github.com/kurtosis-tech/ethereum-package/compare/2.2.0...3.0.0) (2024-05-06)


### ⚠ BREAKING CHANGES

* add mev-rs relay/builder/boost ([#586](https://github.com/kurtosis-tech/ethereum-package/issues/586))
* upcoming file path change in kurtosis upstream ([#582](https://github.com/kurtosis-tech/ethereum-package/issues/582))

### Features

* add apache file server ([#581](https://github.com/kurtosis-tech/ethereum-package/issues/581)) ([205256a](https://github.com/kurtosis-tech/ethereum-package/commit/205256a6d79303719973655b459e803d9b8e311f))
* add enr/enode to apache ([#589](https://github.com/kurtosis-tech/ethereum-package/issues/589)) ([b789e17](https://github.com/kurtosis-tech/ethereum-package/commit/b789e1705f076ec6aa01ceffbf5fbeebb02d8c0f))
* add execution client urls to dora config ([#588](https://github.com/kurtosis-tech/ethereum-package/issues/588)) ([2a20d5a](https://github.com/kurtosis-tech/ethereum-package/commit/2a20d5ad7d2bf8f9a9eb2b619681b438810176d2))
* add mev-rs relay/builder/boost ([#586](https://github.com/kurtosis-tech/ethereum-package/issues/586)) ([525a8fb](https://github.com/kurtosis-tech/ethereum-package/commit/525a8fb3d794f8030a574f55f3a7e719c1b58dca))
* Add peerdas support ([#591](https://github.com/kurtosis-tech/ethereum-package/issues/591)) ([14296ca](https://github.com/kurtosis-tech/ethereum-package/commit/14296cab11d8c7a9572cf57a37980e1d93285cad))
* add snooper urls to assertoor config ([#571](https://github.com/kurtosis-tech/ethereum-package/issues/571)) ([87f383f](https://github.com/kurtosis-tech/ethereum-package/commit/87f383fbc7f9e28d383853fcb7cd491abe13a0cc))
* allow setting exit ip address ([#584](https://github.com/kurtosis-tech/ethereum-package/issues/584)) ([aabc942](https://github.com/kurtosis-tech/ethereum-package/commit/aabc942c4e8534288f28cdbb1e9e55f2613f383c))


### Bug Fixes

* non-existent field access on error message ([#577](https://github.com/kurtosis-tech/ethereum-package/issues/577)) ([8515d27](https://github.com/kurtosis-tech/ethereum-package/commit/8515d276056a47f9e6a77dd498f823042bff1a8f))
* participant redefining global flag ([#573](https://github.com/kurtosis-tech/ethereum-package/issues/573)) ([9139f4b](https://github.com/kurtosis-tech/ethereum-package/commit/9139f4b4c77bc43477740972512171d7f28bfa84))
* path for shadowforks post kt update ([#585](https://github.com/kurtosis-tech/ethereum-package/issues/585)) ([e0622a7](https://github.com/kurtosis-tech/ethereum-package/commit/e0622a77305732e01ee0fce183fda15c3dcd2dad))
* remove erigon's --chain parameter ([#575](https://github.com/kurtosis-tech/ethereum-package/issues/575)) ([02b9c50](https://github.com/kurtosis-tech/ethereum-package/commit/02b9c50495f9b8cce0b0df502f19b37c0cb21ffd))
* upcoming file path change in kurtosis upstream ([#582](https://github.com/kurtosis-tech/ethereum-package/issues/582)) ([8d7c4f9](https://github.com/kurtosis-tech/ethereum-package/commit/8d7c4f9c1feba07511c22d006b5121b45893f642))

## [2.2.0](https://github.com/kurtosis-tech/ethereum-package/compare/2.1.0...2.2.0) (2024-04-19)


### Features

* add assertoor test for per PR CI job ([#537](https://github.com/kurtosis-tech/ethereum-package/issues/537)) ([8ef5c57](https://github.com/kurtosis-tech/ethereum-package/commit/8ef5c57fc00b1e5ea9d59011fa61d771b1af5133))
* add blutgang rpc load balancer ([#569](https://github.com/kurtosis-tech/ethereum-package/issues/569)) ([1be5f95](https://github.com/kurtosis-tech/ethereum-package/commit/1be5f9542cf43b7b5afc3f565358b50dfbb81d50))
* add dugtrio beacon load balancer ([#568](https://github.com/kurtosis-tech/ethereum-package/issues/568)) ([56d2fa3](https://github.com/kurtosis-tech/ethereum-package/commit/56d2fa38e59018fa331c12a271a906ec4fe67e6e))
* add new assertoor test to per ci jobs ([#545](https://github.com/kurtosis-tech/ethereum-package/issues/545)) ([3005d46](https://github.com/kurtosis-tech/ethereum-package/commit/3005d46d60970be18e66f6a7f590d0b4689e84f4))
* use new rpc snooper from `ethpandaops/rpc-snooper` ([#567](https://github.com/kurtosis-tech/ethereum-package/issues/567)) ([5676f0d](https://github.com/kurtosis-tech/ethereum-package/commit/5676f0dd4d62ee25a7f8ca2959596e419743916d))


### Bug Fixes

* add --contract-deployment-block parameter for Prysm ([#557](https://github.com/kurtosis-tech/ethereum-package/issues/557)) ([d8dfbae](https://github.com/kurtosis-tech/ethereum-package/commit/d8dfbae531c038e3985cb15ca6bcbcf37f6526a0))
* Added '--enable-private-discovery' to Grandine ([#541](https://github.com/kurtosis-tech/ethereum-package/issues/541)) ([a1ae708](https://github.com/kurtosis-tech/ethereum-package/commit/a1ae708183873dec97e91986d6104c8dedc92100))
* beaconchain explorer ([#531](https://github.com/kurtosis-tech/ethereum-package/issues/531)) ([b62ed6f](https://github.com/kurtosis-tech/ethereum-package/commit/b62ed6f129c65b62f084ea2a78fab0fa80afd9e2))
* beaconchain explorer ([#538](https://github.com/kurtosis-tech/ethereum-package/issues/538)) ([ce1f337](https://github.com/kurtosis-tech/ethereum-package/commit/ce1f3373000d552a9b4b8b09ad5754ab092a61cb))
* blobber incorrect url ([#528](https://github.com/kurtosis-tech/ethereum-package/issues/528)) ([6f84e3d](https://github.com/kurtosis-tech/ethereum-package/commit/6f84e3d5ec5fd7c02016530b3b64c79114d5891e))
* bump json rpc snooper ([#553](https://github.com/kurtosis-tech/ethereum-package/issues/553)) ([f69c4a7](https://github.com/kurtosis-tech/ethereum-package/commit/f69c4a7468f97a4aa3aaea64dd18a63e561a6704))
* disable full sync if gcmode is archive ([#563](https://github.com/kurtosis-tech/ethereum-package/issues/563)) ([b7592ec](https://github.com/kurtosis-tech/ethereum-package/commit/b7592ecac5ca8820aa6de6fc5ae9bb9c0dc27c20))
* disable pbss when gcmode archive set ([#559](https://github.com/kurtosis-tech/ethereum-package/issues/559)) ([e085462](https://github.com/kurtosis-tech/ethereum-package/commit/e0854624ef69a069bb7ba482694cb83180df0680))
* disable pbss when gcmode archive set, force hash based init ([#562](https://github.com/kurtosis-tech/ethereum-package/issues/562)) ([3e1c7a6](https://github.com/kurtosis-tech/ethereum-package/commit/3e1c7a6585a50398e5750f6e37cf3d0685d35536))
* disable static peers ([#529](https://github.com/kurtosis-tech/ethereum-package/issues/529)) ([c5d4028](https://github.com/kurtosis-tech/ethereum-package/commit/c5d4028939691b887b928b91532f8139478ee4d2))
* enable single node mode on lodestar by default ([#558](https://github.com/kurtosis-tech/ethereum-package/issues/558)) ([555ad7d](https://github.com/kurtosis-tech/ethereum-package/commit/555ad7dc5180cc7f47e14baa3438879e6d4779e9))
* fix doc string typo ([#560](https://github.com/kurtosis-tech/ethereum-package/issues/560)) ([13de3f6](https://github.com/kurtosis-tech/ethereum-package/commit/13de3f68706a80088b28fbfefc69d738e06d13ef))
* fix failing persistence test ([#554](https://github.com/kurtosis-tech/ethereum-package/issues/554)) ([99242d6](https://github.com/kurtosis-tech/ethereum-package/commit/99242d66f3e0254684b75bce14353a854e735721))
* increase mem limit of snooper ([#546](https://github.com/kurtosis-tech/ethereum-package/issues/546)) ([6ba5770](https://github.com/kurtosis-tech/ethereum-package/commit/6ba577006e6f6eb0b477619399edb232f4ed9783))
* prysm beacon http url  ([#536](https://github.com/kurtosis-tech/ethereum-package/issues/536)) ([4914531](https://github.com/kurtosis-tech/ethereum-package/commit/4914531690eae32ba274e10ee7fa0ecf6d82ac68))
* prysm beacon_http_url ([#535](https://github.com/kurtosis-tech/ethereum-package/issues/535)) ([ee7528c](https://github.com/kurtosis-tech/ethereum-package/commit/ee7528c5d5872768e7ddc25e9da963e764e3b594))
* prysm vc ([#533](https://github.com/kurtosis-tech/ethereum-package/issues/533)) ([72ddeb2](https://github.com/kurtosis-tech/ethereum-package/commit/72ddeb25c1bb0a8132c1a3a73bd8f7764cb01659))
* remove un-needed prysm vc check ([#542](https://github.com/kurtosis-tech/ethereum-package/issues/542)) ([f6326fe](https://github.com/kurtosis-tech/ethereum-package/commit/f6326fe2119648478ab1bfc90220cbd4b4e12cac))
* set application protocol to be http for rpc ([#548](https://github.com/kurtosis-tech/ethereum-package/issues/548)) ([905de7c](https://github.com/kurtosis-tech/ethereum-package/commit/905de7c3635c3c057f67ae6589d708d9dc6d5ddd))
* set the correct default vc image ([#544](https://github.com/kurtosis-tech/ethereum-package/issues/544)) ([953741d](https://github.com/kurtosis-tech/ethereum-package/commit/953741d824a4a76a1194c2643012bf738669c3ad))
* uniformize keymanager ([#534](https://github.com/kurtosis-tech/ethereum-package/issues/534)) ([a6a2830](https://github.com/kurtosis-tech/ethereum-package/commit/a6a2830e90919999c6c391e9aa832094cf440d35))
* update prometheus api ([#539](https://github.com/kurtosis-tech/ethereum-package/issues/539)) ([d2b9fb8](https://github.com/kurtosis-tech/ethereum-package/commit/d2b9fb8961eac8a712af36f49ac8a1f918dabb6b))
* update vc &lt;&gt; cl matrix ([#564](https://github.com/kurtosis-tech/ethereum-package/issues/564)) ([0ffcf74](https://github.com/kurtosis-tech/ethereum-package/commit/0ffcf74cf3a83b0c462bc26d07254160b132b27a))
* update vc compatibility matrix ([#543](https://github.com/kurtosis-tech/ethereum-package/issues/543)) ([58c4684](https://github.com/kurtosis-tech/ethereum-package/commit/58c4684594711ee58bf117c31d5cf688d476892e))
* use `minimal-preset` images for dora & assertoor when minimal preset is used ([#532](https://github.com/kurtosis-tech/ethereum-package/issues/532)) ([ad7773e](https://github.com/kurtosis-tech/ethereum-package/commit/ad7773e86f1e1bb1f48b96e5126231fd060822e8))

## [2.1.0](https://github.com/kurtosis-tech/ethereum-package/compare/2.0.0...2.1.0) (2024-03-28)


### Features

* add beacon snooper ([#520](https://github.com/kurtosis-tech/ethereum-package/issues/520)) ([7e36191](https://github.com/kurtosis-tech/ethereum-package/commit/7e361913c754ddf37eaf2cf3ad4a93aed8770899))
* add BN&lt;&gt;CL compatibility matrix to readme ([#519](https://github.com/kurtosis-tech/ethereum-package/issues/519)) ([177beeb](https://github.com/kurtosis-tech/ethereum-package/commit/177beeb9b46f61b3dd3dc3009ff2abf9b576c569))
* add grandine ([#517](https://github.com/kurtosis-tech/ethereum-package/issues/517)) ([3ac4d2a](https://github.com/kurtosis-tech/ethereum-package/commit/3ac4d2a4fae1c33ff658f0f43657a09522348127))
* enable preset to be set, mainnet/minimal ([#524](https://github.com/kurtosis-tech/ethereum-package/issues/524)) ([f6e1b13](https://github.com/kurtosis-tech/ethereum-package/commit/f6e1b136ef6b884e540c1289b8acc2b4d359e6ce))
* make deneb genesis default ([#518](https://github.com/kurtosis-tech/ethereum-package/issues/518)) ([49509b9](https://github.com/kurtosis-tech/ethereum-package/commit/49509b9ecb8b00d361e4119ee053ba86c366619e))
* make keymanager optional ([#523](https://github.com/kurtosis-tech/ethereum-package/issues/523)) ([969012c](https://github.com/kurtosis-tech/ethereum-package/commit/969012c3b504be1c475bd583675857d0605ed430))
* update verkle genesis + add besu support to verkle testing  ([#512](https://github.com/kurtosis-tech/ethereum-package/issues/512)) ([0615cd1](https://github.com/kurtosis-tech/ethereum-package/commit/0615cd1b4466d8f63e3adb721d97ee768211114f))


### Bug Fixes

* architecture.md ([#514](https://github.com/kurtosis-tech/ethereum-package/issues/514)) ([f0ec4f0](https://github.com/kurtosis-tech/ethereum-package/commit/f0ec4f076837b282a8972bd2211a0522ed67a06b))
* blobscan network name ([#516](https://github.com/kurtosis-tech/ethereum-package/issues/516)) ([83c2a55](https://github.com/kurtosis-tech/ethereum-package/commit/83c2a5592445c0efc10ab418d87ab2ecd4d10cf4))
* **blobscan:** update healthcheck endpoint ([#513](https://github.com/kurtosis-tech/ethereum-package/issues/513)) ([8b2fc61](https://github.com/kurtosis-tech/ethereum-package/commit/8b2fc61f77b53642441d3bd0bdeea89b2a2d35eb))
* separate vc ([#526](https://github.com/kurtosis-tech/ethereum-package/issues/526)) ([baa04e9](https://github.com/kurtosis-tech/ethereum-package/commit/baa04e9118f39b10ed7d867eec164483c6fd807d))
* Updated Readme with VCs supported by Grandine BN ([#527](https://github.com/kurtosis-tech/ethereum-package/issues/527)) ([9cbe0b3](https://github.com/kurtosis-tech/ethereum-package/commit/9cbe0b368205f70ee274d9c0c57f634f9621e6d7))
* use correct dora & assertoor images ([#522](https://github.com/kurtosis-tech/ethereum-package/issues/522)) ([2a8d73a](https://github.com/kurtosis-tech/ethereum-package/commit/2a8d73aba35bf26bfcd474036bac32c4f5713e35))
* use new validator names in assertoor config ([#521](https://github.com/kurtosis-tech/ethereum-package/issues/521)) ([f595eb9](https://github.com/kurtosis-tech/ethereum-package/commit/f595eb9a75e8c2147d530d1a70e6ccb9f3542257))

## [2.0.0](https://github.com/kurtosis-tech/ethereum-package/compare/1.4.0...2.0.0) (2024-03-08)


### ⚠ BREAKING CHANGES

* participant_network & rename participant fields. ([#508](https://github.com/kurtosis-tech/ethereum-package/issues/508))
* add node selectors features ([#491](https://github.com/kurtosis-tech/ethereum-package/issues/491))

### Features

* add keymanager to all validator processes ([#502](https://github.com/kurtosis-tech/ethereum-package/issues/502)) ([836eda4](https://github.com/kurtosis-tech/ethereum-package/commit/836eda4eed3776dd406d354343655c0ff8b9d2b6))
* add nimbus-eth1 ([#496](https://github.com/kurtosis-tech/ethereum-package/issues/496)) ([d599729](https://github.com/kurtosis-tech/ethereum-package/commit/d599729295aa3274d23e4e8e99b56288cde3fc04))
* add node selectors features ([#491](https://github.com/kurtosis-tech/ethereum-package/issues/491)) ([316d42f](https://github.com/kurtosis-tech/ethereum-package/commit/316d42fbaeb2d7bc1d580823a6c70b1c2dfe3746))
* allow more detailed additional test configurations in assertoor_params ([#498](https://github.com/kurtosis-tech/ethereum-package/issues/498)) ([fe2de7e](https://github.com/kurtosis-tech/ethereum-package/commit/fe2de7e5a5e2446ebb0a0b191f5aa6783e132426))
* enable api in assertoor config ([#495](https://github.com/kurtosis-tech/ethereum-package/issues/495)) ([9ceae9c](https://github.com/kurtosis-tech/ethereum-package/commit/9ceae9c74405db4e1ab6e02de541577d078434ae))
* enable dencun-genesis ([#500](https://github.com/kurtosis-tech/ethereum-package/issues/500)) ([beb764f](https://github.com/kurtosis-tech/ethereum-package/commit/beb764fb9a18fcb09cb7d3d9ee48e4826595512d))
* make snapshot url configurable ([#507](https://github.com/kurtosis-tech/ethereum-package/issues/507)) ([6fa0475](https://github.com/kurtosis-tech/ethereum-package/commit/6fa04751cd1277a4870dc45144e15ffa5d637b93))
* parameterize mev-boost args ([#400](https://github.com/kurtosis-tech/ethereum-package/issues/400)) ([e48483a](https://github.com/kurtosis-tech/ethereum-package/commit/e48483a130ba227dafd0d0fd9ee66c6cecc3bfce))
* separate validator clients from CL clients ([#497](https://github.com/kurtosis-tech/ethereum-package/issues/497)) ([90da2c3](https://github.com/kurtosis-tech/ethereum-package/commit/90da2c33a77b4a0ac620ae665899963256a1ae0a))


### Bug Fixes

* fix end index in validator ranges file ([#509](https://github.com/kurtosis-tech/ethereum-package/issues/509)) ([da55be8](https://github.com/kurtosis-tech/ethereum
Download .txt
gitextract_qx2a8ttp/

├── .claude/
│   └── skills/
│       └── kurtosis-ethereum/
│           ├── SKILL.md
│           └── kurtosis-ref.sh
├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   └── bug-report.md
│   ├── actions/
│   │   ├── docker-login/
│   │   │   └── action.yaml
│   │   └── kurtosis-install/
│   │       └── action.yaml
│   ├── check-consensus-spec-values.py
│   ├── dependabot.yml
│   ├── remove_trailing_space.py
│   ├── tests/
│   │   ├── 1gpu_zkvm.yaml_norun
│   │   ├── 8gpu_zkvm.yaml_norun
│   │   ├── altair-genesis.yaml
│   │   ├── archive-storage.yaml.norun
│   │   ├── assertoor.yaml
│   │   ├── bal-devnet-0.yaml_norun
│   │   ├── bellatrix-genesis.yaml
│   │   ├── besu-all.yaml
│   │   ├── binary.yaml_norun
│   │   ├── binary_force.yaml_norun
│   │   ├── blobber.yaml
│   │   ├── bootnodoor.yaml
│   │   ├── capella-genesis.yaml
│   │   ├── caplin-basic.yaml
│   │   ├── consensoor-basic.yaml
│   │   ├── custom-contracts.yaml
│   │   ├── custom-mnemonics.yaml
│   │   ├── deneb-genesis.yaml
│   │   ├── deneb.yaml
│   │   ├── disable-peer-scoring.yaml
│   │   ├── dummy-el.yaml
│   │   ├── electra-genesis.yaml
│   │   ├── ephemery.yaml
│   │   ├── erigon-all.yaml
│   │   ├── erpc.yaml
│   │   ├── ethereumjs-all.yaml.norun
│   │   ├── ethrex.yaml
│   │   ├── force.yaml
│   │   ├── full-storage.yaml.norun
│   │   ├── fulu-genesis.yaml
│   │   ├── fulu-mev.yaml
│   │   ├── fulu.yaml
│   │   ├── geth-all.yaml
│   │   ├── grandine-all.yaml
│   │   ├── hoodi-shadowfork.yaml_norun
│   │   ├── hoodi-shadowfork_at_height.yaml_norun
│   │   ├── lighthouse-all.yaml
│   │   ├── lodestar-all.yaml
│   │   ├── mainnet-split.yaml.norun
│   │   ├── mainnet.yaml.norun
│   │   ├── mempool_bridge.yaml
│   │   ├── mev-buildoor.yaml
│   │   ├── mev-commit-boost.yaml
│   │   ├── mev-helix.yaml
│   │   ├── mev-mock.yaml
│   │   ├── mev-multiple-relays.yaml
│   │   ├── mev.yaml
│   │   ├── minimal-fulu.yaml
│   │   ├── minimal-mev.yaml
│   │   ├── minimal.yaml
│   │   ├── mix-assert.yaml
│   │   ├── mix-persistence-k8s.yaml
│   │   ├── mix-persistence.yaml
│   │   ├── mix-public.yaml
│   │   ├── mix-with-tools-mev.yaml
│   │   ├── mix-with-tools-minimal.yaml
│   │   ├── mix-with-tools.yaml
│   │   ├── mix.yaml
│   │   ├── mixed-cl-vc.yml
│   │   ├── multi-beacon.yaml
│   │   ├── nethermind-all.yaml
│   │   ├── nimbus-all.yaml
│   │   ├── nimbus-eth1-all.yaml
│   │   ├── nimbus-mev.yaml
│   │   ├── node-selectors.yaml
│   │   ├── parallel-keystores.yaml
│   │   ├── participants-matrix.yaml
│   │   ├── phase0-genesis.yaml
│   │   ├── preregistered_validator_count.yaml
│   │   ├── prysm-all.yaml
│   │   ├── rakoon.yaml
│   │   ├── remote-signer.yaml
│   │   ├── reth-all.yaml
│   │   ├── sepolia-mix.yaml
│   │   ├── skip.yaml
│   │   ├── split-nimbus.yaml
│   │   ├── split-teku.yaml
│   │   ├── teku-all.yaml
│   │   ├── tolerations.yaml
│   │   ├── vero-all.yaml
│   │   └── zkboost.yaml
│   └── workflows/
│       ├── check-consensus-spec-values.yml
│       ├── check-typos.yml
│       ├── conventional-pr-title-checker.yml
│       ├── nightly.yml
│       ├── per-pr.yml
│       ├── release-please.yml
│       └── run-k8s.yml
├── .gitignore
├── .release-please-manifest.json
├── .typos.toml
├── CHANGELOG.md
├── LICENSE
├── README.md
├── _typos.toml
├── docs/
│   └── architecture.md
├── examples/
│   └── README.md
├── kurtosis.yml
├── main.star
├── network_params.yaml
├── release-please-config.json
├── rename.sh
├── src/
│   ├── apache/
│   │   └── apache_launcher.star
│   ├── assertoor/
│   │   └── assertoor_launcher.star
│   ├── blobber/
│   │   ├── blobber_context.star
│   │   └── blobber_launcher.star
│   ├── blobscan/
│   │   └── blobscan_launcher.star
│   ├── blockscout/
│   │   └── blockscout_launcher.star
│   ├── blutgang/
│   │   └── blutgang_launcher.star
│   ├── bootnodoor/
│   │   └── bootnodoor_launcher.star
│   ├── broadcaster/
│   │   └── broadcaster.star
│   ├── checkpointz/
│   │   └── checkpointz_launcher.star
│   ├── cl/
│   │   ├── caplin/
│   │   │   └── caplin_launcher.star
│   │   ├── cl_context.star
│   │   ├── cl_launcher.star
│   │   ├── cl_node_ready_conditions.star
│   │   ├── cl_shared.star
│   │   ├── consensoor/
│   │   │   └── consensoor_launcher.star
│   │   ├── grandine/
│   │   │   └── grandine_launcher.star
│   │   ├── lighthouse/
│   │   │   └── lighthouse_launcher.star
│   │   ├── lodestar/
│   │   │   └── lodestar_launcher.star
│   │   ├── nimbus/
│   │   │   └── nimbus_launcher.star
│   │   ├── prysm/
│   │   │   └── prysm_launcher.star
│   │   └── teku/
│   │       └── teku_launcher.star
│   ├── dora/
│   │   └── dora_launcher.star
│   ├── dugtrio/
│   │   └── dugtrio_launcher.star
│   ├── el/
│   │   ├── besu/
│   │   │   └── besu_launcher.star
│   │   ├── dummy/
│   │   │   └── dummy_launcher.star
│   │   ├── el_admin_node_info.star
│   │   ├── el_context.star
│   │   ├── el_launcher.star
│   │   ├── el_shared.star
│   │   ├── erigon/
│   │   │   └── erigon_launcher.star
│   │   ├── ethereumjs/
│   │   │   └── ethereumjs_launcher.star
│   │   ├── ethrex/
│   │   │   └── ethrex_launcher.star
│   │   ├── geth/
│   │   │   └── geth_launcher.star
│   │   ├── nethermind/
│   │   │   └── nethermind_launcher.star
│   │   ├── nimbus-eth1/
│   │   │   └── nimbus_launcher.star
│   │   └── reth/
│   │       └── reth_launcher.star
│   ├── erpc/
│   │   └── erpc_launcher.star
│   ├── ethereum_metrics_exporter/
│   │   ├── ethereum_metrics_exporter_context.star
│   │   └── ethereum_metrics_exporter_launcher.star
│   ├── forkmon/
│   │   └── forkmon_launcher.star
│   ├── forky/
│   │   └── forky_launcher.star
│   ├── full_beaconchain/
│   │   └── full_beaconchain_launcher.star
│   ├── grafana/
│   │   └── grafana_launcher.star
│   ├── mempool_bridge/
│   │   └── mempool_bridge_launcher.star
│   ├── mev/
│   │   ├── buildoor/
│   │   │   └── buildoor_launcher.star
│   │   ├── commit-boost/
│   │   │   └── mev_boost/
│   │   │       ├── mev_boost_context.star
│   │   │       └── mev_boost_launcher.star
│   │   ├── flashbots/
│   │   │   ├── mev_boost/
│   │   │   │   ├── mev_boost_context.star
│   │   │   │   └── mev_boost_launcher.star
│   │   │   ├── mev_builder/
│   │   │   │   └── mev_builder_launcher.star
│   │   │   ├── mev_custom_flood/
│   │   │   │   ├── mev_custom_flood_launcher.star
│   │   │   │   └── sender.py
│   │   │   ├── mev_relay/
│   │   │   │   └── mev_relay_launcher.star
│   │   │   └── mock_mev/
│   │   │       └── mock_mev_launcher.star
│   │   ├── helix/
│   │   │   └── helix_relay_launcher.star
│   │   └── mev-rs/
│   │       ├── mev_boost/
│   │       │   ├── mev_boost_context.star
│   │       │   └── mev_boost_launcher.star
│   │       ├── mev_builder/
│   │       │   └── mev_builder_launcher.star
│   │       └── mev_relay/
│   │           └── mev_relay_launcher.star
│   ├── network_launcher/
│   │   ├── devnet.star
│   │   ├── ephemery.star
│   │   ├── kurtosis.star
│   │   ├── public_network.star
│   │   └── shadowfork.star
│   ├── nginx/
│   │   └── nginx_launcher.star
│   ├── node_metrics_info.star
│   ├── package_io/
│   │   ├── constants.star
│   │   ├── input_parser.star
│   │   └── sanity_check.star
│   ├── participant.star
│   ├── participant_network.star
│   ├── prefunded_accounts/
│   │   └── get_prefunded_accounts.star
│   ├── prelaunch_data_generator/
│   │   ├── el_cl_genesis/
│   │   │   ├── el_cl_genesis_data.star
│   │   │   └── el_cl_genesis_generator.star
│   │   ├── genesis_constants/
│   │   │   └── genesis_constants.star
│   │   └── validator_keystores/
│   │       ├── generate_keystores_result.star
│   │       ├── keystore_files.star
│   │       ├── validator_keystore_generator.star
│   │       └── validator_ranges_generator.star
│   ├── prometheus/
│   │   └── prometheus_launcher.star
│   ├── rakoon/
│   │   └── rakoon.star
│   ├── remote_signer/
│   │   ├── remote_signer_context.star
│   │   └── remote_signer_launcher.star
│   ├── shared_utils/
│   │   └── shared_utils.star
│   ├── slashoor/
│   │   └── slashoor_launcher.star
│   ├── snooper/
│   │   ├── snooper_beacon_context.star
│   │   ├── snooper_beacon_launcher.star
│   │   ├── snooper_el_context.star
│   │   └── snooper_el_launcher.star
│   ├── spamoor/
│   │   └── spamoor.star
│   ├── static_files/
│   │   └── static_files.star
│   ├── tempo/
│   │   └── tempo_launcher.star
│   ├── tracoor/
│   │   └── tracoor_launcher.star
│   ├── tx_fuzz/
│   │   └── tx_fuzz.star
│   ├── vc/
│   │   ├── lighthouse.star
│   │   ├── lodestar.star
│   │   ├── nimbus.star
│   │   ├── prysm.star
│   │   ├── shared.star
│   │   ├── teku.star
│   │   ├── vc_context.star
│   │   ├── vc_launcher.star
│   │   └── vero.star
│   ├── xatu_sentry/
│   │   ├── xatu_sentry_context.star
│   │   └── xatu_sentry_launcher.star
│   └── zkboost/
│       └── zkboost_launcher.star
├── static_files/
│   ├── apache-config/
│   │   ├── enode.txt.tmpl
│   │   ├── enr.txt.tmpl
│   │   ├── enr_list.txt.tmpl
│   │   └── index.html
│   ├── assertoor-config/
│   │   ├── config.yaml.tmpl
│   │   └── tests/
│   │       ├── all-opcodes-transaction-test.yaml
│   │       ├── blob-transactions-test.yaml
│   │       ├── block-proposal-check.yaml
│   │       ├── eoa-transactions-test.yaml
│   │       ├── stability-check.yaml
│   │       └── validator-lifecycle-test.yaml
│   ├── blutgang-config/
│   │   └── config.toml.tmpl
│   ├── checkpointz-config/
│   │   └── config.yaml.tmpl
│   ├── dora-config/
│   │   └── config.yaml.tmpl
│   ├── dugtrio-config/
│   │   └── config.yaml.tmpl
│   ├── erpc-config/
│   │   └── erpc.yaml.tmpl
│   ├── forkmon-config/
│   │   └── config.toml.tmpl
│   ├── forky-config/
│   │   └── config.yaml.tmpl
│   ├── full-beaconchain-config/
│   │   └── config.yaml.tmpl
│   ├── genesis-generation-config/
│   │   └── el-cl/
│   │       ├── additional-contracts.json.tmpl
│   │       └── values.env.tmpl
│   ├── grafana-config/
│   │   ├── dashboards/
│   │   │   ├── beacon-metrics-dashboard.json
│   │   │   ├── besu-dashboard.json
│   │   │   ├── default.json
│   │   │   ├── ethereum-metrics-exporter-overview.json
│   │   │   ├── ethereum-metrics-exporter.json
│   │   │   ├── geth-dashboard.json
│   │   │   ├── lighthouse/
│   │   │   │   ├── AttestationProcessing.json
│   │   │   │   ├── BeaconProcessorV2.json
│   │   │   │   ├── BlockProcessing.json
│   │   │   │   ├── BlockProduction.json
│   │   │   │   ├── EIP8025ProofEngine.json
│   │   │   │   ├── EIP8025ProofSync.json
│   │   │   │   ├── ForkChoice.json
│   │   │   │   ├── Network.json
│   │   │   │   ├── Summary.json
│   │   │   │   ├── SyncMetrics.json
│   │   │   │   └── ValidatorClient.json
│   │   │   ├── peerdas-dashboard.json
│   │   │   ├── prysm-latency-dashboard.json
│   │   │   ├── teku-dashboard.json
│   │   │   ├── vero-detailed.json
│   │   │   └── zkboost/
│   │   │       └── zkboost.json
│   │   └── templates/
│   │       ├── dashboard-providers.yml.tmpl
│   │       └── datasource.yml.tmpl
│   ├── jwt/
│   │   └── jwtsecret
│   ├── keymanager/
│   │   ├── generate_certs.sh
│   │   ├── keymanager.txt
│   │   ├── openssl.cnf
│   │   └── validator_keystore.p12
│   ├── mempool-bridge-config/
│   │   └── config.yaml.tmpl
│   ├── mev/
│   │   ├── commit-boost/
│   │   │   └── cb-config.toml.tmpl
│   │   ├── flashbots/
│   │   │   └── mev_builder/
│   │   │       └── config.toml.tmpl
│   │   ├── helix/
│   │   │   └── config.yaml.tmpl
│   │   └── mev-rs/
│   │       ├── mev_boost/
│   │       │   └── config.toml.tmpl
│   │       ├── mev_builder/
│   │       │   └── config.toml.tmpl
│   │       └── mev_relay/
│   │           └── config.toml.tmpl
│   ├── nginx-config/
│   │   ├── enode.txt.tmpl
│   │   ├── enr.txt.tmpl
│   │   ├── enr_list.txt.tmpl
│   │   └── index.html
│   ├── peerdas-node-keys/
│   │   ├── grandine/
│   │   │   ├── node-key-file-1/
│   │   │   │   └── key
│   │   │   ├── node-key-file-10/
│   │   │   │   └── key
│   │   │   ├── node-key-file-11/
│   │   │   │   └── key
│   │   │   ├── node-key-file-12/
│   │   │   │   └── key
│   │   │   ├── node-key-file-13/
│   │   │   │   └── key
│   │   │   ├── node-key-file-14/
│   │   │   │   └── key
│   │   │   ├── node-key-file-15/
│   │   │   │   └── key
│   │   │   ├── node-key-file-16/
│   │   │   │   └── key
│   │   │   ├── node-key-file-2/
│   │   │   │   └── key
│   │   │   ├── node-key-file-3/
│   │   │   │   └── key
│   │   │   ├── node-key-file-4/
│   │   │   │   └── key
│   │   │   ├── node-key-file-5/
│   │   │   │   └── key
│   │   │   ├── node-key-file-6/
│   │   │   │   └── key
│   │   │   ├── node-key-file-7/
│   │   │   │   └── key
│   │   │   ├── node-key-file-8/
│   │   │   │   └── key
│   │   │   └── node-key-file-9/
│   │   │       └── key
│   │   ├── keys.json
│   │   ├── lighthouse/
│   │   │   ├── node-key-file-1/
│   │   │   │   └── key
│   │   │   ├── node-key-file-10/
│   │   │   │   └── key
│   │   │   ├── node-key-file-11/
│   │   │   │   └── key
│   │   │   ├── node-key-file-12/
│   │   │   │   └── key
│   │   │   ├── node-key-file-13/
│   │   │   │   └── key
│   │   │   ├── node-key-file-14/
│   │   │   │   └── key
│   │   │   ├── node-key-file-15/
│   │   │   │   └── key
│   │   │   ├── node-key-file-16/
│   │   │   │   └── key
│   │   │   ├── node-key-file-2/
│   │   │   │   └── key
│   │   │   ├── node-key-file-3/
│   │   │   │   └── key
│   │   │   ├── node-key-file-4/
│   │   │   │   └── key
│   │   │   ├── node-key-file-5/
│   │   │   │   └── key
│   │   │   ├── node-key-file-6/
│   │   │   │   └── key
│   │   │   ├── node-key-file-7/
│   │   │   │   └── key
│   │   │   ├── node-key-file-8/
│   │   │   │   └── key
│   │   │   └── node-key-file-9/
│   │   │       └── key
│   │   ├── lodestar/
│   │   │   ├── node-key-file-1/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-10/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-11/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-12/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-13/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-14/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-15/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-16/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-2/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-3/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-4/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-5/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-6/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-7/
│   │   │   │   └── peer-id.json
│   │   │   ├── node-key-file-8/
│   │   │   │   └── peer-id.json
│   │   │   └── node-key-file-9/
│   │   │       └── peer-id.json
│   │   ├── nimbus/
│   │   │   ├── node-key-file-1.json
│   │   │   ├── node-key-file-10.json
│   │   │   ├── node-key-file-11.json
│   │   │   ├── node-key-file-12.json
│   │   │   ├── node-key-file-13.json
│   │   │   ├── node-key-file-14.json
│   │   │   ├── node-key-file-15.json
│   │   │   ├── node-key-file-16.json
│   │   │   ├── node-key-file-2.json
│   │   │   ├── node-key-file-3.json
│   │   │   ├── node-key-file-4.json
│   │   │   ├── node-key-file-5.json
│   │   │   ├── node-key-file-6.json
│   │   │   ├── node-key-file-7.json
│   │   │   ├── node-key-file-8.json
│   │   │   └── node-key-file-9.json
│   │   ├── prysm/
│   │   │   ├── node-key-file-1
│   │   │   ├── node-key-file-10
│   │   │   ├── node-key-file-11
│   │   │   ├── node-key-file-12
│   │   │   ├── node-key-file-13
│   │   │   ├── node-key-file-14
│   │   │   ├── node-key-file-15
│   │   │   ├── node-key-file-16
│   │   │   ├── node-key-file-2
│   │   │   ├── node-key-file-3
│   │   │   ├── node-key-file-4
│   │   │   ├── node-key-file-5
│   │   │   ├── node-key-file-6
│   │   │   ├── node-key-file-7
│   │   │   ├── node-key-file-8
│   │   │   └── node-key-file-9
│   │   └── teku/
│   │       ├── node-key-file-1
│   │       ├── node-key-file-10
│   │       ├── node-key-file-11
│   │       ├── node-key-file-12
│   │       ├── node-key-file-13
│   │       ├── node-key-file-14
│   │       ├── node-key-file-15
│   │       ├── node-key-file-16
│   │       ├── node-key-file-2
│   │       ├── node-key-file-3
│   │       ├── node-key-file-4
│   │       ├── node-key-file-5
│   │       ├── node-key-file-6
│   │       ├── node-key-file-7
│   │       ├── node-key-file-8
│   │       └── node-key-file-9
│   ├── slashoor-config/
│   │   └── config.yaml.tmpl
│   ├── spamoor-config/
│   │   ├── rpc-hosts.txt.tmpl
│   │   └── startup-spammer.yaml.tmpl
│   ├── tempo-config/
│   │   └── tempo.yaml.tmpl
│   ├── tracoor-config/
│   │   └── config.yaml.tmpl
│   ├── validator-ranges/
│   │   └── config.yaml.tmpl
│   ├── xatu-sentry-config/
│   │   └── config.yaml.tmpl
│   └── zkboost-config/
│       └── config.toml.tmpl
└── version.txt
Download .txt
SYMBOL INDEX (7 symbols across 3 files)

FILE: .github/check-consensus-spec-values.py
  function load_yaml (line 58) | def load_yaml(path_or_url: str) -> dict:
  function compare_configs (line 66) | def compare_configs(our_config: dict, spec_config: dict) -> bool:
  function main (line 109) | def main():

FILE: .github/remove_trailing_space.py
  function remove (line 6) | def remove():

FILE: src/mev/flashbots/mev_custom_flood/sender.py
  function send_transaction (line 30) | def send_transaction():
  function delayed_send (line 57) | def delayed_send(interval_between_transactions):
  function run_infinitely (line 64) | def run_infinitely(interval_between_transactions):
Condensed preview — 385 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,963K chars).
[
  {
    "path": ".claude/skills/kurtosis-ethereum/SKILL.md",
    "chars": 6108,
    "preview": "---\nname: kurtosis-ethereum\ndescription: Run Ethereum multi-client devnets using Kurtosis and the ethpandaops/ethereum-p"
  },
  {
    "path": ".claude/skills/kurtosis-ethereum/kurtosis-ref.sh",
    "chars": 6279,
    "preview": "#!/usr/bin/env bash\n# Unified reference tool for ethereum-package configuration.\n# Only fetches the source file(s) neede"
  },
  {
    "path": ".editorconfig",
    "chars": 695,
    "preview": "# EditorConfig is awesome: https://EditorConfig.org\n\n# top-most EditorConfig file\nroot = true\n\n[*]\nindent_style = space\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report.md",
    "chars": 839,
    "preview": "---\nname: Bug report\nabout: Create a bug report\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n<!-- Ethereum package is meant"
  },
  {
    "path": ".github/actions/docker-login/action.yaml",
    "chars": 1094,
    "preview": "name: Docker login\ndescription: Log in to Docker Hub\ninputs:\n  username:\n     required: true\n  password:\n     required: "
  },
  {
    "path": ".github/actions/kurtosis-install/action.yaml",
    "chars": 970,
    "preview": "name: Kurtosis install\ninputs:\n  version:\n    description: 'Version to install'\n    required: false\n    default: 'latest"
  },
  {
    "path": ".github/check-consensus-spec-values.py",
    "chars": 3920,
    "preview": "#!/usr/bin/env python3\n\"\"\"\nCompares a generated config.yaml against the upstream consensus-specs config.\n\nExits non-zero"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 188,
    "preview": "version: 2\nupdates:\n   - package-ecosystem: github-actions\n     directory: /\n     schedule:\n        interval: weekly\n   "
  },
  {
    "path": ".github/remove_trailing_space.py",
    "chars": 231,
    "preview": "# This is used by the pr-description-update action\n# to trim trailing newlines and spaces in pr descriptions\n\nimport sys"
  },
  {
    "path": ".github/tests/1gpu_zkvm.yaml_norun",
    "chars": 1367,
    "preview": "# EIP-8025 testnet with zkboost backed by a single GPU ZisK prover.\n#\n#\n# Run with:\n#   kurtosis run --enclave eip8025-z"
  },
  {
    "path": ".github/tests/8gpu_zkvm.yaml_norun",
    "chars": 1712,
    "preview": "# EIP-8025 testnet with zkboost backed by GPU (ZisK) provers.\n#\n#\n# Run with:\n#   kurtosis run --enclave eip8025-zkboost"
  },
  {
    "path": ".github/tests/altair-genesis.yaml",
    "chars": 566,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    supernode: true\n  - el_type: reth\n    cl_type: prysm\n  - el_type: "
  },
  {
    "path": ".github/tests/archive-storage.yaml.norun",
    "chars": 301,
    "preview": "# Test archive mode for clients that default to full (geth, nethermind, besu)\nparticipants:\n  - el_type: geth\n    el_sto"
  },
  {
    "path": ".github/tests/assertoor.yaml",
    "chars": 157,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lighthouse\n    count: 1\n  - el_type: geth\n    cl_type: lodestar\n    count: "
  },
  {
    "path": ".github/tests/bal-devnet-0.yaml_norun",
    "chars": 691,
    "preview": "participants_matrix:\n  el:\n    - el_type: reth\n      el_image: ethpandaops/reth:bal-devnet-0\n    - el_type: geth\n      e"
  },
  {
    "path": ".github/tests/bellatrix-genesis.yaml",
    "chars": 565,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    supernode: true\n  - el_type: reth\n    cl_type: prysm\n  - el_type: "
  },
  {
    "path": ".github/tests/besu-all.yaml",
    "chars": 247,
    "preview": "participants:\n  - el_type: besu\n    cl_type: prysm\n  - el_type: besu\n    cl_type: teku\n  - el_type: besu\n    cl_type: ni"
  },
  {
    "path": ".github/tests/binary.yaml_norun",
    "chars": 253,
    "preview": "participants:\n  - cl_type: lighthouse\n    cl_image: ethpandaops/lighthouse:unstable\n    count: 4\n  - el_type: geth\n    c"
  },
  {
    "path": ".github/tests/binary_force.yaml_norun",
    "chars": 280,
    "preview": "participants:\n  - cl_type: lighthouse\n    cl_image: ethpandaops/lighthouse:unstable\n    count: 4\n  - el_type: geth\n    c"
  },
  {
    "path": ".github/tests/blobber.yaml",
    "chars": 946,
    "preview": "participants:\n  - el_type: geth\n    el_image: ethpandaops/geth:master\n    cl_type: lighthouse\n    blobber_enabled: true\n"
  },
  {
    "path": ".github/tests/bootnodoor.yaml",
    "chars": 168,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lighthouse\n    count: 1\n  - el_type: geth\n    cl_type: lodestar\n    count: "
  },
  {
    "path": ".github/tests/capella-genesis.yaml",
    "chars": 561,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    supernode: true\n  - el_type: reth\n    cl_type: prysm\n  - el_type: "
  },
  {
    "path": ".github/tests/caplin-basic.yaml",
    "chars": 146,
    "preview": "participants:\n  - el_type: erigon\n    cl_type: caplin\n    use_separate_vc: true\n    vc_type: lighthouse\n  - el_type: get"
  },
  {
    "path": ".github/tests/consensoor-basic.yaml",
    "chars": 428,
    "preview": "participants:\n  - el_type: geth\n    el_image: ethpandaops/geth:epbs-devnet-0\n    cl_type: consensoor\n    cl_image: ethpa"
  },
  {
    "path": ".github/tests/custom-contracts.yaml",
    "chars": 424,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/custom-mnemonics.yaml",
    "chars": 791,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/deneb-genesis.yaml",
    "chars": 470,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/deneb.yaml",
    "chars": 562,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    supernode: true\n  - el_type: reth\n    cl_type: prysm\n  - el_type: "
  },
  {
    "path": ".github/tests/disable-peer-scoring.yaml",
    "chars": 280,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: besu\n    cl_type: lighthouse\n  - el_type: reth\n    cl_typ"
  },
  {
    "path": ".github/tests/dummy-el.yaml",
    "chars": 306,
    "preview": "participants:\n  - el_type: geth\n  - el_type: dummy\n    cl_type: teku\n  - el_type: dummy\n    cl_type: prysm\n  - el_type: "
  },
  {
    "path": ".github/tests/electra-genesis.yaml",
    "chars": 505,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/ephemery.yaml",
    "chars": 358,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/erigon-all.yaml",
    "chars": 349,
    "preview": "participants:\n  - el_type: erigon\n    cl_type: teku\n  - el_type: erigon\n    cl_type: prysm\n  - el_type: erigon\n    cl_ty"
  },
  {
    "path": ".github/tests/erpc.yaml",
    "chars": 151,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lighthouse\n    count: 2\n  - el_type: reth\n    cl_type: prysm\n    count: 1\n\n"
  },
  {
    "path": ".github/tests/ethereumjs-all.yaml.norun",
    "chars": 283,
    "preview": "participants:\n  - el_type: ethereumjs\n    cl_type: teku\n  - el_type: ethereumjs\n    cl_type: prysm\n  - el_type: ethereum"
  },
  {
    "path": ".github/tests/ethrex.yaml",
    "chars": 259,
    "preview": "participants:\n  - el_type: ethrex\n    cl_type: teku\n  - el_type: ethrex\n    cl_type: prysm\n  - el_type: ethrex\n    cl_ty"
  },
  {
    "path": ".github/tests/force.yaml",
    "chars": 212,
    "preview": "participants:\n  - cl_type: lighthouse\n    cl_image: ethpandaops/lighthouse:unstable\n    count: 2\n  - el_type: geth\n    c"
  },
  {
    "path": ".github/tests/full-storage.yaml.norun",
    "chars": 214,
    "preview": "# Test full mode for clients that default to archive (reth, erigon)\nparticipants:\n  - el_type: reth\n    el_storage_type:"
  },
  {
    "path": ".github/tests/fulu-genesis.yaml",
    "chars": 1403,
    "preview": "participants:\n  - el_type: geth\n    el_image: ethpandaops/geth:master\n    el_extra_params: [\"--miner.extradata=lighthous"
  },
  {
    "path": ".github/tests/fulu-mev.yaml",
    "chars": 1293,
    "preview": "participants:\n  - el_type: geth\n    el_image: ethpandaops/geth:master\n    cl_type: lighthouse\n    cl_image: ethpandaops/"
  },
  {
    "path": ".github/tests/fulu.yaml",
    "chars": 268,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    supernode: true\n\n\nnetwork_params:\n  altair_fork_epoch: 0\n  bellatr"
  },
  {
    "path": ".github/tests/geth-all.yaml",
    "chars": 247,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: geth\n    cl_type: prysm\n  - el_type: geth\n    cl_type: ni"
  },
  {
    "path": ".github/tests/grandine-all.yaml",
    "chars": 306,
    "preview": "participants:\n  - el_type: geth\n    cl_type: grandine\n  - el_type: nethermind\n    cl_type: grandine\n  - el_type: erigon\n"
  },
  {
    "path": ".github/tests/hoodi-shadowfork.yaml_norun",
    "chars": 265,
    "preview": "participants:\n  - el_type: geth\n  - el_type: nethermind\n  - el_type: besu\n  - el_type: reth\n  - el_type: erigon\nnetwork_"
  },
  {
    "path": ".github/tests/hoodi-shadowfork_at_height.yaml_norun",
    "chars": 197,
    "preview": "participants:\n  - el_type: geth\nnetwork_params:\n  fulu_fork_epoch: 10\n  bpo_1_epoch: 11\n  shadowfork_block_height: 24000"
  },
  {
    "path": ".github/tests/lighthouse-all.yaml",
    "chars": 320,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lighthouse\n  - el_type: nethermind\n    cl_type: lighthouse\n  - el_type: eri"
  },
  {
    "path": ".github/tests/lodestar-all.yaml",
    "chars": 306,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lodestar\n  - el_type: nethermind\n    cl_type: lodestar\n  - el_type: erigon\n"
  },
  {
    "path": ".github/tests/mainnet-split.yaml.norun",
    "chars": 995,
    "preview": "participants:\n  # Prysm nodes (33%)\n  - el_type: geth\n    cl_type: prysm\n  - el_type: geth\n    cl_type: prysm\n  - el_typ"
  },
  {
    "path": ".github/tests/mainnet.yaml.norun",
    "chars": 1669,
    "preview": "participants_matrix:\n  el:\n    - el_type: geth\n      el_image: ethereum/client-go:v1.15.11\n    - el_type: reth\n      el_"
  },
  {
    "path": ".github/tests/mempool_bridge.yaml",
    "chars": 455,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    count: 2\n\nadditional_services:\n  - mempool_bridge\n  - dora\n\nnetwor"
  },
  {
    "path": ".github/tests/mev-buildoor.yaml",
    "chars": 188,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lighthouse\n    count: 2\nmev_type: buildoor\nbuildoor_params:\n  builder_api: "
  },
  {
    "path": ".github/tests/mev-commit-boost.yaml",
    "chars": 290,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lighthouse\nmev_type: commit-boost\nadditional_services:\n  - tx_fuzz\n  - spam"
  },
  {
    "path": ".github/tests/mev-helix.yaml",
    "chars": 1293,
    "preview": "participants:\n  - el_type: geth\n    el_image: ethpandaops/geth:master\n    cl_type: lighthouse\n    cl_image: ethpandaops/"
  },
  {
    "path": ".github/tests/mev-mock.yaml",
    "chars": 202,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lighthouse\n    count: 3\nmev_type: mock\nadditional_services:\n  - dora\n  - sp"
  },
  {
    "path": ".github/tests/mev-multiple-relays.yaml",
    "chars": 1465,
    "preview": "participants:\n  - el_type: geth\n    el_image: ethpandaops/geth:master\n    cl_type: lighthouse\n    cl_image: ethpandaops/"
  },
  {
    "path": ".github/tests/mev.yaml",
    "chars": 435,
    "preview": "participants:\n  - el_type: geth\n    el_extra_params: [\"--miner.extradata=localGeth\"]\n    cl_type: lighthouse\n\nmev_type: "
  },
  {
    "path": ".github/tests/minimal-fulu.yaml",
    "chars": 1895,
    "preview": "participants:\n  - el_type: geth\n    el_image: ethpandaops/geth:master\n    el_extra_params: [\"--miner.extradata=lighthous"
  },
  {
    "path": ".github/tests/minimal-mev.yaml",
    "chars": 735,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: geth\n    cl_type: prysm\n  - el_type: erigon\n    cl_type: "
  },
  {
    "path": ".github/tests/minimal.yaml",
    "chars": 365,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: geth\n    cl_type: prysm\n  - el_type: erigon\n    cl_type: "
  },
  {
    "path": ".github/tests/mix-assert.yaml",
    "chars": 415,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/mix-persistence-k8s.yaml",
    "chars": 324,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    use_separate_vc: true\n  - el_type: nethermind\n    cl_type: prysm\n "
  },
  {
    "path": ".github/tests/mix-persistence.yaml",
    "chars": 324,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    use_separate_vc: true\n  - el_type: nethermind\n    cl_type: prysm\n "
  },
  {
    "path": ".github/tests/mix-public.yaml",
    "chars": 960,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/mix-with-tools-mev.yaml",
    "chars": 601,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/mix-with-tools-minimal.yaml",
    "chars": 702,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: geth\n    cl_type: prysm\n  - el_type: erigon\n    cl_type: "
  },
  {
    "path": ".github/tests/mix-with-tools.yaml",
    "chars": 665,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/mix.yaml",
    "chars": 385,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/mixed-cl-vc.yml",
    "chars": 186,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    use_separate_vc: true\n    vc_type: lodestar\n  - el_type: besu\n    "
  },
  {
    "path": ".github/tests/multi-beacon.yaml",
    "chars": 776,
    "preview": "participants:\n  - supernode: true\n  - cl_type: lighthouse\n    vc_beacon_node_indices: []  # Connect to its own beacon no"
  },
  {
    "path": ".github/tests/nethermind-all.yaml",
    "chars": 283,
    "preview": "participants:\n  - el_type: nethermind\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: nethermi"
  },
  {
    "path": ".github/tests/nimbus-all.yaml",
    "chars": 292,
    "preview": "participants:\n  - el_type: geth\n    cl_type: nimbus\n  - el_type: nethermind\n    cl_type: nimbus\n  - el_type: erigon\n    "
  },
  {
    "path": ".github/tests/nimbus-eth1-all.yaml",
    "chars": 295,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nimbus\n    cl_type: teku\n  - el_type: nimbus\n    cl_type:"
  },
  {
    "path": ".github/tests/nimbus-mev.yaml",
    "chars": 119,
    "preview": "participants:\n  - el_type: geth\n    cl_type: nimbus\n    cl_image: ethpandaops/nimbus-eth2:unstable\nmev_type: flashbots\n"
  },
  {
    "path": ".github/tests/node-selectors.yaml",
    "chars": 275,
    "preview": "participants:\n  - el_type: reth\n    cl_type: teku\n    use_separate_vc: true\n    node_selectors: {\n      \"kubernetes.io/h"
  },
  {
    "path": ".github/tests/parallel-keystores.yaml",
    "chars": 180,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: geth\n    cl_type: teku\n    validator_count: 0\n  - el_type"
  },
  {
    "path": ".github/tests/participants-matrix.yaml",
    "chars": 129,
    "preview": "participants_matrix:\n  el:\n    - el_type: besu\n  cl:\n    - cl_type: prysm\n  vc:\n    - vc_type: nimbus\nparticipants:\n  - "
  },
  {
    "path": ".github/tests/phase0-genesis.yaml",
    "chars": 561,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    supernode: true\n  - el_type: reth\n    cl_type: prysm\n  - el_type: "
  },
  {
    "path": ".github/tests/preregistered_validator_count.yaml",
    "chars": 260,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: geth\n    cl_type: prysm\n  - el_type: geth\n    cl_type: ni"
  },
  {
    "path": ".github/tests/prysm-all.yaml",
    "chars": 285,
    "preview": "participants:\n  - el_type: geth\n    cl_type: prysm\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl"
  },
  {
    "path": ".github/tests/rakoon.yaml",
    "chars": 201,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lighthouse\n  - el_type: reth\n    cl_type: teku\nadditional_services:\n  - rak"
  },
  {
    "path": ".github/tests/remote-signer.yaml",
    "chars": 539,
    "preview": "participants:\n  - el_type: geth\n    cl_type: lodestar\n    use_separate_vc: true\n    use_remote_signer: true\n  - el_type:"
  },
  {
    "path": ".github/tests/reth-all.yaml",
    "chars": 247,
    "preview": "participants:\n  - el_type: reth\n    cl_type: teku\n  - el_type: reth\n    cl_type: prysm\n  - el_type: reth\n    cl_type: ni"
  },
  {
    "path": ".github/tests/sepolia-mix.yaml",
    "chars": 324,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: prysm\n  - el_type: erigon\n    cl_"
  },
  {
    "path": ".github/tests/skip.yaml",
    "chars": 539,
    "preview": "participants:\n  - cl_type: prysm\n\n  - cl_type: lighthouse\n    checkpoint_sync_enabled: true\n    skip_start: true\n    val"
  },
  {
    "path": ".github/tests/split-nimbus.yaml",
    "chars": 431,
    "preview": "participants:\n  - el_type: geth\n    cl_type: nimbus\n    use_separate_vc: true\n    validator_count: 0\n  - el_type: nether"
  },
  {
    "path": ".github/tests/split-teku.yaml",
    "chars": 419,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n    validator_count: 0\n    use_separate_vc: true\n  - el_type: nethermi"
  },
  {
    "path": ".github/tests/teku-all.yaml",
    "chars": 278,
    "preview": "participants:\n  - el_type: geth\n    cl_type: teku\n  - el_type: nethermind\n    cl_type: teku\n  - el_type: erigon\n    cl_t"
  },
  {
    "path": ".github/tests/tolerations.yaml",
    "chars": 950,
    "preview": "participants:\n  - el_type: reth\n    cl_type: teku\n    use_separate_vc: true\n    cl_tolerations:\n      - key: \"node-role."
  },
  {
    "path": ".github/tests/vero-all.yaml",
    "chars": 689,
    "preview": "participants:\n  - el_type: besu\n    cl_type: grandine\n    use_separate_vc: true\n    vc_type: vero\n    use_remote_signer:"
  },
  {
    "path": ".github/tests/zkboost.yaml",
    "chars": 708,
    "preview": "participants:\n  - cl_type: lighthouse\n    cl_image: ethpandaops/lighthouse:eth-act-optional-proofs\n    el_type: reth\n   "
  },
  {
    "path": ".github/workflows/check-consensus-spec-values.yml",
    "chars": 1566,
    "preview": "name: Check consensus spec values\n\non:\n  schedule:\n    - cron: '0 8 * * *'\n  workflow_dispatch:\n\nconcurrency:\n  group: $"
  },
  {
    "path": ".github/workflows/check-typos.yml",
    "chars": 352,
    "preview": "name: Check typos\n\non:\n  pull_request:\n    branches:\n      - main\n\njobs:\n  check-typos:\n    runs-on: ubuntu-latest\n    s"
  },
  {
    "path": ".github/workflows/conventional-pr-title-checker.yml",
    "chars": 508,
    "preview": "# Check PR title for conventional commits\nname: Check PR title\non:\n  pull_request_target:\n    types:\n      - opened\n    "
  },
  {
    "path": ".github/workflows/nightly.yml",
    "chars": 3120,
    "preview": "name: Nightly test Workflow\n\non:\n  schedule:\n    - cron: \"0 2 * * *\" # This schedules the workflow to run at 02:00 UTC e"
  },
  {
    "path": ".github/workflows/per-pr.yml",
    "chars": 5262,
    "preview": "name: CI\n\non:\n  pull_request:\n\nconcurrency:\n  group: \"tests-${{ github.head_ref }}\"\n  cancel-in-progress: true\n\njobs:\n  "
  },
  {
    "path": ".github/workflows/release-please.yml",
    "chars": 464,
    "preview": "on:\n  push:\n    branches:\n      - main\n\npermissions:\n  contents: write\n  pull-requests: write\n\nname: release-please\n\njob"
  },
  {
    "path": ".github/workflows/run-k8s.yml",
    "chars": 2539,
    "preview": "name: Run k8s test\n\non:\n  pull_request:\n  workflow_dispatch:\n  schedule:\n    - cron: '0 2 * * *'\n\nconcurrency:\n  group: "
  },
  {
    "path": ".gitignore",
    "chars": 929,
    "preview": "# IntelliJ\n.idea\n*.iws\n*.iml\n*.ipr\n\n# VS Code\n*.vscode\n\n# Jenv\n.java-version\n\n# Pyenv\n.python-version\n\n# Mac spotlight i"
  },
  {
    "path": ".release-please-manifest.json",
    "chars": 19,
    "preview": "{\n  \".\": \"6.1.0\"\n}\n"
  },
  {
    "path": ".typos.toml",
    "chars": 196,
    "preview": "[default]\nextend-ignore-re = [\n    # Ignore Ethereum Node Records (ENR)\n    \"enr:-.*\",\n    # Ignore blutgang config typo"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 161556,
    "preview": "# Changelog\n\n## [6.1.0](https://github.com/ethpandaops/ethereum-package/compare/6.0.0...6.1.0) (2026-04-01)\n\n\n### Featur"
  },
  {
    "path": "LICENSE",
    "chars": 1068,
    "preview": "MIT License\n\nCopyright (c) 2024 ethPandaOps\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "README.md",
    "chars": 87951,
    "preview": "# Ethereum Package\n\n![Run of the Ethereum Network Package](run.gif)\n\nThis is a [Kurtosis][kurtosis-repo] package that wi"
  },
  {
    "path": "_typos.toml",
    "chars": 59,
    "preview": "[files]\nextend-exclude = [\"static_files/\", \"CHANGELOG.md\"]\n"
  },
  {
    "path": "docs/architecture.md",
    "chars": 7554,
    "preview": "# Package Architecture\n\nThis repo is a Kurtosis package. To get general information on what a Kurtosis package is and ho"
  },
  {
    "path": "examples/README.md",
    "chars": 106,
    "preview": "# Examples\n\nPlease find the example configurations in the [../.github/tests](../.github/tests) directory.\n"
  },
  {
    "path": "kurtosis.yml",
    "chars": 48,
    "preview": "name: \"github.com/ethpandaops/ethereum-package\"\n"
  },
  {
    "path": "main.star",
    "chars": 47223,
    "preview": "input_parser = import_module(\"./src/package_io/input_parser.star\")\nconstants = import_module(\"./src/package_io/constants"
  },
  {
    "path": "network_params.yaml",
    "chars": 7872,
    "preview": "participants:\n# EL\n  - el_type: geth\n    el_image: ethereum/client-go:latest\n    el_binary_path: \"\"\n    el_log_level: \"\""
  },
  {
    "path": "release-please-config.json",
    "chars": 351,
    "preview": "{\n  \"$schema\": \"https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json\",\n  \"release-type\":"
  },
  {
    "path": "rename.sh",
    "chars": 1647,
    "preview": "#!/bin/bash\n\n# Helper function to perform replacements\nperform_replacements() {\n    local input_file=\"$1\"\n    shift\n    "
  },
  {
    "path": "src/apache/apache_launcher.star",
    "chars": 5536,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nstatic_files = import_module(\"../static_files/static_f"
  },
  {
    "path": "src/assertoor/assertoor_launcher.star",
    "chars": 6907,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nstatic_files = import_module(\"../static_files/static_f"
  },
  {
    "path": "src/blobber/blobber_context.star",
    "chars": 124,
    "preview": "def new_blobber_context(dns_name, port_num):\n    return struct(\n        dns_name=dns_name,\n        port_num=port_num,\n  "
  },
  {
    "path": "src/blobber/blobber_launcher.star",
    "chars": 3204,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../package_io/input_pars"
  },
  {
    "path": "src/blobscan/blobscan_launcher.star",
    "chars": 8957,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\npostgres = import_module(\"github.com/kurtosis-tech/pos"
  },
  {
    "path": "src/blockscout/blockscout_launcher.star",
    "chars": 9662,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/blutgang/blutgang_launcher.star",
    "chars": 4568,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/bootnodoor/bootnodoor_launcher.star",
    "chars": 5870,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/broadcaster/broadcaster.star",
    "chars": 1108,
    "preview": "input_parser = import_module(\"../package_io/input_parser.star\")\nshared_utils = import_module(\"../shared_utils/shared_uti"
  },
  {
    "path": "src/checkpointz/checkpointz_launcher.star",
    "chars": 4519,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/cl/caplin/caplin_launcher.star",
    "chars": 11631,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/cl/cl_context.star",
    "chars": 982,
    "preview": "def new_cl_context(\n    client_name,\n    enr,\n    ip_addr,\n    http_port,\n    beacon_http_url,\n    ip_address=\"\",\n    cl"
  },
  {
    "path": "src/cl/cl_launcher.star",
    "chars": 15464,
    "preview": "node_metrics = import_module(\"../node_metrics_info.star\")\ncl_context_l = import_module(\"./cl_context.star\")\nlighthouse ="
  },
  {
    "path": "src/cl/cl_node_ready_conditions.star",
    "chars": 318,
    "preview": "def get_ready_conditions(port_id):\n    recipe = GetHttpRequestRecipe(endpoint=\"/eth/v1/node/health\", port_id=port_id)\n\n "
  },
  {
    "path": "src/cl/cl_shared.star",
    "chars": 599,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/cl/consensoor/consensoor_launcher.star",
    "chars": 12562,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/cl/grandine/grandine_launcher.star",
    "chars": 16603,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/cl/lighthouse/lighthouse_launcher.star",
    "chars": 15997,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/cl/lodestar/lodestar_launcher.star",
    "chars": 14674,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/cl/nimbus/nimbus_launcher.star",
    "chars": 17360,
    "preview": "#  ---------------------------------- Library Imports ----------------------------------\nshared_utils = import_module(\"."
  },
  {
    "path": "src/cl/prysm/prysm_launcher.star",
    "chars": 16663,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/cl/teku/teku_launcher.star",
    "chars": 17272,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/dora/dora_launcher.star",
    "chars": 5917,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/dugtrio/dugtrio_launcher.star",
    "chars": 3863,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/el/besu/besu_launcher.star",
    "chars": 11284,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/el/dummy/dummy_launcher.star",
    "chars": 7541,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/el/el_admin_node_info.star",
    "chars": 1231,
    "preview": "def get_enode_enr_for_node(plan, service_name, port_id):\n    recipe = PostHttpRequestRecipe(\n        endpoint=\"\",\n      "
  },
  {
    "path": "src/el/el_context.star",
    "chars": 632,
    "preview": "def new_el_context(\n    client_name,\n    enode,\n    dns_name,\n    rpc_port_num,\n    ws_port_num,\n    engine_rpc_port_num"
  },
  {
    "path": "src/el/el_launcher.star",
    "chars": 9327,
    "preview": "constants = import_module(\"../package_io/constants.star\")\ninput_parser = import_module(\"../package_io/input_parser.star\""
  },
  {
    "path": "src/el/el_shared.star",
    "chars": 605,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/el/erigon/erigon_launcher.star",
    "chars": 11737,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/el/ethereumjs/ethereumjs_launcher.star",
    "chars": 10907,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../..//package_io/inp"
  },
  {
    "path": "src/el/ethrex/ethrex_launcher.star",
    "chars": 10585,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/el/geth/geth_launcher.star",
    "chars": 12546,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/el/nethermind/nethermind_launcher.star",
    "chars": 11297,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/el/nimbus-eth1/nimbus_launcher.star",
    "chars": 10278,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/el/reth/reth_launcher.star",
    "chars": 13729,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/erpc/erpc_launcher.star",
    "chars": 4744,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/ethereum_metrics_exporter/ethereum_metrics_exporter_context.star",
    "chars": 294,
    "preview": "def new_ethereum_metrics_exporter_context(\n    pair_name,\n    ip_addr,\n    metrics_port_num,\n    cl_name,\n    el_name,\n)"
  },
  {
    "path": "src/ethereum_metrics_exporter/ethereum_metrics_exporter_launcher.star",
    "chars": 3071,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nstatic_files = import_module(\"../static_files/static_f"
  },
  {
    "path": "src/forkmon/forkmon_launcher.star",
    "chars": 3221,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/forky/forky_launcher.star",
    "chars": 5036,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/full_beaconchain/full_beaconchain_launcher.star",
    "chars": 12833,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\npostgres = import_module(\"github.com/kurtosis-tech/pos"
  },
  {
    "path": "src/grafana/grafana_launcher.star",
    "chars": 8007,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nstatic_files = import_module(\"../static_files/static_f"
  },
  {
    "path": "src/mempool_bridge/mempool_bridge_launcher.star",
    "chars": 6822,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/mev/buildoor/buildoor_launcher.star",
    "chars": 2683,
    "preview": "constants = import_module(\"../../package_io/constants.star\")\nshared_utils = import_module(\"../../shared_utils/shared_uti"
  },
  {
    "path": "src/mev/commit-boost/mev_boost/mev_boost_context.star",
    "chars": 300,
    "preview": "def new_mev_boost_context(private_ip_address, port):\n    return struct(\n        private_ip_address=private_ip_address,\n "
  },
  {
    "path": "src/mev/commit-boost/mev_boost/mev_boost_launcher.star",
    "chars": 3968,
    "preview": "shared_utils = import_module(\"../../../shared_utils/shared_utils.star\")\nmev_boost_context_module = import_module(\"../mev"
  },
  {
    "path": "src/mev/flashbots/mev_boost/mev_boost_context.star",
    "chars": 300,
    "preview": "def new_mev_boost_context(private_ip_address, port):\n    return struct(\n        private_ip_address=private_ip_address,\n "
  },
  {
    "path": "src/mev/flashbots/mev_boost/mev_boost_launcher.star",
    "chars": 3641,
    "preview": "shared_utils = import_module(\"../../../shared_utils/shared_utils.star\")\nmev_boost_context_module = import_module(\"../mev"
  },
  {
    "path": "src/mev/flashbots/mev_builder/mev_builder_launcher.star",
    "chars": 4443,
    "preview": "shared_utils = import_module(\"../../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../../package_i"
  },
  {
    "path": "src/mev/flashbots/mev_custom_flood/mev_custom_flood_launcher.star",
    "chars": 1866,
    "preview": "shared_utils = import_module(\"../../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../../package_i"
  },
  {
    "path": "src/mev/flashbots/mev_custom_flood/sender.py",
    "chars": 2538,
    "preview": "\"\"\"\nthis is s a really dumb script that sends tokens to the receiver from the sender every 3 seconds\nthis is being used "
  },
  {
    "path": "src/mev/flashbots/mev_relay/mev_relay_launcher.star",
    "chars": 8187,
    "preview": "redis_module = import_module(\"github.com/kurtosis-tech/redis-package/main.star\")\npostgres_module = import_module(\"github"
  },
  {
    "path": "src/mev/flashbots/mock_mev/mock_mev_launcher.star",
    "chars": 1973,
    "preview": "constants = import_module(\"../../../package_io/constants.star\")\ninput_parser = import_module(\"../../../package_io/input_"
  },
  {
    "path": "src/mev/helix/helix_relay_launcher.star",
    "chars": 5844,
    "preview": "postgres_module = import_module(\"github.com/kurtosis-tech/postgres-package/main.star\")\nconstants = import_module(\"../../"
  },
  {
    "path": "src/mev/mev-rs/mev_boost/mev_boost_context.star",
    "chars": 300,
    "preview": "def new_mev_boost_context(private_ip_address, port):\n    return struct(\n        private_ip_address=private_ip_address,\n "
  },
  {
    "path": "src/mev/mev-rs/mev_boost/mev_boost_launcher.star",
    "chars": 3733,
    "preview": "shared_utils = import_module(\"../../../shared_utils/shared_utils.star\")\nmev_boost_context_module = import_module(\"../mev"
  },
  {
    "path": "src/mev/mev-rs/mev_builder/mev_builder_launcher.star",
    "chars": 2132,
    "preview": "shared_utils = import_module(\"../../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../../package_i"
  },
  {
    "path": "src/mev/mev-rs/mev_relay/mev_relay_launcher.star",
    "chars": 3431,
    "preview": "shared_utils = import_module(\"../../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../../package_i"
  },
  {
    "path": "src/network_launcher/devnet.star",
    "chars": 1511,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nel_cl_genesis_data = import_module(\n    \"../prelaunch_"
  },
  {
    "path": "src/network_launcher/ephemery.star",
    "chars": 1783,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nel_cl_genesis_data = import_module(\n    \"../prelaunch_"
  },
  {
    "path": "src/network_launcher/kurtosis.star",
    "chars": 3052,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nvalidator_keystores = import_module(\n    \"../prelaunch"
  },
  {
    "path": "src/network_launcher/public_network.star",
    "chars": 6606,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nel_cl_genesis_data = import_module(\n    \"../prelaunch_"
  },
  {
    "path": "src/network_launcher/shadowfork.star",
    "chars": 6331,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/nginx/nginx_launcher.star",
    "chars": 5360,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nstatic_files = import_module(\"../static_files/static_f"
  },
  {
    "path": "src/node_metrics_info.star",
    "chars": 244,
    "preview": "# this is a dictionary as this will get serialized to JSON\ndef new_node_metrics_info(\n    name,\n    path,\n    url,\n    c"
  },
  {
    "path": "src/package_io/constants.star",
    "chars": 12415,
    "preview": "EL_TYPE = struct(\n    geth=\"geth\",\n    erigon=\"erigon\",\n    nethermind=\"nethermind\",\n    besu=\"besu\",\n    reth=\"reth\",\n "
  },
  {
    "path": "src/package_io/input_parser.star",
    "chars": 107915,
    "preview": "constants = import_module(\"./constants.star\")\nshared_utils = import_module(\"../shared_utils/shared_utils.star\")\ngenesis_"
  },
  {
    "path": "src/package_io/sanity_check.star",
    "chars": 17535,
    "preview": "PARTICIPANT_CATEGORIES = {\n    \"participants\": [\n        \"el_type\",\n        \"el_image\",\n        \"el_binary_path\",\n      "
  },
  {
    "path": "src/participant.star",
    "chars": 903,
    "preview": "def new_participant(\n    el_type,\n    cl_type,\n    vc_type,\n    remote_signer_type,\n    el_context,\n    cl_context,\n    "
  },
  {
    "path": "src/participant_network.star",
    "chars": 25261,
    "preview": "el_cl_genesis_data_generator = import_module(\n    \"./prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star"
  },
  {
    "path": "src/prefunded_accounts/get_prefunded_accounts.star",
    "chars": 2170,
    "preview": "new_prefunded_account = import_module(\n    \"../prelaunch_data_generator/genesis_constants/genesis_constants.star\"\n)\nshar"
  },
  {
    "path": "src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_data.star",
    "chars": 355,
    "preview": "def new_el_cl_genesis_data(\n    files_artifact_uuid,\n    genesis_validators_root,\n    osaka_time=\"\",\n    shadowfork_bloc"
  },
  {
    "path": "src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star",
    "chars": 11795,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../../package_io/inpu"
  },
  {
    "path": "src/prelaunch_data_generator/genesis_constants/genesis_constants.star",
    "chars": 4257,
    "preview": "def new_prefunded_account(address, private_key):\n    return struct(address=address, private_key=private_key)\n\n\n# This in"
  },
  {
    "path": "src/prelaunch_data_generator/validator_keystores/generate_keystores_result.star",
    "chars": 644,
    "preview": "# Package object containing information about the keystores that were generated for validators\n# during genesis creation"
  },
  {
    "path": "src/prelaunch_data_generator/validator_keystores/keystore_files.star",
    "chars": 938,
    "preview": "# One of these will be created per node we're trying to start\ndef new_keystore_files(\n    files_artifact_uuid,\n    raw_r"
  },
  {
    "path": "src/prelaunch_data_generator/validator_keystores/validator_keystore_generator.star",
    "chars": 13335,
    "preview": "shared_utils = import_module(\"../../shared_utils/shared_utils.star\")\nkeystore_files_module = import_module(\"./keystore_f"
  },
  {
    "path": "src/prelaunch_data_generator/validator_keystores/validator_ranges_generator.star",
    "chars": 1341,
    "preview": "VALIDATOR_RANGES_FILE_NAME = \"validator-ranges.yaml\"\nshared_utils = import_module(\"../../shared_utils/shared_utils.star\""
  },
  {
    "path": "src/prometheus/prometheus_launcher.star",
    "chars": 8798,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nprometheus = import_module(\"github.com/kurtosis-tech/p"
  },
  {
    "path": "src/rakoon/rakoon.star",
    "chars": 2090,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\ninput_parser = import_module(\"../package_io/input_pars"
  },
  {
    "path": "src/remote_signer/remote_signer_context.star",
    "chars": 256,
    "preview": "def new_remote_signer_context(\n    http_url,\n    client_name,\n    service_name,\n    metrics_info,\n):\n    return struct(\n"
  },
  {
    "path": "src/remote_signer/remote_signer_launcher.star",
    "chars": 6378,
    "preview": "constants = import_module(\"../package_io/constants.star\")\ninput_parser = import_module(\"../package_io/input_parser.star\""
  },
  {
    "path": "src/shared_utils/shared_utils.star",
    "chars": 17603,
    "preview": "constants = import_module(\"../package_io/constants.star\")\n\nTCP_PROTOCOL = \"TCP\"\nUDP_PROTOCOL = \"UDP\"\nHTTP_APPLICATION_PR"
  },
  {
    "path": "src/slashoor/slashoor_launcher.star",
    "chars": 3592,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/snooper/snooper_beacon_context.star",
    "chars": 205,
    "preview": "def new_snooper_beacon_client_context(ip_addr, beacon_rpc_port_num, dns_name):\n    return struct(\n        ip_addr=ip_add"
  },
  {
    "path": "src/snooper/snooper_beacon_launcher.star",
    "chars": 2819,
    "preview": "shared_utils = import_module(\"../shared_utils/shared_utils.star\")\nconstants = import_module(\"../package_io/constants.sta"
  },
  {
    "path": "src/snooper/snooper_el_context.star",
    "chars": 250,
    "preview": "def new_snooper_el_client_context(ip_addr, engine_rpc_port_num, rpc_port_num, dns_name):\n    return struct(\n        ip_a"
  }
]

// ... and 185 more files (download for full content)

About this extraction

This page contains the full source code of the ethpandaops/ethereum-package GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 385 files (3.4 MB), approximately 922.6k tokens, and a symbol index with 7 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!