flashbots / flashbots/mev-boost-relay

Deneb Upgrade and Clean Up

Open
#489 0 comments 0 reactions 1 assignee Claimed by @avalonche View on GitHub
Dominant language
Go
Stars
498
Forks
147
PR merge metrics
No merged PRs in 30d

Description

# Task Tracking

Issue tracking for the Deneb Fork Upgrade and code clean up for mev-boost-relay. Changes tracked in the [`develop`](https://github.com/flashbots/mev-boost-relay/tree/develop) branch, NOT to be used for mainnet.

## Clean Up

**Removing wrapper types**

In `/common/types.go`:
* [x] Remove `SignedBlindedBeaconBlock` wrapper type https://github.com/flashbots/mev-boost-relay/pull/482
* [x] Remove `SignedBeaconBlock` wrapper type https://github.com/flashbots/mev-boost-relay/pull/483
* [x] Remove `VersionedExecutionPayload` wrapper type https://github.com/flashbots/mev-boost-relay/pull/475
* [x] Remove `BuilderSubmitBlockRequest` wrapper type https://github.com/flashbots/mev-boost-relay/pull/485
* [x] Remove `GetHeaderResponse` wrapper type https://github.com/flashbots/mev-boost-relay/pull/477

**Migrating to attestant types**

* [x] Upgrade `go-boost-utils` https://github.com/flashbots/mev-boost-relay/pull/488
* [x] Consistency across conflicting package names (see [here](https://github.com/flashbots/mev-boost-relay/pull/488#discussion_r1277903391)) https://github.com/flashbots/mev-boost-relay/pull/510

## Deneb
* [x] Clean up deprecated forks and add Deneb fork versions https://github.com/flashbots/mev-boost-relay/pull/486
* [x] Update `DomainBeaconProposer` and signatures with Deneb support https://github.com/flashbots/mev-boost-relay/pull/495
* [x] Consolidate the type conversion functions in `common/types_spec.go`
* [x] Update `common/types_spec.go` with Deneb types and conversion to blinded blob bundles https://github.com/flashbots/mev-boost-relay/pull/496
* [x] Refactor `VersionedSubmitBlockRequest` `VersionedSignedBeaconBlock` and `VersionedSignedBlindedBeaconBlock` with custom marshalling and unmashalling https://github.com/flashbots/mev-boost-relay/pull/493
* [x] Update marshalling for `BuilderBlockValidationRequest` and `flashbots_validateBuilderSubmissionV2` jsonrpc request to handle Deneb
* [x] Upgrade to `publishBlockV2` and add `Eth-Consensus-Version` header to publishBlock endpoint https://github.com/flashbots/mev-boost-relay/pull/492
* [x] Update `handleGetHeader`, `handleGetPayload` and `handleSubmitBlock` to handle Deneb types
* [x] Upgrade storage (db and redis) to handle Deneb payloads
* [x] Update `payload_attributes` with `parentBeaconBlockRoot` and validate in the block submission

## Dependencies

mev-boost-relay depends on the following changes and they are all still in branch form and / or not implemented yet. `go.mod` will need to be updated after the PRs are merged to upstream and point to the latest dependency.

### go-eth2-client
- Add `SignedBlockContents` types for Deneb `publishBlockV2` endpoint https://github.com/attestantio/go-eth2-client/pull/66
- `VersionedSignedBlockContents` and `VersionedSignedBlindedBlockContents` types https://github.com/attestantio/go-eth2-client/pull/67

### go-builder-client
- Fixing the ssz encoding for blob bundles https://github.com/attestantio/go-builder-client/pull/18
- Adding the builder bid structs to attestant https://github.com/attestantio/go-builder-client/pull/17
- Adding Deneb to the versioned struct for the signed header bid https://github.com/attestantio/go-builder-client/pull/19
- `VersionedSubmitBlockRequest` types https://github.com/attestantio/go-builder-client/pull/15
- Add versioned submit block response for the blob bundles https://github.com/attestantio/go-builder-client/pull/20

### go-boost-utils
- Util functions to calculate the block hash and conversions https://github.com/flashbots/go-boost-utils/pull/87
- Will need to replace https://github.com/MariusVanDerWijden/go-ethereum/tree/4844-devnet-6 with latest geth release after the changes are merged

## Known issues and bugs
- https://github.com/flashbots/mev-boost-relay/issues/525

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.