@@ -52,57 +52,14 @@ def run(plan, args = {}):
5252 for participant in all_participants :
5353 all_el_client_contexts .append (participant .el_client_context )
5454 all_cl_client_contexts .append (participant .cl_client_context )
55-
56-
57- mev_endpoints = []
58- # passed external relays get priority
59- # perhaps add mev_type External or remove this
60- if hasattr (participant , "builder_network_params" ) and participant .builder_network_params != None :
61- mev_endpoints = participant .builder_network_params .relay_end_points
62- # otherwise dummy relays spinup if chosen
63- elif args_with_right_defaults .mev_type and args_with_right_defaults .mev_type == MOCK_MEV_TYPE :
64- el_uri = "{0}:{1}" .format (all_el_client_contexts [0 ].ip_addr , all_el_client_contexts [0 ].engine_rpc_port_num )
65- beacon_uri = "{0}:{1}" .format (all_cl_client_contexts [0 ].ip_addr , all_cl_client_contexts [0 ].http_port_num )
66- jwt_secret = all_el_client_contexts [0 ].jwt_secret
67- endpoint = mock_mev_launcher_module .launch_mock_mev (plan , el_uri , beacon_uri , jwt_secret , args_with_right_defaults .global_client_log_level )
68- mev_endpoints .append (endpoint )
69- elif args_with_right_defaults .mev_type and args_with_right_defaults .mev_type == FULL_MEV_TYPE :
70- el_uri = "http://{0}:{1}" .format (all_el_client_contexts [0 ].ip_addr , all_el_client_contexts [0 ].rpc_port_num )
71- builder_uri = "http://{0}:{1}" .format (all_el_client_contexts [- 1 ].ip_addr , all_el_client_contexts [- 1 ].rpc_port_num )
72- beacon_uri = ["http://{0}:{1}" .format (context .ip_addr , context .http_port_num ) for context in all_cl_client_contexts ][- 1 ]
73- beacon_uris = beacon_uri
74- first_cl_client = all_cl_client_contexts [0 ]
75- first_client_beacon_name = first_cl_client .beacon_service_name
76- mev_flood_module .launch_mev_flood (plan , mev_params .mev_flood_image , el_uri , genesis_constants .PRE_FUNDED_ACCOUNTS )
77- epoch_recipe = GetHttpRequestRecipe (
78- endpoint = "/eth/v2/beacon/blocks/head" ,
79- port_id = HTTP_PORT_ID_FOR_FACT ,
80- extract = {
81- "epoch" : ".data.message.body.attestations[0].data.target.epoch"
82- }
83- )
84- plan .wait (recipe = epoch_recipe , field = "extract.epoch" , assertion = ">=" , target_value = str (network_params .capella_fork_epoch ), timeout = "20m" , service_name = first_client_beacon_name )
85- plan .print ("epoch 2 reached, can begin mev stuff" )
86- endpoint = mev_relay_launcher_module .launch_mev_relay (plan , mev_params , network_params .network_id , beacon_uris , genesis_validators_root , builder_uri , network_params .seconds_per_slot , network_params .slots_per_epoch )
87- mev_flood_module .spam_in_background (plan , el_uri , mev_params .mev_flood_extra_args , mev_params .mev_flood_seconds_per_bundle , genesis_constants .PRE_FUNDED_ACCOUNTS )
88- if args_with_right_defaults .mev_params .launch_custom_flood :
89- mev_custom_flood_module .spam_in_background (plan , genesis_constants .PRE_FUNDED_ACCOUNTS [- 1 ].private_key , genesis_constants .PRE_FUNDED_ACCOUNTS [0 ].address , el_uri )
90- mev_endpoints .append (endpoint )
91-
92- # spin up the mev boost contexts if some endpoints for relays have been passed
93- all_mevboost_contexts = []
94- if mev_endpoints :
95- for index , participant in enumerate (all_participants ):
96- mev_boost_launcher = mev_boost_launcher_module .new_mev_boost_launcher (MEV_BOOST_SHOULD_CHECK_RELAY , mev_endpoints )
97- mev_boost_service_name = "{0}{1}" .format (parse_input .MEV_BOOST_SERVICE_NAME_PREFIX , index )
98- mev_boost_context = mev_boost_launcher_module .launch (plan , mev_boost_launcher , mev_boost_service_name , network_params .network_id , mev_params .mev_boost_image )
99- all_mevboost_contexts .append (mev_boost_context )
55+
10056
10157 if not args_with_right_defaults .launch_additional_services :
10258 return
10359
10460 plan .print ("Launching transaction spammer" )
105- transaction_spammer .launch_transaction_spammer (plan , genesis_constants .PRE_FUNDED_ACCOUNTS , all_el_client_contexts [0 ])
61+ tx_spammer_params = args_with_right_defaults .tx_spammer_params
62+ transaction_spammer .launch_transaction_spammer (plan , genesis_constants .PRE_FUNDED_ACCOUNTS , all_el_client_contexts [0 ], tx_spammer_params )
10663 plan .print ("Succesfully launched transaction spammer" )
10764
10865 plan .print ("Launching Blob spammer" )
@@ -184,4 +141,49 @@ def run(plan, args = {}):
184141 )
185142 output = struct (grafana_info = grafana_info )
186143
144+
145+ mev_endpoints = []
146+ # passed external relays get priority
147+ # perhaps add mev_type External or remove this
148+ if hasattr (participant , "builder_network_params" ) and participant .builder_network_params != None :
149+ mev_endpoints = participant .builder_network_params .relay_end_points
150+ # otherwise dummy relays spinup if chosen
151+ elif args_with_right_defaults .mev_type and args_with_right_defaults .mev_type == MOCK_MEV_TYPE :
152+ el_uri = "{0}:{1}" .format (all_el_client_contexts [0 ].ip_addr , all_el_client_contexts [0 ].engine_rpc_port_num )
153+ beacon_uri = "{0}:{1}" .format (all_cl_client_contexts [0 ].ip_addr , all_cl_client_contexts [0 ].http_port_num )
154+ jwt_secret = all_el_client_contexts [0 ].jwt_secret
155+ endpoint = mock_mev_launcher_module .launch_mock_mev (plan , el_uri , beacon_uri , jwt_secret , args_with_right_defaults .global_client_log_level )
156+ mev_endpoints .append (endpoint )
157+ elif args_with_right_defaults .mev_type and args_with_right_defaults .mev_type == FULL_MEV_TYPE :
158+ el_uri = "http://{0}:{1}" .format (all_el_client_contexts [0 ].ip_addr , all_el_client_contexts [0 ].rpc_port_num )
159+ builder_uri = "http://{0}:{1}" .format (all_el_client_contexts [- 1 ].ip_addr , all_el_client_contexts [- 1 ].rpc_port_num )
160+ beacon_uri = ["http://{0}:{1}" .format (context .ip_addr , context .http_port_num ) for context in all_cl_client_contexts ][- 1 ]
161+ beacon_uris = beacon_uri
162+ first_cl_client = all_cl_client_contexts [0 ]
163+ first_client_beacon_name = first_cl_client .beacon_service_name
164+ mev_flood_module .launch_mev_flood (plan , mev_params .mev_flood_image , el_uri , genesis_constants .PRE_FUNDED_ACCOUNTS )
165+ epoch_recipe = GetHttpRequestRecipe (
166+ endpoint = "/eth/v2/beacon/blocks/head" ,
167+ port_id = HTTP_PORT_ID_FOR_FACT ,
168+ extract = {
169+ "epoch" : ".data.message.body.attestations[0].data.target.epoch"
170+ }
171+ )
172+ plan .wait (recipe = epoch_recipe , field = "extract.epoch" , assertion = ">=" , target_value = str (network_params .capella_fork_epoch ), timeout = "20m" , service_name = first_client_beacon_name )
173+ plan .print ("epoch 2 reached, can begin mev stuff" )
174+ endpoint = mev_relay_launcher_module .launch_mev_relay (plan , mev_params , network_params .network_id , beacon_uris , genesis_validators_root , builder_uri , network_params .seconds_per_slot , network_params .slots_per_epoch )
175+ mev_flood_module .spam_in_background (plan , el_uri , mev_params .mev_flood_extra_args , mev_params .mev_flood_seconds_per_bundle , genesis_constants .PRE_FUNDED_ACCOUNTS )
176+ if args_with_right_defaults .mev_params .launch_custom_flood :
177+ mev_custom_flood_module .spam_in_background (plan , genesis_constants .PRE_FUNDED_ACCOUNTS [- 1 ].private_key , genesis_constants .PRE_FUNDED_ACCOUNTS [0 ].address , el_uri )
178+ mev_endpoints .append (endpoint )
179+
180+ # spin up the mev boost contexts if some endpoints for relays have been passed
181+ all_mevboost_contexts = []
182+ if mev_endpoints :
183+ for index , participant in enumerate (all_participants ):
184+ mev_boost_launcher = mev_boost_launcher_module .new_mev_boost_launcher (MEV_BOOST_SHOULD_CHECK_RELAY , mev_endpoints )
185+ mev_boost_service_name = "{0}{1}" .format (parse_input .MEV_BOOST_SERVICE_NAME_PREFIX , index )
186+ mev_boost_context = mev_boost_launcher_module .launch (plan , mev_boost_launcher , mev_boost_service_name , network_params .network_id , mev_params .mev_boost_image )
187+ all_mevboost_contexts .append (mev_boost_context )
188+
187189 return output
0 commit comments