ChainSafe / ChainSafe/lodestar

Bid inclusion event PoC implementation tracker

Open
#10,020 0 comments 0 reactions 0 assignees View on GitHub
spec-gloas
Dominant language
TypeScript
Stars
1.4k
Forks
483
Avg merge
1d 16h
Merged PRs (30d)
150

Description

This issue tracks competing PoCs for surfacing bid-inclusion data over SSE, either implemented within a wider-purpose event like `block` or as a separate event.

These PRs are supposed to help us settle on the spec, and later we might merge (only) one of them.

## List View
- [#9854](https://github.com/ChainSafe/lodestar/pull/9854) — extend `block` in place: adds `block_hash` + `builder_index` as fork-conditional fields on the existing `block` event.
- [#9875](https://github.com/ChainSafe/lodestar/pull/9875) — new `bid_included` event (name not settled): emits a `block` (`blockRootHex`) field + `SignedExecutionPayloadBid`.
- [#9876](https://github.com/ChainSafe/lodestar/pull/9876) — new `included_execution_payload_bid` event: same payload shape as the existing `execution_payload_bid` event, i.e. emits only `SignedExecutionPayloadBid`.
- [#9896](https://github.com/ChainSafe/lodestar/pull/9896) — `block_v2`: new versioned event alongside `block`, adding `block_hash` + `builder_index` to the `block` event shape.

## Table View
| PR | Delivery | Payload | Incl. block root? |
|----|----------|---------|-------------------|
| [#9854](https://github.com/ChainSafe/lodestar/pull/9854) | Extend `block` in place (fork-conditional fields) | Minimal: `block_hash` + `builder_index` | Inherent (is the block event) |
| [#9896](https://github.com/ChainSafe/lodestar/pull/9896) | New versioned `block_v2` alongside `block` | Minimal: `block_hash` + `builder_index` | Inherent (is the block event) |
| [#9875](https://github.com/ChainSafe/lodestar/pull/9875) | Dedicated `bid_included` event (name TBD) - Initial Version | Minimal: `block_hash` + `builder_index` | Yes — explicit `block` (`blockRootHex`) |
| [#9875](https://github.com/ChainSafe/lodestar/pull/9875) | Dedicated `bid_included` event (name TBD) - New Version | Full `SignedExecutionPayloadBid` | Yes — explicit `block` (`blockRootHex`) |
| [#9876](https://github.com/ChainSafe/lodestar/pull/9876) | Dedicated event (`included_execution_payload_bid`) | Full `SignedExecutionPayloadBid` | No — mirrors `execution_payload_bid` exactly |

Notes:
- Older version of #9875 is accessible by simply dropping a few commits from the new version.
- Need to make sure that the version we choose skips self built blocks, as this is not applied in each one.
- Consider handling `heze.ExecutionPayloadBid` depending on a chosen implementation version.

Contributor guide

Open the contributing guide

Research direction

Review the competing implementations in PRs #9854, #9875, #9876, and #9896, comparing their event names, payloads, block-root handling, and treatment of self-built blocks. Use the existing event behavior and the listed notes as the starting point. Done means selecting and documenting one bid-inclusion event design, including how heze.ExecutionPayloadBid is handled.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, blockchain
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.