Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: parameterize mev-boost args #400

Merged
merged 41 commits into from
Feb 20, 2024

Conversation

bharath-123
Copy link
Contributor

@bharath-123 bharath-123 commented Dec 10, 2023

Adds 2 new fields to the config file under the mev_params field:
mev_boost_image: <The mev-boost image, default is flashbots/mev-boost>
mev_boost_args: <The args of mev-boost. The default params are ["mev-boost", "--relay-check"]>

The behaviour is such that, mev-boost-args overrides all the args of mev-boost. No extra params are added.

Resolves #289

@bharath-123 bharath-123 changed the title parameterize mev-boost args feat: parameterize mev-boost args Dec 10, 2023
@barnabasbusa
Copy link
Contributor

Could you please also update the readme?

@bharath-123
Copy link
Contributor Author

will do

@bharath-123
Copy link
Contributor Author

done @barnabasbusa

README.md Outdated Show resolved Hide resolved
main.star Outdated Show resolved Hide resolved
src/package_io/input_parser.star Show resolved Hide resolved
@barnabasbusa
Copy link
Contributor

@parithosh can you please take a look at this, and ensure this satisfies #289 ?

@parithosh
Copy link
Member

@parithosh can you please take a look at this, and ensure this satisfies #289 ?

on it

@parithosh
Copy link
Member

Hmm, here's an example of a new mev-boost implimentation: https://github.com/mevsharp/mevsharp

To configure it, i can theoretically do this:

  mev_boost_image: mevsharp/mevsharp:latest
  mev_boost_extra_args: ["mevsharp","--genesis-fork-version=0x10000038","...."]

The issue is that since its a total override, i'd need to know the relay address in advance right? Or is the mev launcher auto-adding it?

I think the only way it can work neatly is if the mevsharp team adds config via env vars. Then we can set the env var similar to how it is today: "RELAYS": mev_boost_launcher.relay_end_points[0], to all images and we can override everything with ease.

Am i missing something or shall i go ahead and make this request of the mevsharp team?

@shakeshar
Copy link

Hmm, here's an example of a new mev-boost implimentation: https://github.com/mevsharp/mevsharp

To configure it, i can theoretically do this:

  mev_boost_image: mevsharp/mevsharp:latest
  mev_boost_extra_args: ["mevsharp","--genesis-fork-version=0x10000038","...."]

The issue is that since its a total override, i'd need to know the relay address in advance right? Or is the mev launcher auto-adding it?

I think the only way it can work neatly is if the mevsharp team adds config via env vars. Then we can set the env var similar to how it is today: "RELAYS": mev_boost_launcher.relay_end_points[0], to all images and we can override everything with ease.

Am i missing something or shall i go ahead and make this request of the mevsharp team?

We are testing this in the dev branch at the moment. if there are any specific/required variables you need please let me know
Commit: mevsharp/mevsharp@88520c3

@parithosh
Copy link
Member

Hmm, here's an example of a new mev-boost implimentation: https://github.com/mevsharp/mevsharp
To configure it, i can theoretically do this:

  mev_boost_image: mevsharp/mevsharp:latest
  mev_boost_extra_args: ["mevsharp","--genesis-fork-version=0x10000038","...."]

The issue is that since its a total override, i'd need to know the relay address in advance right? Or is the mev launcher auto-adding it?
I think the only way it can work neatly is if the mevsharp team adds config via env vars. Then we can set the env var similar to how it is today: "RELAYS": mev_boost_launcher.relay_end_points[0], to all images and we can override everything with ease.
Am i missing something or shall i go ahead and make this request of the mevsharp team?

We are testing this in the dev branch at the moment. if there are any specific/required variables you need please let me know Commit: mevsharp/mevsharp@88520c3

Thanks!

Would be great to support the same ones as flashbots: https://github.com/flashbots/mev-boost/blob/bdabd0e6181990f9c3e0fef9f750b40f71d50c6c/cli/main.go#L35

@shakeshar
Copy link

Hmm, here's an example of a new mev-boost implimentation: https://github.com/mevsharp/mevsharp
To configure it, i can theoretically do this:

  mev_boost_image: mevsharp/mevsharp:latest
  mev_boost_extra_args: ["mevsharp","--genesis-fork-version=0x10000038","...."]

The issue is that since its a total override, i'd need to know the relay address in advance right? Or is the mev launcher auto-adding it?
I think the only way it can work neatly is if the mevsharp team adds config via env vars. Then we can set the env var similar to how it is today: "RELAYS": mev_boost_launcher.relay_end_points[0], to all images and we can override everything with ease.
Am i missing something or shall i go ahead and make this request of the mevsharp team?

We are testing this in the dev branch at the moment. if there are any specific/required variables you need please let me know Commit: mevsharp/mevsharp@88520c3

Thanks!

Would be great to support the same ones as flashbots: https://github.com/flashbots/mev-boost/blob/bdabd0e6181990f9c3e0fef9f750b40f71d50c6c/cli/main.go#L35

I followed mev-boost variables so basically Im using the same environment names. Please give it another try and don't hesitate to get back to me if you have any further concerns :)

/Stefan

github-actions bot and others added 14 commits February 18, 2024 16:54
🤖 I have created a release *beep* *boop*
---


##
[1.3.0](ethpandaops/ethereum-package@1.2.0...1.3.0)
(2024-01-22)


### Features

* add assertoor to additional toolings
([ethpandaops#419](ethpandaops#419))
([76dde3e](ethpandaops@76dde3e))
* add devnets support
([ethpandaops#384](ethpandaops#384))
([2bae099](ethpandaops@2bae099))
* add pitfalls for persistent storage as a warning
([ethpandaops#441](ethpandaops#441))
([69da8f0](ethpandaops@69da8f0))
* add support for testnets
([ethpandaops#437](ethpandaops#437))
([5584cc8](ethpandaops@5584cc8))
* Add Xatu Sentry
([ethpandaops#466](ethpandaops#466))
([b9523cb](ethpandaops@b9523cb))
* enable checkpoint sync for devnets
([ethpandaops#448](ethpandaops#448))
([b367cfe](ethpandaops@b367cfe))
* enable persistence
([ethpandaops#422](ethpandaops#422))
([8d40056](ethpandaops@8d40056))
* enable syncing ephemery
([ethpandaops#459](ethpandaops#459))
([f8289cb](ethpandaops@f8289cb))
* enable syncing shadowforks
([ethpandaops#457](ethpandaops#457))
([313a586](ethpandaops@313a586))


### Bug Fixes

* add CL genesis delay to final genesis time
([ethpandaops#469](ethpandaops#469))
([e36027b](ethpandaops@e36027b))
* add prysm-multiarch upstream image
([ethpandaops#451](ethpandaops#451))
([6feba23](ethpandaops@6feba23))
* added supprot for boot enr file
([ethpandaops#456](ethpandaops#456))
([fd26e5c](ethpandaops@fd26e5c))
* bump max mem limit for nimbus on holesky
([ethpandaops#439](ethpandaops#439))
([fb84787](ethpandaops@fb84787))
* dora template fix
([ethpandaops#452](ethpandaops#452))
([f9243ea](ethpandaops@f9243ea))
* enable ws for geth
([ethpandaops#446](ethpandaops#446))
([d5bf451](ethpandaops@d5bf451))
* erigon chain should be set to dev
([ethpandaops#447](ethpandaops#447))
([1f40d84](ethpandaops@1f40d84))
* erigon command arg
([ethpandaops#454](ethpandaops#454))
([5ae56a1](ethpandaops@5ae56a1))
* fix typo
([ethpandaops#440](ethpandaops#440))
([933a313](ethpandaops@933a313))
* guid fix for besu/teku/erigon/nimbus
([ethpandaops#443](ethpandaops#443))
([2283464](ethpandaops@2283464))
* increase db size for geth
([ethpandaops#453](ethpandaops#453))
([0c67998](ethpandaops@0c67998))
* logging bug
([ethpandaops#462](ethpandaops#462))
([f6098a1](ethpandaops@f6098a1))
* parallel key generation
([ethpandaops#423](ethpandaops#423))
([060fd8f](ethpandaops@060fd8f))
* re-add networkid
([ethpandaops#464](ethpandaops#464))
([4d96409](ethpandaops@4d96409))
* typo
([ethpandaops#445](ethpandaops#445))
([e61c58a](ethpandaops@e61c58a))
* Update nethermind to expose host on 0.0.0.0
([ethpandaops#467](ethpandaops#467))
([0bd29dd](ethpandaops@0bd29dd))
* use all enrs for nimbus via bootstrap file
([ethpandaops#450](ethpandaops#450))
([bb5a0c1](ethpandaops@bb5a0c1))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
go-verkle depns changes, we need this bump to be compatible for the
current verkle tests
addresses ethpandaops#372

---------

Co-authored-by: franjoespejo <franjosepejo@github.com>
Improves the built-in assertoor tests to make them more resilient
against non-critical failures.
Very minor addition to enable running suave-enabled geth (a.k.a.
`suave-execution-geth`) instead of the stock geths.
Co-authored-by: pk910 <github@pk910.de>
Co-authored-by: parithosh <parithosh.jayanthi@ethereum.org>
🤖 I have created a release *beep* *boop*
---


##
[1.4.0](ethpandaops/ethereum-package@1.3.0...1.4.0)
(2024-02-09)


### Features

* Add suave-enabled geth support
([ethpandaops#489](ethpandaops#489))
([631eaf3](ethpandaops@631eaf3))
* add support for custom assertoor images & use assertoor image with
verkle support for verkle chains
([ethpandaops#483](ethpandaops#483))
([2d8a143](ethpandaops@2d8a143))
* add verkle-gen-devnet-3
([ethpandaops#487](ethpandaops#487))
([1e543e8](ethpandaops@1e543e8))
* blockscout support with sc verification
([ethpandaops#481](ethpandaops#481))
([b3418cf](ethpandaops@b3418cf))
* enable custom resource limit per network
([ethpandaops#471](ethpandaops#471))
([5db6611](ethpandaops@5db6611))
* enable shadowforking
([ethpandaops#475](ethpandaops#475))
([b788b18](ethpandaops@b788b18))
* improve built-in assertoor tests
([ethpandaops#488](ethpandaops#488))
([d596699](ethpandaops@d596699))
* we no longer need 4788 deployer
([ethpandaops#485](ethpandaops#485))
([abdfc2c](ethpandaops@abdfc2c))


### Bug Fixes

* add more prefund addresses for verkle-gen
([ethpandaops#482](ethpandaops#482))
([01868fc](ethpandaops@01868fc))
* bump verkle genesis generator
([ethpandaops#486](ethpandaops#486))
([79dc5e1](ethpandaops@79dc5e1))
* use latest stable image for assertoor
([ethpandaops#484](ethpandaops#484))
([bbe0b16](ethpandaops@bbe0b16))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: pk910 <github@pk910.de>
Co-authored-by: parithosh <parithosh.jayanthi@ethereum.org>
Co-authored-by: Gyanendra Mishra <anomaly.the@gmail.com>
@h4ck3rk3y
Copy link
Collaborator

@parithosh does this look okay to you now?

@parithosh
Copy link
Member

parithosh commented Feb 20, 2024

PR itself seems to work as intended! Thank you @bharath-123 :D

@shakeshar , seems like mevsharp might need to add support for starting up relying purely on env vars as it currently fails expecting a network flag. But there is no custom network flag as far as i can see.

Minimal reproduction yaml:

additional_services: []
mev_type: mock
mev_params:
  mev_boost_image: mevsharp/mevsharp:latest
  mev_boost_args: ["mevsharp"]

@barnabasbusa barnabasbusa enabled auto-merge (squash) February 20, 2024 14:59
@barnabasbusa barnabasbusa merged commit e48483a into ethpandaops:main Feb 20, 2024
17 checks passed
@shakeshar
Copy link

PR itself seems to work as intended! Thank you @bharath-123 :D

@shakeshar , seems like mevsharp might need to add support for starting up relying purely on env vars as it currently fails expecting a network flag. But there is no custom network flag as far as i can see.

Minimal reproduction yaml:

additional_services: []
mev_type: mock
mev_params:
  mev_boost_image: mevsharp/mevsharp:latest
  mev_boost_args: ["mevsharp"]

Yes, that seems like a good idéa.
At the moment you can set the network using the CLI --network parameter, I could add this as an environment variable, however "network" is quite generic and could be used in other applications I reckon.
Do you have any preferred variable name you would like to use for this?

I.e in windows this would be set using "setx /M PREFERRED_KEY_NAME sepolia"

@parithosh
Copy link
Member

PR itself seems to work as intended! Thank you @bharath-123 :D
@shakeshar , seems like mevsharp might need to add support for starting up relying purely on env vars as it currently fails expecting a network flag. But there is no custom network flag as far as i can see.
Minimal reproduction yaml:

additional_services: []
mev_type: mock
mev_params:
  mev_boost_image: mevsharp/mevsharp:latest
  mev_boost_args: ["mevsharp"]

Yes, that seems like a good idéa. At the moment you can set the network using the CLI --network parameter, I could add this as an environment variable, however "network" is quite generic and could be used in other applications I reckon. Do you have any preferred variable name you would like to use for this?

I.e in windows this would be set using "setx /M PREFERRED_KEY_NAME sepolia"

I think the mev-boost behaviour is probably useful to emulate here as well. So if you specify --network goerli, then it knows the GENESIS_FORK_VERSION value it needs to use for said network. If you want a custom network, you can just forego the --network flag and simply set the GENESIS_FORK_VERSION directly.

So the change on your side would be to crash only if network and GENESIS_FORK_VERSION (or flag variant) is missing.

@shakeshar
Copy link

mevsharp/mevsharp:latest

I just pushed an update, please get the latest image and try again and please get back to me with the result.

@shakeshar
Copy link

Added additional support for environmentvariables. It's been running in Testnet successfully for the past 24/h, get the latest package.
PR: mevsharp/mevsharp#120
@parithosh

barnabasbusa pushed a commit that referenced this pull request Mar 8, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.0.0](1.4.0...2.0.0)
(2024-03-08)


### ⚠ BREAKING CHANGES

* participant_network & rename participant fields.
([#508](#508))
* add node selectors features
([#491](#491))

### Features

* add keymanager to all validator processes
([#502](#502))
([836eda4](836eda4))
* add nimbus-eth1
([#496](#496))
([d599729](d599729))
* add node selectors features
([#491](#491))
([316d42f](316d42f))
* allow more detailed additional test configurations in assertoor_params
([#498](#498))
([fe2de7e](fe2de7e))
* enable api in assertoor config
([#495](#495))
([9ceae9c](9ceae9c))
* enable dencun-genesis
([#500](#500))
([beb764f](beb764f))
* make snapshot url configurable
([#507](#507))
([6fa0475](6fa0475))
* parameterize mev-boost args
([#400](#400))
([e48483a](e48483a))
* separate validator clients from CL clients
([#497](#497))
([90da2c3](90da2c3))


### Bug Fixes

* fix end index in validator ranges file
([#509](#509))
([da55be8](da55be8))
* lh vc flag logic
([#506](#506))
([bc5e725](bc5e725))
* nimbus-eth1 advertise proper extip
([#501](#501))
([1d5a779](1d5a779))
* README global node selector
([#504](#504))
([f9343a2](f9343a2))
* use the cl as the default validator image if none are defined
([#503](#503))
([181dd04](181dd04))


### Code Refactoring

* participant_network & rename participant fields.
([#508](#508))
([fab341b](fab341b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow entire mev-boost arg list to be overriden
9 participants