Skip to content

Commit

Permalink
docs: enrich docs about mev (#131)
Browse files Browse the repository at this point in the history
Closes #128
  • Loading branch information
h4ck3rk3y authored Aug 16, 2023
1 parent 0789eed commit f9ddeec
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ This is a [Kurtosis Starlark Package][starlark-docs] that will:
1. Add [a transaction spammer](https://github.com/kurtosis-tech/tx-fuzz) that will repeatedly send transactions to the network
1. Launch [a consensus monitor](https://github.com/ralexstokes/ethereum_consensus_monitor) instance attached to the network
1. Optionally block until the Beacon nodes finalize an epoch (i.e. finalized_epoch > 0)
1. Optionally spin up a mock MEV environment or all components required for full MEV
1. Optionally spin up a beacon metrics gazer service
1. Optionally spin up grafana, prometheus to observe the network
1. Optionally spin up a testnet verifier

For much more detailed information about how the merge works in Ethereum testnets, see [this document](https://notes.ethereum.org/@ExXcnR0-SJGthjz1dwkA1A/H1MSKgm3F).

Expand Down Expand Up @@ -214,6 +218,34 @@ To configure the package behaviour, you can modify your `eth2-package-params.yam
You can find the latest Kiln compatible docker images here: https://notes.ethereum.org/@launchpad/kiln
## MEV
This allows you to spin up MEV related components. There are two types of MEV components this package supports namely `full` and `mock`.
To spin up `full` MEV; you can
```
kurtosis run github.com/kurtosis-tech/eth2-package '{"mev_type": "full"}'
```
If you look at the args expansion above you can see what other parameters can be passed for mev under `mev_params`. You can send extra parameters to the individual services or swap the image that they run with.
Running `full` MEV would spin up the following in addition to the network -
1. Builder & CL validator + beacon - A modified GETH client that builds the MEV efficient blocks. The CL validator and beacon clients are lighthouse clients configured to receive payloads from the relay
1. mev-relay-api - Services that provide APIs for (a) proposers, (b) block builders, (c) data
1. mev-relay-website - A website to monitor payloads that have been delivered
1. mev-relay-housekeeper - Updates known validators, proposer duties, and more in the background. Only a single instance of this should run.
1. mev-boost - We start one of this for every EL/Cl pair in the network including the builder that we spin up for MEV
1. mev-flood - Sends transactions that lead to blockValue being over 0 for payloads to be delivered
We have written a post describing the above architecture [here](https://docs.kurtosis.com/how-to-full-mev-with-eth2-package)
On the other hand `mock` mev spins up only the following -
1. `mock-builder` - a server that listens for builder api directives and responds with payloads built using an execution client
1. `mev-boost` - for every el/cl pair launched
## Developing On This Package
First, install prerequisites:
Expand Down

0 comments on commit f9ddeec

Please sign in to comment.