11DEFAULT_EL_IMAGES = {
2- "geth" : "ethereum/client-go:latest " ,
2+ "geth" : "ethereum/client-go:v1.11.5 " ,
33 "erigon" : "thorax/erigon:devel" ,
4- "nethermind" : "nethermind/nethermind:latest " ,
4+ "nethermind" : "nethermind/nethermind:1.14.0 " ,
55 "besu" : "hyperledger/besu:develop"
66}
77
88DEFAULT_CL_IMAGES = {
9- "lighthouse" : "sigp/lighthouse:latest " ,
10- "teku" : "consensys/teku:latest " ,
9+ "lighthouse" : "sigp/lighthouse:v3.5.0 " ,
10+ "teku" : "consensys/teku:23.1 " ,
1111 "nimbus" : "statusim/nimbus-eth2:multiarch-latest" ,
12- "prysm" : "gcr.io/ prysmaticlabs/prysm/beacon-chain:latest,gcr.io/ prysmaticlabs/prysm/validator:latest" ,
13- "lodestar" : "chainsafe/lodestar:next" ,
12+ "prysm" : "prysmaticlabs/prysm/beacon-chain:latest,prysmaticlabs/prysm/validator:latest" ,
13+ "lodestar" : "chainsafe/lodestar:v1.7.2" ,
1414}
1515
1616BESU_NODE_NAME = "besu"
1717NETHERMIND_NODE_NAME = "nethermind"
1818
1919ATTR_TO_BE_SKIPPED_AT_ROOT = ("network_params" , "participants" )
2020
21+ # MEV Params
22+ FLASHBOTS_MEV_BOOST_PORT = 18550
23+ MEV_BOOST_SERVICE_NAME_PREFIX = "mev-boost-"
24+
25+
2126def parse_input (input_args ):
2227 result = default_input_args ()
2328 for attr in input_args :
@@ -100,6 +105,9 @@ def parse_input(input_args):
100105 if len (result ["participants" ]) >= 2 and result ["participants" ][1 ]["el_client_type" ] == NETHERMIND_NODE_NAME :
101106 fail ("nethermind can't be the first or second node" )
102107
108+ if result .get ("mev_type" ) in ("mock" , "full" ):
109+ result = enrich_mev_extra_params (result , MEV_BOOST_SERVICE_NAME_PREFIX , FLASHBOTS_MEV_BOOST_PORT )
110+
103111 return struct (
104112 participants = [struct (
105113 el_client_type = participant ["el_client_type" ],
@@ -128,8 +136,9 @@ def parse_input(input_args):
128136 wait_for_finalization = result ["wait_for_finalization" ],
129137 wait_for_verifications = result ["wait_for_verifications" ],
130138 verifications_epoch_limit = result ["verifications_epoch_limit" ],
131- global_client_log_level = result ["global_client_log_level" ]
132- )
139+ global_client_log_level = result ["global_client_log_level" ],
140+ mev_type = result ["mev_type" ],
141+ ), result
133142
134143def get_client_log_level_or_default (participant_log_level , global_log_level , client_log_levels ):
135144 log_level = participant_log_level
@@ -143,6 +152,7 @@ def default_input_args():
143152 network_params = default_network_params ()
144153 participants = [default_participant ()]
145154 return {
155+ "mev_type" : None ,
146156 "participants" : participants ,
147157 "network_params" : network_params ,
148158 "launch_additional_services" : True ,
@@ -179,3 +189,24 @@ def default_participant():
179189 "validator_extra_params" : [],
180190 "builder_network_params" : None
181191 }
192+
193+
194+ # TODO perhaps clean this up into a map
195+ def enrich_mev_extra_params (parsed_arguments_dict , mev_prefix , mev_port ):
196+ for index , participant in enumerate (parsed_arguments_dict ["participants" ]):
197+ mev_url = "http://{0}{1}:{2}" .format (mev_prefix , index , mev_port )
198+ if participant ["cl_client_type" ] == "lighthouse" :
199+ participant ["validator_extra_params" ].append ("--builder-proposals" )
200+ participant ["beacon_extra_params" ].append ("--builder={0}" .format (mev_url ))
201+ if participant ["cl_client_type" ] == "lodestar" :
202+ participant ["validator_extra_params" ].append ("--builder" )
203+ participant ["beacon_extra_params" ].append ("--builder" , "--builder.urls={0}" .format (mev_url ))
204+ if participant ["cl_client_type" ] == "nimbus" :
205+ participant ["validator_extra_params" ].append ("--payload-builder=true" )
206+ participant ["beacon_extra_params" ].append ("--payload-builder=true" , "--payload-builder-urs={0}" .format (mev_url ))
207+ if participant ["cl_client_type" ] == "teku" :
208+ participant ["beacon_extra_params" ].append ("--validators-builder-registration-default-enabled=true" , "--builder-endpoint=" .format (mev_url ))
209+ if participant ["cl_client_type" ] == "prysm" :
210+ participant ["validator_extra_params" ].append ("--enable-builder" )
211+ participant ["beacon_extra_params" ].append ("--http-mev-relay={0}" .format (mev_url ))
212+ return parsed_arguments_dict
0 commit comments