Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -568,7 +568,7 @@ network_params:
max_request_blob_sidecars_electra: 1152

# The number of validator keys that each CL validator node should get
num_validator_keys_per_node: 64
num_validator_keys_per_node: 128

# This mnemonic will a) be used to create keystores for all the types of validators that we have and b) be used to generate a CL genesis.ssz that has the children
# validator keys already preregistered as validators
Expand Down
2 changes: 1 addition & 1 deletion network_params.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ network_params:
deposit_contract_address: "0x00000000219ab540356cBB839Cbe05303d7705Fa"
seconds_per_slot: 12
slot_duration_ms: 12000
num_validator_keys_per_node: 64
num_validator_keys_per_node: 128
preregistered_validator_keys_mnemonic:
"giant issue aisle success illegal bike spike
question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy
Expand Down
26 changes: 9 additions & 17 deletions src/package_io/input_parser.star
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,6 @@ DEFAULT_REMOTE_SIGNER_IMAGES = {
# MEV Params
MEV_BOOST_PORT = 18550

# Minimum number of validators required for a network to be valid is 64
MIN_VALIDATORS = 64

DEFAULT_ADDITIONAL_SERVICES = []

ATTR_TO_BE_SKIPPED_AT_ROOT = (
Expand Down Expand Up @@ -314,12 +311,14 @@ def input_parser(plan, input_args):

if result["network_params"]["fulu_fork_epoch"] != constants.FAR_FUTURE_EPOCH:
has_supernodes = False
has_node_with_128_plus_validators = False
num_perfect_peerdas_participants = 0
for participant in result["participants"]:
num_perfect_peerdas_participants += 1
if participant.get("supernode", False):
has_supernodes = True
break
if participant.get("validator_count", 0) >= 128:
has_node_with_128_plus_validators = True

if result["network_params"]["perfect_peerdas_enabled"]:
if num_perfect_peerdas_participants < 16:
Expand All @@ -331,10 +330,11 @@ def input_parser(plan, input_args):

if (
not has_supernodes
and not has_node_with_128_plus_validators
and not result["network_params"]["perfect_peerdas_enabled"]
):
fail(
"Fulu fork is enabled (epoch: {0}) but no supernodes are configured in the participant list and perfect_peerdas_enabled is not enabled. Either configure supernodes for some participants or enable perfect_peerdas_enabled in network_params and have 16 participants.".format(
"Fulu fork is enabled (epoch: {0}) but no supernodes are configured, no nodes have 128 or more validators, and perfect_peerdas_enabled is not enabled. Either configure a supernode, ensure at least one node has 128+ validators, or enable perfect_peerdas_enabled in network_params with 16 participants.".format(
str(result["network_params"]["fulu_fork_epoch"])
)
)
Expand Down Expand Up @@ -1074,17 +1074,9 @@ def parse_network_params(plan, input_args):
)

if (
result["network_params"]["network"] == constants.NETWORK_NAME.kurtosis
or constants.NETWORK_NAME.shadowfork in result["network_params"]["network"]
result["network_params"]["network"] != constants.NETWORK_NAME.kurtosis
and constants.NETWORK_NAME.shadowfork not in result["network_params"]["network"]
):
if MIN_VALIDATORS > actual_num_validators:
fail(
"We require at least {0} validators but got {1}".format(
MIN_VALIDATORS, actual_num_validators
)
)
else:
# Don't allow validators on non-kurtosis networks
for participant in result["participants"]:
participant["validator_count"] = 0

Expand Down Expand Up @@ -1183,7 +1175,7 @@ def default_network_params():
"deposit_contract_address": "0x00000000219ab540356cBB839Cbe05303d7705Fa",
"seconds_per_slot": 12,
"slot_duration_ms": 12000,
"num_validator_keys_per_node": 64,
"num_validator_keys_per_node": 128,
"preregistered_validator_keys_mnemonic": constants.DEFAULT_MNEMONIC,
"preregistered_validator_count": 0,
"genesis_delay": 20,
Expand Down Expand Up @@ -1265,7 +1257,7 @@ def default_minimal_network_params():
"deposit_contract_address": "0x00000000219ab540356cBB839Cbe05303d7705Fa",
"seconds_per_slot": 6,
"slot_duration_ms": 6000,
"num_validator_keys_per_node": 64,
"num_validator_keys_per_node": 128,
"preregistered_validator_keys_mnemonic": constants.DEFAULT_MNEMONIC,
"preregistered_validator_count": 0,
"genesis_delay": 20,
Expand Down