diff --git a/README.md b/README.md index 9a4f033a1..7683b9b7f 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/network_params.yaml b/network_params.yaml index c4ca36734..f64f1cf13 100644 --- a/network_params.yaml +++ b/network_params.yaml @@ -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 diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index 189f2a4cd..9f5bbfd0a 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -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 = ( @@ -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: @@ -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"]) ) ) @@ -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 @@ -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, @@ -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,