There are many participant fields that have been renamed to be more consistent with the rest of the package. The following fields have been renamed:
The `ethereum-package` has been moved to the [ethpandaops organization](https://github.com/ethpandaops/).
### EL Flags
```
el_client_type -> el_type
el_client_image -> el_image
el_client_log_level -> el_log_level
el_client_volume_size -> el_volume_size
```
### CL Flags
```
cl_client_type -> cl_type
cl_client_image -> cl_image
cl_client_volume_size -> cl_volume_size
cl_client_log_level -> cl_log_level
beacon_extra_params -> cl_extra_params
beacon_extra_labels -> cl_extra_labels
bn_min_cpu -> cl_min_cpu
bn_max_cpu -> cl_max_cpu
bn_min_mem -> cl_min_mem
bn_max_mem -> cl_max_mem
use_separate_validator_client -> use_separate_vc
```
### Validator flags
```
validator_client_type -> vc_type
validator_tolerations -> vc_tolerations
validator_client_image -> vc_image
validator_extra_params -> vc_extra_params
validator_extra_labels -> vc_extra_labels
v_min_cpu -> vc_min_cpu
v_max_cpu -> vc_max_cpu
v_min_mem -> vc_min_mem
v_max_mem -> vc_max_mem
```
### Global flags
```
global_client_log_level -> global_log_level
mev_type: full -> mev_type: flashbots # new rename as of 3 May 2024
```
To help you with the transition, we have added a script that will automatically update your `yaml` file to the new format. You can run the following command to update your network_params.yaml file:
The new repository is located at [github.com/ethpandaops/ethereum-package](https://github.com/ethpandaops/ethereum-package). For all your references please replace `kurtosis-tech` with `ethpandaops`.
```bash
./rename.sh example.yaml
```
If you would like to use the latest release of the package, released by kurtosis-tech, please refer to using the tag [v3.1.0](https://github.com/kurtosis-tech/ethereum-package/releases/tag/3.1.0).
# Ethereum Package
# Ethereum Package
...
@@ -74,14 +34,14 @@ Optional features (enabled via flags or parameter files at runtime):
...
@@ -74,14 +34,14 @@ Optional features (enabled via flags or parameter files at runtime):
## Quickstart
## Quickstart
[](https://gitpod.io/new/?editor=code#https://github.com/kurtosis-tech/ethereum-package)
[](https://gitpod.io/new/?editor=code#https://github.com/ethpandaops/ethereum-package)
1.[Install Docker & start the Docker Daemon if you haven't done so already][docker-installation]
1.[Install Docker & start the Docker Daemon if you haven't done so already][docker-installation]
2.[Install the Kurtosis CLI, or upgrade it to the latest version if it's already installed][kurtosis-cli-installation]
2.[Install the Kurtosis CLI, or upgrade it to the latest version if it's already installed][kurtosis-cli-installation]
3. Run the package with default configurations from the command line:
3. Run the package with default configurations from the command line:
```bash
```bash
kurtosis run --enclave my-testnet github.com/kurtosis-tech/ethereum-package
kurtosis run --enclave my-testnet github.com/ethpandaops/ethereum-package
```
```
#### Run with your own configuration
#### Run with your own configuration
...
@@ -89,7 +49,7 @@ Optional features (enabled via flags or parameter files at runtime):
...
@@ -89,7 +49,7 @@ Optional features (enabled via flags or parameter files at runtime):
Kurtosis packages are parameterizable, meaning you can customize your network and its behavior to suit your needs by storing parameters in a file that you can pass in at runtime like so:
Kurtosis packages are parameterizable, meaning you can customize your network and its behavior to suit your needs by storing parameters in a file that you can pass in at runtime like so:
```bash
```bash
kurtosis run --enclave my-testnet github.com/kurtosis-tech/ethereum-package --args-file network_params.yaml
kurtosis run --enclave my-testnet github.com/ethpandaops/ethereum-package --args-file network_params.yaml
```
```
Where `network_params.yaml` contains the parameters for your network in your home directory.
Where `network_params.yaml` contains the parameters for your network in your home directory.
To spin up the network of Ethereum nodes with an external block building network (using Flashbot's `mev-boost` protocol), simply use:
To spin up the network of Ethereum nodes with an external block building network (using Flashbot's `mev-boost` protocol), simply use:
```
```
kurtosis run github.com/kurtosis-tech/ethereum-package '{"mev_type": "full"}'
kurtosis run github.com/ethpandaops/ethereum-package '{"mev_type": "full"}'
```
```
Starting your network up with `"mev_type": "full"` will instantiate and connect the following infrastructure to your network:
Starting your network up with `"mev_type": "full"` will instantiate and connect the following infrastructure to your network:
...
@@ -1008,7 +968,7 @@ For more details, including a guide and architecture of the `mev-boost` infrastr
...
@@ -1008,7 +968,7 @@ For more details, including a guide and architecture of the `mev-boost` infrastr
## Pre-funded accounts at Genesis
## Pre-funded accounts at Genesis
This package comes with [20 prefunded keys for testing](https://github.com/kurtosis-tech/ethereum-package/blob/main/src/prelaunch_data_generator/genesis_constants/genesis_constants.star).
This package comes with [20 prefunded keys for testing](https://github.com/ethpandaops/ethereum-package/blob/main/src/prelaunch_data_generator/genesis_constants/genesis_constants.star).
@@ -63,15 +63,15 @@ Then the validator keys are generated. A tool called [eth2-val-tools](https://gi
...
@@ -63,15 +63,15 @@ Then the validator keys are generated. A tool called [eth2-val-tools](https://gi
### Starting EL clients
### Starting EL clients
Next, we plug the generated genesis data [into EL client "launchers"](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/participant_network/el) to start a mining network of EL nodes. The launchers come with a `launch` function that consumes EL genesis data and produces information about the running EL client node. Running EL node information is represented by [an `el_context` struct](https://github.com/kurtosis-tech/ethereum-package/blob/main/src/participant_network/el/el_context.star). Each EL client type has its own launcher (e.g. [Geth](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/participant_network/el/geth), [Besu](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/participant_network/el/besu)) because each EL client will require different environment variables and flags to be set when launching the client's container.
Next, we plug the generated genesis data [into EL client "launchers"](https://github.com/ethpandaops/ethereum-package/tree/main/src/participant_network/el) to start a mining network of EL nodes. The launchers come with a `launch` function that consumes EL genesis data and produces information about the running EL client node. Running EL node information is represented by [an `el_context` struct](https://github.com/ethpandaops/ethereum-package/blob/main/src/participant_network/el/el_context.star). Each EL client type has its own launcher (e.g. [Geth](https://github.com/ethpandaops/ethereum-package/tree/main/src/participant_network/el/geth), [Besu](https://github.com/ethpandaops/ethereum-package/tree/main/src/participant_network/el/besu)) because each EL client will require different environment variables and flags to be set when launching the client's container.
### Starting CL clients
### Starting CL clients
Once CL genesis data and keys have been created, the CL client nodes are started via [the CL client launchers](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/participant_network/cl). Just as with EL clients:
Once CL genesis data and keys have been created, the CL client nodes are started via [the CL client launchers](https://github.com/ethpandaops/ethereum-package/tree/main/src/participant_network/cl). Just as with EL clients:
- CL client launchers implement come with a `launch` method
- CL client launchers implement come with a `launch` method
- One CL client launcher exists per client type (e.g. [Nimbus](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/participant_network/cl/nimbus), [Lighthouse](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/participant_network/cl/lighthouse))
- One CL client launcher exists per client type (e.g. [Nimbus](https://github.com/ethpandaops/ethereum-package/tree/main/src/participant_network/cl/nimbus), [Lighthouse](https://github.com/ethpandaops/ethereum-package/tree/main/src/participant_network/cl/lighthouse))
- Launched CL node information is tracked in [a `cl_context` struct](https://github.com/kurtosis-tech/ethereum-package/blob/main/src/participant_network/cl/cl_context.star)
- Launched CL node information is tracked in [a `cl_context` struct](https://github.com/ethpandaops/ethereum-package/blob/main/src/participant_network/cl/cl_context.star)
There are only two major difference between CL client and EL client launchers. First, the `cl_client_launcher.launch` method also consumes an `el_context`, because each CL client is connected in a 1:1 relationship with an EL client. Second, because CL clients have keys, the keystore files are passed in to the `launch` function as well.
There are only two major difference between CL client and EL client launchers. First, the `cl_client_launcher.launch` method also consumes an `el_context`, because each CL client is connected in a 1:1 relationship with an EL client. Second, because CL clients have keys, the keystore files are passed in to the `launch` function as well.
...
@@ -79,10 +79,10 @@ There are only two major difference between CL client and EL client launchers. F
...
@@ -79,10 +79,10 @@ There are only two major difference between CL client and EL client launchers. F
After the Ethereum network is up and running, this package starts several auxiliary containers to make it easier to work with the Ethereum network. At time of writing, these are:
After the Ethereum network is up and running, this package starts several auxiliary containers to make it easier to work with the Ethereum network. At time of writing, these are:
-[Forkmon](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/el_forkmon), a "fork monitor" web UI for visualizing the CL clients' forks
-[Forkmon](https://github.com/ethpandaops/ethereum-package/tree/main/src/el_forkmon), a "fork monitor" web UI for visualizing the CL clients' forks
-[Prometheus](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/prometheus) for collecting client node metrics
-[Prometheus](https://github.com/ethpandaops/ethereum-package/tree/main/src/prometheus) for collecting client node metrics
-[Grafana](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/grafana) for visualizing client node metrics
-[Grafana](https://github.com/ethpandaops/ethereum-package/tree/main/src/grafana) for visualizing client node metrics
-[An ETH transaction spammer](https://github.com/kurtosis-tech/ethereum-package/tree/main/src/transaction_spammer), which [has been forked off](https://github.com/kurtosis-tech/tx-fuzz) of [Marius' transaction spammer code](https://github.com/MariusVanDerWijden/tx-fuzz) so that it can run as a container
-[An ETH transaction spammer](https://github.com/ethpandaops/ethereum-package/tree/main/src/transaction_spammer), which [has been forked off](https://github.com/kurtosis-tech/tx-fuzz) of [Marius' transaction spammer code](https://github.com/MariusVanDerWijden/tx-fuzz) so that it can run as a container
## [Testnet Verifier][testnet-verifier]
## [Testnet Verifier][testnet-verifier]
...
@@ -91,9 +91,9 @@ Once the Ethereum network is up and running, verification logic will be run to e
...
@@ -91,9 +91,9 @@ Once the Ethereum network is up and running, verification logic will be run to e
<!------------------------ Only links below here -------------------------------->
<!------------------------ Only links below here -------------------------------->
# This is set to match this file https://github.com/kurtosis-tech/ethereum-package/blob/main/static_files/genesis-generation-config/cl/config.yaml.tmpl#L11
# This is set to match this file https://github.com/ethpandaops/ethereum-package/blob/main/static_files/genesis-generation-config/cl/config.yaml.tmpl#L11