Skip to content

Latest commit

 

History

History
190 lines (126 loc) · 8.57 KB

README.md

File metadata and controls

190 lines (126 loc) · 8.57 KB

mev-boost

Goreport status Test status Contributor Covenant

mev-boost allows validators in Ethereum proof-of-stake to request blocks from a network of builders.

This project is part of the Flashbots research towards proposer/builder separation for Maximal Extractable Value (MEV) mitigation. mev-boost can connect to relays that aggregate multiple builders. The builders prepare full blocks, optimizing for MEV extraction and fair distribution of the rewards. The Consensus Layer client of the validator proposes the most profitable block received from mev-boost.


mev-boost service integration overview


See also:


Table of Contents

Background

MEV is a centralizing force on Ethereum. Unattended, the competition for MEV opportunities leads to consensus security instability and permissioned communication infrastructure between traders and block producers. This erodes neutrality, transparency, decentralization, and permissionlessness.

Flashbots is a research and development organization working on mitigating the negative externalities of MEV. Flashbots started as a builder specializing in MEV extraction in proof-of-work Ethereum to democratize access to MEV and make the most profitable blocks available to all miners. >90% of miners are outsourcing some of their block construction to Flashbots today.

mev-boost is a new middleware in which validators can offer their blockspace to not just Flashbots but other builders as well. This opens up the market to more builders and creates competition between them, leading to more revenue and choice for validators, and better censorship-resistance for Ethereum. From our early explorations in Ethereum proof-of-stake we found that “MEV can increase validator rewards by 75.3%, or give an APR of 12.86% rather than a non-MEV APR of 7.35% from staking eth.”

In the future, proposer/builder separation will be enshrined in the Ethereum protocol itself to further harden its trust model.

Read more in Why run mev-boost? and in the Frequently Asked Questions.

Installing

From source

Install the dependencies:

sudo apt install make gcc

Build & run:

make build
./mev-boost --help

From Docker image

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

docker pull flashbots/mev-boost:latest
docker run flashbots/mev-boost --help

Usage

First, install and run one of the supported consensus clients.

Kiln testnet

Here are general setup instructions for Kiln: https://notes.ethereum.org/@launchpad/kiln

Run mev-boost pointed at our Kiln builder+relay:

./mev-boost -kiln -relays https://0xb5246e299aeb782fbc7c91b41b3284245b1ed5206134b0028b81dfb974e5900616c67847c2354479934fc4bb75519ee1@builder-relay-kiln.flashbots.net

Ropsten testnet

Run mev-boost pointed at our Ropsten builder+relay:

 ./mev-boost -ropsten -relays https://0xb124d80a00b80815397b4e7f1f05377ccc83aeeceb6be87963ba3649f1e6efa32ca870a88845917ec3f26a8e2aa25c77@builder-relay-ropsten.flashbots.net

Sepolia testnet

Run mev-boost pointed at our Sepolia builder+relay:

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

test-cli

test-cli is a utility to execute all proposer requests against mev-boost+relay. See also the test-cli readme.

Consensus Clients Implementation Status

Project Status
Teku Completed, ready for testing (#156)
Lighthouse Advanced (#160)
Lodestar Advanced (#157)
Nimbus In progress (#159)
Prysm In progress (#158)

Notes for implementers.

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. Join us in this repository while we explore the remaining open research questions with all the relevant organizations in the ecosystem.

API

mev-boost implements the latest Builder Specification.

sequenceDiagram
    participant consensus
    participant mev_boost
    participant relays
    Title: Block Proposal
    Note over consensus: validator starts up
    consensus->>mev_boost: registerValidator
    mev_boost->>relays: registerValidator
    Note over consensus: wait for allocated slot
    consensus->>mev_boost: getHeader
    mev_boost->>relays: getHeader
    relays-->>mev_boost: getHeader response
    Note over mev_boost: verify response matches expected
    Note over mev_boost: select best payload
    mev_boost-->>consensus: getHeader response
    Note over consensus: sign the header
    consensus->>mev_boost: submitBlindedBlock
    Note over mev_boost: identify payload source
    mev_boost->>relays: submitBlindedBlock
    Note over relays: validate signature
    relays-->>mev_boost: submitBlindedBlock response
    Note over mev_boost: verify response matches expected
    mev_boost-->>consensus: submitBlindedBlock response
Loading

Maintainers

Contributing

Flashbots is a research and development collective working on mitigating the negative externalities of decentralized economies. We contribute with the larger free software community to illuminate the dark forest.

You are welcome here <3.

  • If you have a question, feedback or a bug report for this project, please open a new Issue.
  • If you would like to contribute with code, check the CONTRIBUTING file for further info about the development environment.
  • We just ask you to be nice. Read our code of conduct.

Security

If you find a security vulnerability on this project or any other initiative related to Flashbots, please let us know sending an email to [email protected].

License

The code in this project is free software under the MIT License.


Made with ☀️ by the ⚡🤖 collective.