Skip to content
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
3 changes: 3 additions & 0 deletions apis/relay/builder/blocks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ post:
- $ref: "../../../relay-oapi.yaml#/components/schemas/Capella.SubmitBlockRequest"
- $ref: "../../../relay-oapi.yaml#/components/schemas/Deneb.SubmitBlockRequest"
- $ref: "../../../relay-oapi.yaml#/components/schemas/Electra.SubmitBlockRequest"
- $ref: "../../../relay-oapi.yaml#/components/schemas/Fulu.SubmitBlockRequest"
examples:
bellatrix:
$ref: "../../../relay-oapi.yaml#/components/examples/Bellatrix.SubmitBlockRequest"
Expand All @@ -50,6 +51,8 @@ post:
$ref: "../../../relay-oapi.yaml#/components/examples/Deneb.SubmitBlockRequest"
electra:
$ref: "../../../relay-oapi.yaml#/components/examples/Electra.SubmitBlockRequest"
fulu:
$ref: "../../../relay-oapi.yaml#/components/examples/Fulu.SubmitBlockRequest"
application/octet-stream:
schema:
description: "SSZ serialized request. Use content type header to indicate that SSZ data is contained in the request body."
Expand Down
2 changes: 1 addition & 1 deletion beacon-apis
Submodule beacon-apis updated 112 files
2 changes: 1 addition & 1 deletion builder-specs
Submodule builder-specs updated 63 files
+7 −7 .github/workflows/deploy.yaml
+1 −0 .gitignore
+17 −0 Makefile
+33 −19 README.md
+34 −11 apis/builder/blinded_blocks.yaml
+66 −0 apis/builder/blinded_blocks_v2.yaml
+35 −1 apis/builder/header.yaml
+12 −6 apis/builder/validators.yaml
+1 −1 beacon-apis
+44 −2 builder-oapi.yaml
+26 −15 dist/oauth2-redirect.html
+2 −91 dist/swagger-ui-bundle.js
+1 −1 dist/swagger-ui-bundle.js.map
+3 −0 dist/swagger-ui-es-bundle-core.js
+1 −0 dist/swagger-ui-es-bundle-core.js.map
+3 −0 dist/swagger-ui-es-bundle.js
+1 −0 dist/swagger-ui-es-bundle.js.map
+2 −21 dist/swagger-ui-standalone-preset.js
+1 −1 dist/swagger-ui-standalone-preset.js.map
+1 −2 dist/swagger-ui.css
+1 −1 dist/swagger-ui.css.map
+1 −8 dist/swagger-ui.js
+1 −1 dist/swagger-ui.js.map
+ examples/bellatrix/execution_payload.ssz
+2 −2 examples/bellatrix/signed_blinded_beacon_block.json
+ examples/bellatrix/signed_blinded_beacon_block.ssz
+ examples/bellatrix/signed_builder_bid.ssz
+13 −0 examples/bellatrix/signed_validator_registrations.json
+ examples/bellatrix/signed_validator_registrations.ssz
+ examples/capella/execution_payload.ssz
+2 −2 examples/capella/signed_blinded_beacon_block.json
+ examples/capella/signed_blinded_beacon_block.ssz
+ examples/capella/signed_builder_bid.ssz
+3 −3 examples/deneb/execution_payload_and_blobs_bundle.json
+ examples/deneb/execution_payload_and_blobs_bundle.ssz
+2 −2 examples/deneb/signed_blinded_beacon_block.json
+ examples/deneb/signed_blinded_beacon_block.ssz
+ examples/deneb/signed_builder_bid.ssz
+47 −0 examples/electra/execution_payload_and_blobs_bundle.json
+ examples/electra/execution_payload_and_blobs_bundle.ssz
+7 −6 examples/electra/signed_blinded_beacon_block.json
+ examples/electra/signed_blinded_beacon_block.ssz
+3 −3 examples/electra/signed_builder_bid.json
+ examples/electra/signed_builder_bid.ssz
+173 −0 examples/fulu/execution_payload_and_blobs_bundle.json
+ examples/fulu/execution_payload_and_blobs_bundle.ssz
+222 −0 examples/fulu/signed_blinded_beacon_block.json
+ examples/fulu/signed_blinded_beacon_block.ssz
+60 −0 examples/fulu/signed_builder_bid.json
+ examples/fulu/signed_builder_bid.ssz
+5 −2 index.html
+13 −0 pyproject.toml
+70 −51 specs/bellatrix/builder.md
+120 −85 specs/bellatrix/validator.md
+7 −3 specs/capella/builder.md
+41 −24 specs/deneb/builder.md
+6 −5 specs/electra/builder.md
+49 −0 specs/fulu/builder.md
+24 −0 types/fulu/blobs_bundle.yaml
+10 −0 types/fulu/execution_payload_and_blobs_bundle.yaml
+46 −0 types/http.yaml
+60 −0 uv.lock
+3 −0 wordlist.txt
207 changes: 207 additions & 0 deletions examples/fulu/submit_block_request.json

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions relay-oapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ components:
$ref: "./types/deneb/requests.yaml#/Deneb/SubmitBlockRequest"
Electra.SubmitBlockRequest:
$ref: "./types/electra/requests.yaml#/Electra/SubmitBlockRequest"
Fulu.SubmitBlockRequest:
$ref: "./types/fulu/requests.yaml#/Fulu/SubmitBlockRequest"
ValidatorsResponse:
$ref: "./types/responses.yaml#/ValidatorsResponse"
DeliveredPayloadsResponse:
Expand All @@ -77,3 +79,5 @@ components:
$ref: "./examples/deneb/submit_block_request.json"
Electra.SubmitBlockRequest:
$ref: "./examples/electra/submit_block_request.json"
Fulu.SubmitBlockRequest:
$ref: "./examples/fulu/submit_block_request.json"
58 changes: 58 additions & 0 deletions specs/fulu/builder.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@


## Introduction

This document presents the `mev-boost` relay specification for Fulu.

[`mev-boost`](https://boost.flashbots.net/) is an out-of-protocol mechanism to
connect Ethereum Proof-of-Stake validators to the external block-building
market. The [validator-side](https://github.com/flashbots/mev-boost) API is
specified in the [builder specs](https://github.com/ethereum/builder-specs). The
[relay-side](https://github.com/flashbots/mev-boost-relay) API is specified here
in the relay specs.

## Constants

The following values are (non-configurable) constants used throughout the
specification.

| Name | Value |
| - | - |
| `FIELD_ELEMENTS_PER_EXT_BLOB` | `uint64(2**13)` (= 8192)| Number of field elements in a Reed-Solomon extended blob |


## Containers

### Modified `BlobsBundle`

```python
class BlobsBundle(Container):
commitments: List[KZGCommitment, MAX_BLOB_COMMITMENTS_PER_BLOCK]
# [Modified in Fulu:EIP7594]
proofs: List[KZGProof, FIELD_ELEMENTS_PER_EXT_BLOB * MAX_BLOB_COMMITMENTS_PER_BLOCK]
blobs: List[Blob, MAX_BLOB_COMMITMENTS_PER_BLOCK]
```

### Modified `SubmitBlockRequest`

*Note*: `SubmitBlockRequest` is modified to include the update in `BlobsBundle`.

```python
class SubmitBlockRequest(Container):
message: BidTrace
execution_payload: ExecutionPayload
# [Modified in Fulu:EIP7594]
blobs_bundle: BlobsBundle
execution_requests: ExecutionRequests
signature: BLSSignature
```

#### Modified `BuilderSubmitNewBlockRequest`

*Note*: `BuilderSubmitNewBlockRequest` is modified by replacing the `bellatrix`
field with a new `fulu` field.

```python
class BuilderSubmitNewBlockRequest(Container):
fulu: SubmitBlockRequest
```
6 changes: 6 additions & 0 deletions types/fulu/requests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Fulu:
SubmitBlockRequest:
allOf:
- $ref: '../bellatrix/requests.yaml#/Bellatrix/SubmitBlockRequestCommon'
- $ref: "../../builder-specs/types/fulu/execution_payload_and_blobs_bundle.yaml#/Fulu/ExecutionPayloadAndBlobsBundle"
- $ref: "../../beacon-apis/types/electra/execution_requests.yaml#/Electra/ExecutionRequests"
3 changes: 2 additions & 1 deletion wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,5 @@ vc
wei
deneb
kzg
electra
electra
fulu