Commit 55df658f authored by Barnabas Busa's avatar Barnabas Busa Committed by GitHub

fix: rbuilder upstream repo with reth-rbuilder binary (#828)

Depends on
https://github.com/ethpandaops/eth-client-docker-image-builder/pull/208
Depends on https://github.com/flashbots/rbuilder/pull/237

---------
Signed-off-by: default avatarBarnabas Busa <barnabas.busa@ethereum.org>
parent 35ec9585
...@@ -141,40 +141,42 @@ def get_config( ...@@ -141,40 +141,42 @@ def get_config(
used_ports = shared_utils.get_port_specs(used_port_assignments) used_ports = shared_utils.get_port_specs(used_port_assignments)
cmd = [ cmd = []
"{0}".format(
"/usr/local/bin/mev" if launcher.builder_type == "mev-rs" else "reth" if launcher.builder_type == "mev-rs":
), cmd.append("build")
"node",
"-{0}".format(log_level), cmd.extend(
"--datadir=" + EXECUTION_DATA_DIRPATH_ON_CLIENT_CONTAINER, [
"--chain={0}".format( "node",
launcher.network "-{0}".format(log_level),
if launcher.network in constants.PUBLIC_NETWORKS "--datadir=" + EXECUTION_DATA_DIRPATH_ON_CLIENT_CONTAINER,
else constants.GENESIS_CONFIG_MOUNT_PATH_ON_CONTAINER + "/genesis.json" "--chain={0}".format(
), launcher.network
"--http", if launcher.network in constants.PUBLIC_NETWORKS
"--http.port={0}".format(RPC_PORT_NUM), else constants.GENESIS_CONFIG_MOUNT_PATH_ON_CONTAINER + "/genesis.json"
"--http.addr=0.0.0.0", ),
"--http.corsdomain=*", "--http",
# WARNING: The admin info endpoint is enabled so that we can easily get ENR/enode, which means "--http.port={0}".format(RPC_PORT_NUM),
# that users should NOT store private information in these Kurtosis nodes! "--http.addr=0.0.0.0",
"--http.api=admin,net,eth,web3,debug,txpool,trace{0}".format( "--http.corsdomain=*",
",flashbots" if launcher.builder_type == "flashbots" else "" "--http.api=admin,net,eth,web3,debug,txpool,trace{0}".format(
), ",flashbots" if launcher.builder_type == "flashbots" else ""
"--ws", ),
"--ws.addr=0.0.0.0", "--ws",
"--ws.port={0}".format(WS_PORT_NUM), "--ws.addr=0.0.0.0",
"--ws.api=net,eth", "--ws.port={0}".format(WS_PORT_NUM),
"--ws.origins=*", "--ws.api=net,eth",
"--nat=extip:" + port_publisher.nat_exit_ip, "--ws.origins=*",
"--authrpc.port={0}".format(ENGINE_RPC_PORT_NUM), "--nat=extip:" + port_publisher.nat_exit_ip,
"--authrpc.jwtsecret=" + constants.JWT_MOUNT_PATH_ON_CONTAINER, "--authrpc.port={0}".format(ENGINE_RPC_PORT_NUM),
"--authrpc.addr=0.0.0.0", "--authrpc.jwtsecret=" + constants.JWT_MOUNT_PATH_ON_CONTAINER,
"--metrics=0.0.0.0:{0}".format(METRICS_PORT_NUM), "--authrpc.addr=0.0.0.0",
"--discovery.port={0}".format(discovery_port), "--metrics=0.0.0.0:{0}".format(METRICS_PORT_NUM),
"--port={0}".format(discovery_port), "--discovery.port={0}".format(discovery_port),
] "--port={0}".format(discovery_port),
]
)
if launcher.network == constants.NETWORK_NAME.kurtosis: if launcher.network == constants.NETWORK_NAME.kurtosis:
if len(existing_el_clients) > 0: if len(existing_el_clients) > 0:
...@@ -216,29 +218,22 @@ def get_config( ...@@ -216,29 +218,22 @@ def get_config(
constants.EL_TYPE.reth + "_volume_size" constants.EL_TYPE.reth + "_volume_size"
], ],
) )
cmd_str = " ".join(cmd) env_vars = {}
env_vars = {
"RETH_CMD": cmd_str,
}
entrypoint_args = ["sh", "-c"]
env_vars = env_vars | participant.el_extra_env_vars
image = participant.el_image image = participant.el_image
rbuilder_cmd = []
if launcher.builder_type == "mev-rs": if launcher.builder_type == "mev-rs":
files[ files[
mev_rs_builder.MEV_BUILDER_MOUNT_DIRPATH_ON_SERVICE mev_rs_builder.MEV_BUILDER_MOUNT_DIRPATH_ON_SERVICE
] = mev_rs_builder.MEV_BUILDER_FILES_ARTIFACT_NAME ] = mev_rs_builder.MEV_BUILDER_FILES_ARTIFACT_NAME
elif launcher.builder_type == "flashbots": elif launcher.builder_type == "flashbots":
image = constants.DEFAULT_FLASHBOTS_BUILDER_IMAGE
cl_client_name = service_name.split("-")[4] cl_client_name = service_name.split("-")[4]
cmd.append("--engine.legacy") cmd.append("--engine.experimental")
cmd_str = " ".join(cmd) cmd.append("--rbuilder.config=" + flashbots_rbuilder.MEV_FILE_PATH_ON_CONTAINER)
files[ files[
flashbots_rbuilder.MEV_BUILDER_MOUNT_DIRPATH_ON_SERVICE flashbots_rbuilder.MEV_BUILDER_MOUNT_DIRPATH_ON_SERVICE
] = flashbots_rbuilder.MEV_BUILDER_FILES_ARTIFACT_NAME ] = flashbots_rbuilder.MEV_BUILDER_FILES_ARTIFACT_NAME
env_vars["RETH_CMD"] = cmd_str
env_vars.update( env_vars.update(
{ {
"RBUILDER_CONFIG": flashbots_rbuilder.MEV_FILE_PATH_ON_CONTAINER,
"CL_ENDPOINT": "http://cl-{0}-{1}-{2}:{3}".format( "CL_ENDPOINT": "http://cl-{0}-{1}-{2}:{3}".format(
participant_index + 1, participant_index + 1,
cl_client_name, cl_client_name,
...@@ -247,19 +242,15 @@ def get_config( ...@@ -247,19 +242,15 @@ def get_config(
), ),
} }
) )
image = constants.DEFAULT_FLASHBOTS_BUILDER_IMAGE
cmd_str = "./app/entrypoint.sh"
entrypoint_args = []
config_args = { config_args = {
"image": image, "image": image,
"ports": used_ports, "ports": used_ports,
"public_ports": public_ports, "public_ports": public_ports,
"cmd": [cmd_str], "cmd": cmd,
"files": files, "files": files,
"entrypoint": entrypoint_args,
"private_ip_address_placeholder": constants.PRIVATE_IP_ADDRESS_PLACEHOLDER, "private_ip_address_placeholder": constants.PRIVATE_IP_ADDRESS_PLACEHOLDER,
"env_vars": env_vars, "env_vars": env_vars | participant.el_extra_env_vars,
"labels": shared_utils.label_maker( "labels": shared_utils.label_maker(
client=constants.EL_TYPE.reth, client=constants.EL_TYPE.reth,
client_type=constants.CLIENT_TYPES.el, client_type=constants.CLIENT_TYPES.el,
......
...@@ -88,7 +88,7 @@ COMMIT_BOOST_MEV_TYPE = "commit-boost" ...@@ -88,7 +88,7 @@ COMMIT_BOOST_MEV_TYPE = "commit-boost"
DEFAULT_SNOOPER_IMAGE = "ethpandaops/rpc-snooper:latest" DEFAULT_SNOOPER_IMAGE = "ethpandaops/rpc-snooper:latest"
DEFAULT_FLASHBOTS_RELAY_IMAGE = "flashbots/mev-boost-relay:0.29.2a3" DEFAULT_FLASHBOTS_RELAY_IMAGE = "flashbots/mev-boost-relay:0.29.2a3"
DEFAULT_FLASHBOTS_BUILDER_IMAGE = "ethpandaops/rbuilder:develop" DEFAULT_FLASHBOTS_BUILDER_IMAGE = "ethpandaops/reth-rbuilder:develop"
DEFAULT_FLASHBOTS_MEV_BOOST_IMAGE = "flashbots/mev-boost" DEFAULT_FLASHBOTS_MEV_BOOST_IMAGE = "flashbots/mev-boost"
DEFAULT_MEV_RS_IMAGE = "ethpandaops/mev-rs:main" DEFAULT_MEV_RS_IMAGE = "ethpandaops/mev-rs:main"
DEFAULT_MEV_RS_IMAGE_MINIMAL = "ethpandaops/mev-rs:main-minimal" DEFAULT_MEV_RS_IMAGE_MINIMAL = "ethpandaops/mev-rs:main-minimal"
......
...@@ -1303,7 +1303,7 @@ def enrich_mev_extra_params(parsed_arguments_dict, mev_prefix, mev_port, mev_typ ...@@ -1303,7 +1303,7 @@ def enrich_mev_extra_params(parsed_arguments_dict, mev_prefix, mev_port, mev_typ
if mev_type == constants.MEV_RS_MEV_TYPE: if mev_type == constants.MEV_RS_MEV_TYPE:
mev_participant = default_participant() mev_participant = default_participant()
mev_participant["el_type"] = constants.EL_TYPE.reth mev_participant["el_type"] = "reth-builder"
mev_participant.update( mev_participant.update(
{ {
"el_image": parsed_arguments_dict["mev_params"]["mev_builder_image"], "el_image": parsed_arguments_dict["mev_params"]["mev_builder_image"],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment