From 977e92369281436393b11f61f2252f0739c55fc6 Mon Sep 17 00:00:00 2001 From: terence Date: Mon, 22 Sep 2025 19:10:20 -0700 Subject: [PATCH] Set Fulu fork epochs for Holesky, Hoodi, and Sepolia testnets (#15721) * Set Fulu fork epochs for Holesky, Hoodi, and Sepolia testnets * Update commits * Add fulu.yaml to the presets file path loader * Add the following placeholder fields: - CELLS_PER_EXT_BLOB - FIELD_ELEMENTS_PER_CELL - FIELD_ELEMENTS_PER_EXT_BLOB - KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH --------- Co-authored-by: Preston Van Loon --- WORKSPACE | 18 +++++++++--------- changelog/ttsao_set-fulu-fork-epochs.md | 3 +++ config/params/loader_test.go | 5 +++++ config/params/testnet_holesky_config.go | 17 ++++++++++++----- config/params/testnet_hoodi_config.go | 17 +++++++++++------ config/params/testnet_sepolia_config.go | 17 ++++++++++++----- 6 files changed, 52 insertions(+), 25 deletions(-) create mode 100644 changelog/ttsao_set-fulu-fork-epochs.md diff --git a/WORKSPACE b/WORKSPACE index cdf3fff9a1..cc5f2cc688 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -327,9 +327,9 @@ filegroup( visibility = ["//visibility:public"], ) """, - integrity = "sha256-YVFFrCmjoGZ3fXMWpsCpSsYbANy1grnqYwOLKIg2SsA=", - strip_prefix = "holesky-32a72e21c6e53c262f27d50dd540cb654517d03a", - url = "https://github.com/eth-clients/holesky/archive/32a72e21c6e53c262f27d50dd540cb654517d03a.tar.gz", # 2025-03-17 + integrity = "sha256-dB5vtXbG4XkyL6Tr2+VjJk3/17yqgcWI/WXf2s7FznE=", + strip_prefix = "holesky-bd469753624a53b8855fcf2c2f5edfcd2936e425", + url = "https://github.com/eth-clients/holesky/archive/bd469753624a53b8855fcf2c2f5edfcd2936e425.tar.gz", ) http_archive( @@ -359,9 +359,9 @@ filegroup( visibility = ["//visibility:public"], ) """, - integrity = "sha256-b5F7Wg9LLMqGRIpP2uqb/YsSFVn2ynzlV7g/Nb1EFLk=", - strip_prefix = "sepolia-562d9938f08675e9ba490a1dfba21fb05843f39f", - url = "https://github.com/eth-clients/sepolia/archive/562d9938f08675e9ba490a1dfba21fb05843f39f.tar.gz", # 2025-03-17 + integrity = "sha256-jF05y+5f3Wcp2b6sKh6ip0b//rrV65X4iFDyjZ2cIbE=", + strip_prefix = "sepolia-56f0bff41cecab6c661251d72b73ceecc52c5701", + url = "https://github.com/eth-clients/sepolia/archive/56f0bff41cecab6c661251d72b73ceecc52c5701.tar.gz", ) http_archive( @@ -375,9 +375,9 @@ filegroup( visibility = ["//visibility:public"], ) """, - integrity = "sha256-dPiEWUd8QvbYGwGtIm0QtCekitVLOLsW5rpQIGzz8PU=", - strip_prefix = "hoodi-828c2c940e1141092bd4bb979cef547ea926d272", - url = "https://github.com/eth-clients/hoodi/archive/828c2c940e1141092bd4bb979cef547ea926d272.tar.gz", + integrity = "sha256-vvbKzHQSurReSRxaBIhxsYavajvN19goigA1xATzIEo=", + strip_prefix = "hoodi-21a110a60e6558a2ba7c819fa4b80029d49ab205", + url = "https://github.com/eth-clients/hoodi/archive/21a110a60e6558a2ba7c819fa4b80029d49ab205.tar.gz", ) http_archive( diff --git a/changelog/ttsao_set-fulu-fork-epochs.md b/changelog/ttsao_set-fulu-fork-epochs.md new file mode 100644 index 0000000000..ebbbd83b33 --- /dev/null +++ b/changelog/ttsao_set-fulu-fork-epochs.md @@ -0,0 +1,3 @@ +### Changed + +- Set Fulu fork epochs for Holesky, Hoodi, and Sepolia testnets diff --git a/config/params/loader_test.go b/config/params/loader_test.go index c9ea23dad2..19831ca62e 100644 --- a/config/params/loader_test.go +++ b/config/params/loader_test.go @@ -30,6 +30,7 @@ var placeholderFields = []string{ "ATTESTATION_DUE_BPS", "ATTESTATION_DUE_BPS_GLOAS", "BLOB_SIDECAR_SUBNET_COUNT_FULU", + "CELLS_PER_EXT_BLOB", "CONTRIBUTION_DUE_BPS", "CONTRIBUTION_DUE_BPS_GLOAS", "EIP6110_FORK_EPOCH", @@ -45,10 +46,13 @@ var placeholderFields = []string{ "EIP7928_FORK_EPOCH", "EIP7928_FORK_VERSION", "EPOCHS_PER_SHUFFLING_PHASE", + "FIELD_ELEMENTS_PER_CELL", // Configured as a constant in config/fieldparams/mainnet.go + "FIELD_ELEMENTS_PER_EXT_BLOB", // Configured in proto/ssz_proto_library.bzl "GLOAS_FORK_EPOCH", "GLOAS_FORK_VERSION", "INCLUSION_LIST_SUBMISSION_DEADLINE", "INCLUSION_LIST_SUBMISSION_DUE_BPS", + "KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH", // Configured in proto/ssz_proto_library.bzl "MAX_BYTES_PER_INCLUSION_LIST", "MAX_REQUEST_BLOB_SIDECARS_FULU", "MAX_REQUEST_INCLUSION_LIST", @@ -388,6 +392,7 @@ func presetsFilePath(t *testing.T, config string) []string { path.Join(fPath, "presets", config, "capella.yaml"), path.Join(fPath, "presets", config, "deneb.yaml"), path.Join(fPath, "presets", config, "electra.yaml"), + path.Join(fPath, "presets", config, "fulu.yaml"), } } diff --git a/config/params/testnet_holesky_config.go b/config/params/testnet_holesky_config.go index cc8de7afc1..f07865f256 100644 --- a/config/params/testnet_holesky_config.go +++ b/config/params/testnet_holesky_config.go @@ -1,7 +1,5 @@ package params -import "math" - // UseHoleskyNetworkConfig uses the Holesky beacon chain specific network config. func UseHoleskyNetworkConfig() { cfg := BeaconNetworkConfig().Copy() @@ -41,12 +39,21 @@ func HoleskyConfig() *BeaconChainConfig { cfg.DenebForkVersion = []byte{0x05, 0x1, 0x70, 0x0} cfg.ElectraForkEpoch = 115968 // Mon, Feb 24 at 21:55:12 UTC cfg.ElectraForkVersion = []byte{0x06, 0x1, 0x70, 0x0} - cfg.FuluForkEpoch = math.MaxUint64 - cfg.FuluForkVersion = []byte{0x07, 0x1, 0x70, 0x0} // TODO: Define holesky fork version for fulu. This is a placeholder value. + cfg.FuluForkEpoch = 165120 // 2025-10-01 08:48:00 UTC + cfg.FuluForkVersion = []byte{0x07, 0x1, 0x70, 0x0} cfg.TerminalTotalDifficulty = "0" cfg.DepositContractAddress = "0x4242424242424242424242424242424242424242" cfg.EjectionBalance = 28000000000 - cfg.BlobSchedule = []BlobScheduleEntry{} + cfg.BlobSchedule = []BlobScheduleEntry{ + { + MaxBlobsPerBlock: 15, + Epoch: 166400, // 2025-10-07 01:20:00 UTC + }, + { + MaxBlobsPerBlock: 21, + Epoch: 167936, // 2025-10-13 21:10:24 UTC + }, + } cfg.InitializeForkSchedule() return cfg } diff --git a/config/params/testnet_hoodi_config.go b/config/params/testnet_hoodi_config.go index 1388d5f70f..a0cbd547dd 100644 --- a/config/params/testnet_hoodi_config.go +++ b/config/params/testnet_hoodi_config.go @@ -1,9 +1,5 @@ package params -import ( - "math" -) - // UseHoodiNetworkConfig uses the Hoodi beacon chain specific network config. func UseHoodiNetworkConfig() { cfg := BeaconNetworkConfig().Copy() @@ -49,11 +45,20 @@ func HoodiConfig() *BeaconChainConfig { cfg.DenebForkVersion = []byte{0x50, 0x00, 0x09, 0x10} cfg.ElectraForkEpoch = 2048 cfg.ElectraForkVersion = []byte{0x60, 0x00, 0x09, 0x10} - cfg.FuluForkEpoch = math.MaxUint64 + cfg.FuluForkEpoch = 50688 // 2025-10-28 18:53:12 UTC cfg.FuluForkVersion = []byte{0x70, 0x00, 0x09, 0x10} cfg.TerminalTotalDifficulty = "0" cfg.DepositContractAddress = "0x00000000219ab540356cBB839Cbe05303d7705Fa" - cfg.BlobSchedule = []BlobScheduleEntry{} + cfg.BlobSchedule = []BlobScheduleEntry{ + { + MaxBlobsPerBlock: 15, + Epoch: 52480, // 2025-11-05 18:02:00 UTC + }, + { + MaxBlobsPerBlock: 21, + Epoch: 54016, // 2025-11-12 13:52:24 UTC + }, + } cfg.DefaultBuilderGasLimit = uint64(60000000) cfg.InitializeForkSchedule() return cfg diff --git a/config/params/testnet_sepolia_config.go b/config/params/testnet_sepolia_config.go index d164d60ec3..8c0a7d02a4 100644 --- a/config/params/testnet_sepolia_config.go +++ b/config/params/testnet_sepolia_config.go @@ -1,8 +1,6 @@ package params import ( - "math" - eth1Params "github.com/ethereum/go-ethereum/params" ) @@ -46,12 +44,21 @@ func SepoliaConfig() *BeaconChainConfig { cfg.DenebForkVersion = []byte{0x90, 0x00, 0x00, 0x73} cfg.ElectraForkEpoch = 222464 // Wed, Mar 5 at 07:29:36 UTC cfg.ElectraForkVersion = []byte{0x90, 0x00, 0x00, 0x74} - cfg.FuluForkEpoch = math.MaxUint64 - cfg.FuluForkVersion = []byte{0x90, 0x00, 0x00, 0x75} // TODO: Define sepolia fork version for fulu. This is a placeholder value. + cfg.FuluForkEpoch = 272640 // 2025-10-14 07:36:00 UTC + cfg.FuluForkVersion = []byte{0x90, 0x00, 0x00, 0x75} cfg.TerminalTotalDifficulty = "17000000000000000" cfg.DepositContractAddress = "0x7f02C3E3c98b133055B8B348B2Ac625669Ed295D" cfg.DefaultBuilderGasLimit = uint64(60000000) - cfg.BlobSchedule = []BlobScheduleEntry{} + cfg.BlobSchedule = []BlobScheduleEntry{ + { + MaxBlobsPerBlock: 15, + Epoch: 274176, // 2025-10-21 03:26:24 UTC + }, + { + MaxBlobsPerBlock: 21, + Epoch: 275712, // 2025-10-27 23:16:48 UTC + }, + } cfg.InitializeForkSchedule() return cfg }