Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update docs/block-proposal.png based on mermaid #57

Merged
merged 1 commit into from
Mar 17, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
# mev-boost

[![Test status](https://github.com/flashbots/mev-boost/workflows/Go/badge.svg)](https://github.com/flashbots/mev-boost/actions?query=workflow%3A%22Go%22)
[![Discord](https://img.shields.io/discord/755466764501909692)](https://discord.gg/7hvTycdNcK)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)

A middleware server written in Go, that sits between an ethereum PoS consensus client and an execution client. It allows consensus clients to outsource block construction to third party block builders as well as fallback to execution clients. See [ethresearch post](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177/) for the high level architecture.

```mermaid
sequenceDiagram
Title: Block Proposal
consensus->>mev_boost: engine_forkchoiceUpdatedV1
mev_boost->>relays: engine_forkchoiceUpdatedV1
consensus-->+mev_boost: engine_forkchoiceUpdatedV1
mev_boost->>-relays: engine_forkchoiceUpdatedV1
Note over consensus: wait for allocated slot
consensus->>mev_boost: builder_getPayloadHeaderV1
consensus->>+mev_boost: builder_getPayloadHeaderV1
mev_boost->>relays: relay_getPayloadHeaderV1
Note over mev_boost: select most valuable payload
mev_boost-->>consensus: builder_getPayloadHeaderV1 response
mev_boost-->>-consensus: builder_getPayloadHeaderV1 response
Note over consensus: sign the block
consensus->>mev_boost: builder_proposeBlindedBlockV1
consensus->>+mev_boost: builder_proposeBlindedBlockV1
Note over mev_boost: identify payload source
mev_boost->>relays: relay_proposeBlindedBlockV1
Note over relays: validate signature
relays-->>mev_boost: relay_proposeBlindedBlockV1 response
mev_boost-->>consensus: builder_proposeBlindedBlockV1 response
mev_boost-->>-consensus: builder_proposeBlindedBlockV1 response
```

## Table of Contents
Expand Down
Binary file modified docs/block-proposal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.