feat(mev): add custom mev_type with component-based relay/sidecar/builder resolution#1384
Open
JasonVranek wants to merge 13 commits into
Open
feat(mev): add custom mev_type with component-based relay/sidecar/builder resolution#1384JasonVranek wants to merge 13 commits into
JasonVranek wants to merge 13 commits into
Conversation
relay/sidecar/builder resolution Decomposes mev_type into three independent components (relay, sidecar, builder) via a new mev_resolver module. Adds a `custom` mev_type that accepts arbitrary component combinations (e.g., helix relay + commit-boost sidecar). Supports inline helix_relay_config and commit_boost_config overrides so users can supply full relay/PBS configs without template changes. Removes the hardcoded website block from the helix default template and launcher since it's unused in devnet/CI.
Signed-off-by: JasonVranek <jasonvranek@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This adds
mev_type: custom, which lets users mix and match relay, sidecar, and builder components arbitrarily without patching Starlark code. Previously, each combination (helix relay + commit-boost, etc.) required a new hardcodedmev_type.Motivation
My use case requires testing custom Commit-Boost and Helix images against each other (each with custom configs). #1355 allows you to pass a custom CB config but there still are limitations:
mev_type: helixtype hardcoded mevboost as the sidecarmev_type: commit-boosttype hardcoded flashbots as the relayRather than trying to launch another MEV-Boost that hardcoded my desired combo, I opted to try to generalize to
mev_type: customso that a user can specify their own MEV permutations. Given that Gloas is coming, I also opted to support amev_type: epbs, which is syntactic sugar over formev_relay: none,mev_sidecar: none, andmev_builder: buildoor(hopefully useful but this also serves to demo the flexibility of the refactor).What changed
New: component-based MEV resolution (
src/package_io/mev_resolver.star)mev_typenow decomposes into three independent pieces:mev_relay— which relay(s) to launch (flashbots,helix,mev-rs,mock,none)mev_sidecar— which per-validator PBS service (mev-boost,commit-boost,mev-rs,none)mev_builder— which block builder (flashbots,mev-rs,buildoor,mock,none)Presets (
flashbots,helix,commit-boost, etc.) are expanded into components internally and still work exactly as before.mev_type: customlets users specify all three explicitly like:Each component can also override its respective preset default:
Inline config overrides
Users can now supply full
helix_relay_configinline in their Kurtosis YAML. This mimics #1355 but for Helix configs. See.github/tests/mev-custom-helix-cb.yamlas a reference.Helix launcher cleanup
wait="60s"readiness checks on the endpoint (4040) and admin (4050) portsNew:
mev_type: epbspresetSyntactic sugar for ePBS-native block building with no relay infrastructure:
Equivalent to
mev_type: customwithmev_relay: none,mev_sidecar: none,mev_builder: buildoor.Backward compatibility
mev_type: flashbotsmev_type: helixmev_type: commit-boostmev_type: mev-rsmev_type: mockmev_type: buildoor