Skip to content

Commit

Permalink
Various updates to Readme - on nmoreau's readme-update-dev (#339)
Browse files Browse the repository at this point in the history
* Update README.md (#334)

* Readme Usage updat

* Add security audit, make clone section more explicit

* update MEV vs mev, adjust language, typos

* remove The Plan

* correct line 17 capitalization

* Add space to line 182

Co-authored-by: shana <[email protected]>

* add security link to line 20

* Rmve TOC header from line 40

* Remve checkout release instructions from line 111

* add beacon node to distinction to ln 16

* update line 17, change markdown of line 47-49 titles

* remove mrkdown line 205 by chris

Co-authored-by: Chris Hager <[email protected]>

* getPayload only to origin relays (#342)

* v1.3.2

* v1.3.3-dev

* Improved documentation and checklist for releasing a new version (#343)

* improved documentation around release process

* RELEASE.md

* readme: link to remroy's guide (#344)

* Print relays/monitors on individual lines (#349)

* release checklist: create a signed tag (#346)

* Add gofumpt to lint checks (#347)

* Remove unnecessary log.withField calls (#350)

Co-authored-by: Chris Hager <[email protected]>

* fix the spelling of 'Rémy Roy'

* line 81 header

* address Chris's comments

Co-authored-by: Nicolas Moreau <[email protected]>
Co-authored-by: shana <[email protected]>
Co-authored-by: Chris Hager <[email protected]>
Co-authored-by: Justin Traglia <[email protected]>
  • Loading branch information
5 people authored Sep 25, 2022
1 parent 19de273 commit af2741f
Showing 1 changed file with 42 additions and 33 deletions.
75 changes: 42 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,42 +13,50 @@ With MEV-Boost, validators can access blocks from a marketplace of builders. Bui

## How does MEV-Boost work?

PoS node operators must run three pieces of software: a validator client, a consensus client, and an execution client. MEV-boost is a sidecar for the beacon node - a separate piece of open source software, which queries and outsources block-building to a network of builders. Block builders prepare full blocks, optimizing for MEV extraction and fair distribution of rewards. They then submit their blocks to relays.

PoS node operators must run three pieces of software: a validator client, consensus client, and an execution client. MEV-boost is a sidecar for the Consensus Client, a separate piece of open source software, which queries and outsources block-building to a network of builders. Block builders prepare full blocks, optimizing for MEV extraction and fair distribution of rewards. They then submit their blocks to relays.
Relays aggregate blocks from **multiple** builders in order to select the block with the highest fees. One instance of MEV-boost can be configured by a validator to connect to **multiple** relays. The consensus layer client of a validator proposes the most profitable block received from MEV-boost to the Ethereum network for attestation and block inclusion.

Relays aggregate blocks from **multiple** builders in order to select the block with the highest fees. One instance of MEV-boost can be configured by a validator to connect to **multiple** relays. The Consensus Layer client of a validator proposes the most profitable block received from MEV-boost to the Ethereum network for attestation and block inclusion.
A MEV-Boost security assessment was conducted on 2022-06-20 by [lotusbumi](https://github.com/lotusbumi). Additional audits of surrounding infrastructure, such as the Flashbots Relay, are currently underway. Additional information can be found in the [Security](#security) section of this repository.


![mev-boost service integration overview](https://raw.githubusercontent.com/flashbots/mev-boost/main/docs/mev-boost-integration-overview.png)
![MEV-Boost service integration overview](https://raw.githubusercontent.com/flashbots/mev-boost/main/docs/mev-boost-integration-overview.png)

## Who can run MEV-Boost?

MEV-Boost is a piece of software that any PoS Ethereum node operator (including solo validators) can run as part of their Beacon Client software. It is compatible with any Ethereum consensus client. Support and installation instructions for each client can be found [here](#installing).


---

See also:

* [boost.flashbots.net](https://boost.flashbots.net)
* [mev-boost Docker images](https://hub.docker.com/r/flashbots/mev-boost)
* [MEV-Boost Docker images](https://hub.docker.com/r/flashbots/mev-boost)
* [wiki](https://github.com/flashbots/mev-boost/wiki) & [troubleshooting guide](https://github.com/flashbots/mev-boost/wiki/Troubleshooting)
* [mev-boost relay source code](https://github.com/flashbots/mev-boost-relay)
* [MEV-Boost relay source code](https://github.com/flashbots/mev-boost-relay)
* Specs:
* [Builder API](https://ethereum.github.io/builder-specs)
* [Flashbots Relay API](https://flashbots.notion.site/Relay-API-Spec-5fb0819366954962bc02e81cb33840f5)


# Table of Contents

- [Background](#background)
- [Installing](#installing)
- [Binaries](#binaries)
- [From source](#from-source)
- [`go install`](#go-install)
- [Clone and Build](#clone-and-build)
- [From Docker image](#from-docker-image)
- [Systemd configuration](#systemd-configuration)
- [Troubleshooting](#troubleshooting)
- [Usage](#usage)
- [The Plan](#the-plan)
- [Mainnet](#mainnet)
- [Goerli testnet](#goerli-testnet)
- [Sepolia testnet](#sepolia-testnet)
- [`test-cli`](#test-cli)
- [API](#api)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [Security](#security)
- [Audits](#audits)
- [License](#license)

# Background
Expand All @@ -61,7 +69,7 @@ Flashbots is a research and development organization working on mitigating the n

In the future, [proposer/builder separation](https://ethresear.ch/t/two-slot-proposer-builder-separation/10980) will be enshrined in the Ethereum protocol itself to further harden its trust model.

Read more in [Why run mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) and in the [Frequently Asked Questions](https://github.com/flashbots/mev-boost/wiki/Frequently-Asked-Questions).
Read more in [Why run MEV-Boost?](https://writings.flashbots.net/writings/why-run-mevboost/) and in the [Frequently Asked Questions](https://github.com/flashbots/mev-boost/wiki/Frequently-Asked-Questions).

# Installing

Expand All @@ -81,39 +89,42 @@ Requires [Go 1.18+](https://go.dev/doc/install).

### `go install`

Install mev-boost with `go install`:
Install MEV-Boost with `go install`:

```bash
go install github.com/flashbots/mev-boost@latest
mev-boost -help
```

### Clone & build
### Clone and Build

Ensure you are downloading the most updated MEV-Boost release. Releases are available at https://github.com/flashbots/mev-boost/releases

clone the repository and build it:

```bash
git clone https://github.com/flashbots/mev-boost.git
cd mev-boost
# Build most recent version of MEV-Boost
make build
# Use build-portable if the standard build crashes on startup
make build-portable

# Show the help
# Show help. This confirms MEV-Boost is able to start
./mev-boost -help
```

## From Docker image

We maintain a mev-boost Docker images at https://hub.docker.com/r/flashbots/mev-boost
We maintain a MEV-Boost Docker images at https://hub.docker.com/r/flashbots/mev-boost

- [Install Docker Engine](https://docs.docker.com/engine/install/)
- Pull & run the latest image:

```bash
# Get the default mev-boost image
# Get the default MEV-Boost image
docker pull flashbots/mev-boost:latest

# Get the portable mev-boost image
# Get the portable MEV-Boost image
docker pull flashbots/mev-boost:latest-portable

# Run it
Expand All @@ -122,7 +133,7 @@ docker run flashbots/mev-boost -help

## Systemd configuration

You can run mev-boost with a systemd config (`/etc/systemd/system/mev-boost.service`) like this:
You can run MEV-Boost with a systemd config (`/etc/systemd/system/mev-boost.service`) like this:

```ini
[Unit]
Expand All @@ -148,7 +159,7 @@ WantedBy=multi-user.target

## Troubleshooting

If mev-boost crashes with [`"SIGILL: illegal instruction"`](https://github.com/flashbots/mev-boost/issues/256) then you need to use a portable build:
If MEV-Boost crashes with [`"SIGILL: illegal instruction"`](https://github.com/flashbots/mev-boost/issues/256) then you need to use a portable build:

You can either use a [portable Docker image](https://hub.docker.com/r/flashbots/mev-boost/tags), or install/build the portable build like this:

Expand All @@ -163,37 +174,40 @@ make build-portable

# Usage

A single mev-boost instance can be used by multiple beacon nodes. Note that aside from running mev-boost, you will need to configure your beacon node to connect to mev-boost and your validator to allow it to register with the relay. This configuration varies and a guide for each consensus client can be found on the [MEV-boost website](https://boost.flashbots.net/#block-356364ebd7cc424fb524428ed0134b21).
A single MEV-Boost instance can be used by multiple beacon nodes and validators.

Aside from running MEV-Boost on your local network, you must configure:
* individual **beacon nodes** to connect to MEV-Boost. Beacon Node configuration varies by Consensus client. Guides for each client can be found on the [MEV-boost website](https://boost.flashbots.net/#block-356364ebd7cc424fb524428ed0134b21).
* individual **validators** to configure a preferred relay selection. Note: validators should take precautions to only connect to trusted relays. Read more about [the role of relays here](https://docs.flashbots.net/flashbots-mev-boost/relays). Lists of available relays are maintained by [Ethstaker](https://github.com/remyroy/ethstaker/blob/main/MEV-relay-list.md) and [Lido](https://research.lido.fi/t/lido-on-ethereum-call-for-relay-providers/2844).


### Mainnet

Run mev-boost pointed at our [Mainnet Relay](https://boost-relay.flashbots.net/):
Run MEV-Boost pointed at our [Mainnet Relay](https://boost-relay.flashbots.net/):

```
./mev-boost -mainnet -relay-check -relays https://0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae@boost-relay.flashbots.net
```

### Goerli testnet

Run mev-boost pointed at our [Goerli Relay](https://builder-relay-goerli.flashbots.net/):
Run MEV-Boost pointed at our [Goerli Relay](https://builder-relay-goerli.flashbots.net/):

```
./mev-boost -goerli -relay-check -relays https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@builder-relay-goerli.flashbots.net
```

### Sepolia testnet

Run mev-boost pointed at our [Sepolia Relay](https://builder-relay-sepolia.flashbots.net/):
Run MEV-Boost pointed at our [Sepolia Relay](https://builder-relay-sepolia.flashbots.net/):

```
./mev-boost -sepolia -relay-check -relays https://0x845bd072b7cd566f02faeb0a4033ce9399e42839ced64e8b2adcfc859ed1e8e1a5a293336a49feac6d9a5edb779be53a@builder-relay-sepolia.flashbots.net
```

## `test-cli`

#### `test-cli`

`test-cli` is a utility to execute all proposer requests against mev-boost+relay. See also the [test-cli readme](cmd/test-cli/README.md).
`test-cli` is a utility to execute all proposer requests against MEV-Boost + relay. See also the [test-cli readme](cmd/test-cli/README.md).


# API
Expand Down Expand Up @@ -226,17 +240,12 @@ sequenceDiagram
mev_boost-->>consensus: submitBlindedBlock response
```

# The Plan

`mev-boost` is the next step on our exploration towards a trustless and decentralized MEV market. It is a service developed in collaboration with the Ethereum developers and researchers.

The roadmap, expected deliveries and estimated deadlines are described in [the plan](https://github.com/flashbots/mev-boost/wiki/The-Plan-(tm)). Join us in this repository while we explore the remaining [open research questions](https://github.com/flashbots/mev-boost/wiki/Research#open-questions) with all the relevant organizations in the ecosystem.

# Maintainers

- [@metachris](https://github.com/metachris)
- [@Ruteri](https://github.com/Ruteri)
- [@elopio](https://github.com/elopio)
- [@kailinr](https://github.com/kailinr)

# Contributing

Expand Down

0 comments on commit af2741f

Please sign in to comment.