Commit 3ac4d2a4 authored by Barnabas Busa's avatar Barnabas Busa Committed by GitHub

feat: add grandine (#517)

parent 0615cd1b
participants:
- el_type: geth
cl_type: grandine
- el_type: nethermind
cl_type: grandine
- el_type: erigon
cl_type: grandine
- el_type: besu
cl_type: grandine
- el_type: reth
cl_type: grandine
- el_type: ethereumjs
cl_type: grandine
additional_services: []
......@@ -9,6 +9,8 @@ participants:
cl_type: lighthouse
- el_type: reth
cl_type: lodestar
- el_type: ethereumjs
- el_type: nimbus
cl_type: teku
- el_type: ethereumjs
cl_type: grandine
additional_services: []
......@@ -258,7 +258,7 @@ participants:
# CL(Consensus Layer) Specific flags
# The type of CL client that should be started
# Valid values are nimbus, lighthouse, lodestar, teku, and prysm
# Valid values are nimbus, lighthouse, lodestar, teku, prysm, and grandine
cl_type: lighthouse
# The Docker image that should be used for the CL client; leave blank to use the default for the client type
......
......@@ -3,6 +3,7 @@ lodestar = import_module("./lodestar/lodestar_launcher.star")
nimbus = import_module("./nimbus/nimbus_launcher.star")
prysm = import_module("./prysm/prysm_launcher.star")
teku = import_module("./teku/teku_launcher.star")
grandine = import_module("./grandine/grandine_launcher.star")
constants = import_module("../package_io/constants.star")
input_parser = import_module("../package_io/input_parser.star")
......@@ -76,6 +77,14 @@ def launch(
),
"launch_method": teku.launch,
},
constants.CL_TYPE.grandine: {
"launcher": grandine.new_grandine_launcher(
el_cl_data,
jwt_file,
network_params.network,
),
"launch_method": grandine.launch,
},
}
all_snooper_engine_contexts = []
......
This diff is collapsed.
......@@ -15,6 +15,7 @@ CL_TYPE = struct(
nimbus="nimbus",
prysm="prysm",
lodestar="lodestar",
grandine="grandine",
)
VC_TYPE = struct(
......@@ -147,6 +148,7 @@ VOLUME_SIZE = {
"teku_volume_size": 500000, # 500GB
"nimbus_volume_size": 500000, # 500GB
"lodestar_volume_size": 500000, # 500GB
"grandine_volume_size": 500000, # 500GB
},
"goerli": {
"geth_volume_size": 800000, # 800GB
......@@ -161,6 +163,7 @@ VOLUME_SIZE = {
"teku_volume_size": 300000, # 300GB
"nimbus_volume_size": 300000, # 300GB
"lodestar_volume_size": 300000, # 300GB
"grandine_volume_size": 300000, # 300GB
},
"sepolia": {
"geth_volume_size": 300000, # 300GB
......@@ -175,6 +178,7 @@ VOLUME_SIZE = {
"teku_volume_size": 150000, # 150GB
"nimbus_volume_size": 150000, # 150GB
"lodestar_volume_size": 150000, # 150GB
"grandine_volume_size": 150000, # 150GB
},
"holesky": {
"geth_volume_size": 100000, # 100GB
......@@ -189,6 +193,7 @@ VOLUME_SIZE = {
"teku_volume_size": 100000, # 100GB
"nimbus_volume_size": 100000, # 100GB
"lodestar_volume_size": 100000, # 100GB
"grandine_volume_size": 100000, # 100GB
},
"devnets": {
"geth_volume_size": 100000, # 100GB
......@@ -203,6 +208,7 @@ VOLUME_SIZE = {
"teku_volume_size": 100000, # 100GB
"nimbus_volume_size": 100000, # 100GB
"lodestar_volume_size": 100000, # 100GB
"grandine_volume_size": 100000, # 100GB
},
"ephemery": {
"geth_volume_size": 5000, # 5GB
......@@ -217,6 +223,7 @@ VOLUME_SIZE = {
"teku_volume_size": 1000, # 1GB
"nimbus_volume_size": 1000, # 1GB
"lodestar_volume_size": 1000, # 1GB
"grandine_volume_size": 1000, # 1GB
},
"kurtosis": {
"geth_volume_size": 5000, # 5GB
......@@ -231,6 +238,7 @@ VOLUME_SIZE = {
"teku_volume_size": 1000, # 1GB
"nimbus_volume_size": 1000, # 1GB
"lodestar_volume_size": 1000, # 1GB
"grandine_volume_size": 1000, # 1GB
},
}
......@@ -260,6 +268,8 @@ RAM_CPU_OVERRIDES = {
"nimbus_max_cpu": 4000, # 4 cores
"lodestar_max_mem": 16384, # 16GB
"lodestar_max_cpu": 4000, # 4 cores
"grandine_max_mem": 16384, # 16GB
"grandine_max_cpu": 4000, # 4 cores
},
"goerli": {
"geth_max_mem": 8192, # 8GB
......@@ -286,6 +296,8 @@ RAM_CPU_OVERRIDES = {
"nimbus_max_cpu": 2000, # 2 cores
"lodestar_max_mem": 8192, # 8GB
"lodestar_max_cpu": 2000, # 2 cores
"grandine_max_mem": 8192, # 8GB
"grandine_max_cpu": 2000, # 2 cores
},
"sepolia": {
"geth_max_mem": 4096, # 4GB
......@@ -312,6 +324,8 @@ RAM_CPU_OVERRIDES = {
"nimbus_max_cpu": 1000, # 1 core
"lodestar_max_mem": 4096, # 4GB
"lodestar_max_cpu": 1000, # 1 core
"grandine_max_mem": 4096, # 4GB
"grandine_max_cpu": 1000, # 1 core
},
"holesky": {
"geth_max_mem": 8192, # 8GB
......@@ -338,6 +352,8 @@ RAM_CPU_OVERRIDES = {
"nimbus_max_cpu": 2000, # 2 cores
"lodestar_max_mem": 8192, # 8GB
"lodestar_max_cpu": 2000, # 2 cores
"grandine_max_mem": 8192, # 8GB
"grandine_max_cpu": 2000, # 2 cores
},
"devnets": {
"geth_max_mem": 4096, # 4GB
......@@ -364,6 +380,8 @@ RAM_CPU_OVERRIDES = {
"nimbus_max_cpu": 1000, # 1 core
"lodestar_max_mem": 4096, # 4GB
"lodestar_max_cpu": 1000, # 1 core
"grandine_max_mem": 4096, # 4GB
"grandine_max_cpu": 1000, # 1 core
},
"ephemery": {
"geth_max_mem": 1024, # 1GB
......@@ -390,6 +408,8 @@ RAM_CPU_OVERRIDES = {
"nimbus_max_cpu": 1000, # 1 core
"lodestar_max_mem": 1024, # 1GB
"lodestar_max_cpu": 1000, # 1 core
"grandine_max_mem": 1024, # 1GB
"grandine_max_cpu": 1000, # 1 core
},
"kurtosis": {
"geth_max_mem": 1024, # 1GB
......@@ -416,5 +436,7 @@ RAM_CPU_OVERRIDES = {
"nimbus_max_cpu": 1000, # 1 core
"lodestar_max_mem": 2048, # 2GB
"lodestar_max_cpu": 1000, # 1 core
"grandine_max_mem": 2048, # 2GB
"grandine_max_cpu": 1000, # 1 core
},
}
......@@ -20,6 +20,7 @@ DEFAULT_CL_IMAGES = {
"nimbus": "statusim/nimbus-eth2:multiarch-latest",
"prysm": "gcr.io/prysmaticlabs/prysm/beacon-chain:latest",
"lodestar": "chainsafe/lodestar:latest",
"grandine": "ethpandaops/grandine:develop",
}
DEFAULT_VC_IMAGES = {
......@@ -28,6 +29,7 @@ DEFAULT_VC_IMAGES = {
"nimbus": "statusim/nimbus-validator-client:multiarch-latest",
"prysm": "gcr.io/prysmaticlabs/prysm/validator:latest",
"teku": "consensys/teku:latest",
"grandine": "sifrai/grandine:latest",
}
MEV_BOOST_RELAY_DEFAULT_IMAGE = "flashbots/mev-boost-relay:0.27"
......@@ -381,6 +383,7 @@ def parse_network_params(input_args):
if cl_type in (
constants.CL_TYPE.nimbus,
constants.CL_TYPE.teku,
constants.CL_TYPE.grandine,
):
participant["use_separate_vc"] = False
else:
......@@ -391,6 +394,12 @@ def parse_network_params(input_args):
vc_type = cl_type
participant["vc_type"] = vc_type
if (
cl_type == constants.CL_TYPE.grandine
and vc_type != constants.CL_TYPE.grandine
):
fail("grandine does not support running a different validator client")
vc_image = participant["vc_image"]
if vc_image == "":
if cl_image == "":
......@@ -753,6 +762,8 @@ def enrich_disable_peer_scoring(parsed_arguments_dict):
participant["cl_extra_params"].append("--Xp2p-gossip-scoring-enabled")
if participant["cl_type"] == "lodestar":
participant["cl_extra_params"].append("--disablePeerScoring")
if participant["cl_type"] == "grandine":
participant["cl_extra_params"].append("--disable-peer-scoring")
return parsed_arguments_dict
......@@ -795,6 +806,8 @@ def enrich_mev_extra_params(parsed_arguments_dict, mev_prefix, mev_port, mev_typ
participant["cl_extra_params"].append(
"--http-mev-relay={0}".format(mev_url)
)
if participant["cl_type"] == "grandine":
participant["cl_extra_params"].append("--builder-url={0}".format(mev_url))
num_participants = len(parsed_arguments_dict["participants"])
index_str = shared_utils.zfill_custom(
......
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