ChainSafe / ChainSafe/lodestar
Bid inclusion event PoC implementation tracker
- 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
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