diff --git a/README.md b/README.md index 658710a9f..b0aeb406f 100644 --- a/README.md +++ b/README.md @@ -528,6 +528,15 @@ network_params: # The snapshots are taken with https://github.com/ethpandaops/snapshotter network_sync_base_url: https://ethpandaops-ethereum-node-snapshots.ams3.digitaloceanspaces.com/ + # The number of data column sidecar subnets used in the gossipsub protocol + data_column_sidecar_subnet_count: 32 + # Number of DataColumn random samples a node queries per slot + samples_per_slot: 8 + # Minimum number of subnets an honest node custodies and serves samples from + custody_requirement: 1 + # Suggested minimum peer count + target_number_of_peers: 70 + # Preset for the network # Default: "mainnet" # Options: "mainnet", "minimal" diff --git a/network_params.yaml b/network_params.yaml index dc9ee5677..212d43738 100644 --- a/network_params.yaml +++ b/network_params.yaml @@ -76,6 +76,10 @@ network_params: eip7594_fork_epoch: 100000001 eip7594_fork_version: "0x70000038" network_sync_base_url: https://ethpandaops-ethereum-node-snapshots.ams3.digitaloceanspaces.com/ + data_column_sidecar_subnet_count: 32 + samples_per_slot: 8 + custody_requirement: 1 + target_number_of_peers: 70 additional_services: - tx_spammer - blob_spammer diff --git a/src/package_io/constants.star b/src/package_io/constants.star index b4cd0fd71..3be9dbcc7 100644 --- a/src/package_io/constants.star +++ b/src/package_io/constants.star @@ -88,7 +88,7 @@ EIP7594_FORK_VERSION = "0x70000038" ETHEREUM_GENESIS_GENERATOR = struct( capella_genesis="ethpandaops/ethereum-genesis-generator:2.0.12", # Deprecated (no support for minimal config) - deneb_genesis="ethpandaops/ethereum-genesis-generator:3.1.5", # Default + deneb_genesis="ethpandaops/ethereum-genesis-generator:3.1.6", # Default verkle_support_genesis="ethpandaops/ethereum-genesis-generator:3.0.0-rc.19", # soon to be deneb genesis, waiting for rebase verkle_genesis="ethpandaops/ethereum-genesis-generator:verkle-gen-v1.0.0", ) diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index 961c61e38..5b45d35e3 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -278,6 +278,12 @@ def input_parser(plan, input_args): ], shard_committee_period=result["network_params"]["shard_committee_period"], network_sync_base_url=result["network_params"]["network_sync_base_url"], + data_column_sidecar_subnet_count=result["network_params"][ + "data_column_sidecar_subnet_count" + ], + samples_per_slot=result["network_params"]["samples_per_slot"], + custody_requirement=result["network_params"]["custody_requirement"], + target_number_of_peers=result["network_params"]["target_number_of_peers"], preset=result["network_params"]["preset"], ), mev_params=struct( @@ -703,6 +709,10 @@ def default_network_params(): "eip7594_fork_epoch": 100000001, "eip7594_fork_version": "0x70000038", "network_sync_base_url": "https://ethpandaops-ethereum-node-snapshots.ams3.digitaloceanspaces.com/", + "data_column_sidecar_subnet_count": 32, + "samples_per_slot": 8, + "custody_requirement": 1, + "target_number_of_peers": 70, "preset": "mainnet", } @@ -728,6 +738,10 @@ def default_minimal_network_params(): "eip7594_fork_epoch": 100000001, "eip7594_fork_version": "0x70000038", "network_sync_base_url": "https://ethpandaops-ethereum-node-snapshots.ams3.digitaloceanspaces.com/", + "data_column_sidecar_subnet_count": 32, + "samples_per_slot": 8, + "custody_requirement": 1, + "target_number_of_peers": 70, "preset": "minimal", } diff --git a/src/participant_network.star b/src/participant_network.star index cbc7cab00..99df16edd 100644 --- a/src/participant_network.star +++ b/src/participant_network.star @@ -107,6 +107,10 @@ def launch_participant_network( latest_block.files_artifacts[0] if latest_block != "" else "", network_params.min_validator_withdrawability_delay, network_params.shard_committee_period, + network_params.data_column_sidecar_subnet_count, + network_params.samples_per_slot, + network_params.custody_requirement, + network_params.target_number_of_peers, network_params.preset, ) elif network_params.network in constants.PUBLIC_NETWORKS: diff --git a/src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star b/src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star index 02fac0a64..4d65e372d 100644 --- a/src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star +++ b/src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star @@ -31,6 +31,10 @@ def generate_el_cl_genesis_data( latest_block, min_validator_withdrawability_delay, shard_committee_period, + data_column_sidecar_subnet_count, + samples_per_slot, + custody_requirement, + target_number_of_peers, preset, ): files = {} @@ -58,6 +62,10 @@ def generate_el_cl_genesis_data( shadowfork_file, min_validator_withdrawability_delay, shard_committee_period, + data_column_sidecar_subnet_count, + samples_per_slot, + custody_requirement, + target_number_of_peers, preset, ) genesis_generation_template = shared_utils.new_template_and_data( @@ -141,6 +149,10 @@ def new_env_file_for_el_cl_genesis_data( shadowfork_file, min_validator_withdrawability_delay, shard_committee_period, + data_column_sidecar_subnet_count, + samples_per_slot, + custody_requirement, + target_number_of_peers, preset, ): return { @@ -167,5 +179,9 @@ def new_env_file_for_el_cl_genesis_data( "ShadowForkFile": shadowfork_file, "MinValidatorWithdrawabilityDelay": min_validator_withdrawability_delay, "ShardCommitteePeriod": shard_committee_period, + "DataColumnSidecarSubnetCount": data_column_sidecar_subnet_count, + "SamplesPerSlot": samples_per_slot, + "CustodyRequirement": custody_requirement, + "TargetNumberOfPeers": target_number_of_peers, "Preset": preset, } diff --git a/static_files/genesis-generation-config/el-cl/values.env.tmpl b/static_files/genesis-generation-config/el-cl/values.env.tmpl index 7e6a4a92e..dc3d74680 100644 --- a/static_files/genesis-generation-config/el-cl/values.env.tmpl +++ b/static_files/genesis-generation-config/el-cl/values.env.tmpl @@ -27,3 +27,7 @@ export ETH1_FOLLOW_DISTANCE={{ .Eth1FollowDistance }} export SHADOW_FORK_FILE={{ .ShadowForkFile }} export MIN_VALIDATOR_WITHDRAWABILITY_DELAY={{ .MinValidatorWithdrawabilityDelay }} export SHARD_COMMITTEE_PERIOD={{ .ShardCommitteePeriod }} +export DATA_COLUMN_SIDECAR_SUBNET_COUNT={{ .DataColumnSidecarSubnetCount }} +export SAMPLES_PER_SLOT={{ .SamplesPerSlot }} +export CUSTODY_REQUIREMENT={{ .CustodyRequirement }} +export TARGET_NUMBER_OF_PEERS={{ .TargetNumberOfPeers }}