From 2a861329948889558a1fa11102d09c1460b8b18d Mon Sep 17 00:00:00 2001 From: james-prysm <90280386+james-prysm@users.noreply.github.com> Date: Fri, 3 Oct 2025 13:32:44 -0500 Subject: [PATCH] removing old unused configs and hiding prysm specific configs (#15797) * removing old unused configs and hiding configs to align with other clients * gaz and removing unneeded from test * fixing test * fixing test --- beacon-chain/rpc/eth/blob/BUILD.bazel | 1 + beacon-chain/rpc/eth/blob/handlers_test.go | 34 +++++++++----------- beacon-chain/rpc/eth/config/handlers.go | 4 +-- beacon-chain/rpc/eth/config/handlers_test.go | 17 +--------- changelog/james-prysm_config-cleanup.md | 3 ++ config/params/config.go | 31 ++++++++---------- config/params/loader.go | 2 -- config/params/mainnet_config.go | 2 -- config/params/minimal_config.go | 1 - 9 files changed, 36 insertions(+), 59 deletions(-) create mode 100644 changelog/james-prysm_config-cleanup.md diff --git a/beacon-chain/rpc/eth/blob/BUILD.bazel b/beacon-chain/rpc/eth/blob/BUILD.bazel index e98c2bd769..fe0386a5a9 100644 --- a/beacon-chain/rpc/eth/blob/BUILD.bazel +++ b/beacon-chain/rpc/eth/blob/BUILD.bazel @@ -51,6 +51,7 @@ go_test( "//testing/assert:go_default_library", "//testing/require:go_default_library", "//testing/util:go_default_library", + "//time/slots:go_default_library", "@com_github_ethereum_go_ethereum//common/hexutil:go_default_library", ], ) diff --git a/beacon-chain/rpc/eth/blob/handlers_test.go b/beacon-chain/rpc/eth/blob/handlers_test.go index a40d998a7a..33cac54941 100644 --- a/beacon-chain/rpc/eth/blob/handlers_test.go +++ b/beacon-chain/rpc/eth/blob/handlers_test.go @@ -30,6 +30,7 @@ import ( "github.com/OffchainLabs/prysm/v6/testing/assert" "github.com/OffchainLabs/prysm/v6/testing/require" "github.com/OffchainLabs/prysm/v6/testing/util" + "github.com/OffchainLabs/prysm/v6/time/slots" "github.com/ethereum/go-ethereum/common/hexutil" ) @@ -266,7 +267,9 @@ func TestBlobs(t *testing.T) { require.Equal(t, false, resp.Finalized) }) t.Run("blob index over max", func(t *testing.T) { - overLimit := maxBlobsPerBlockByVersion(version.Deneb) + forkslot, err := slots.EpochStart(params.BeaconConfig().DenebForkEpoch) + require.NoError(t, err) + overLimit := params.BeaconConfig().MaxBlobsPerBlock(forkslot) u := fmt.Sprintf("http://foo.example/123?indices=%d", overLimit) request := httptest.NewRequest("GET", u, nil) writer := httptest.NewRecorder() @@ -432,7 +435,10 @@ func TestBlobs_Electra(t *testing.T) { params.OverrideBeaconConfig(cfg) db := testDB.SetupDB(t) - electraBlock, blobs := util.GenerateTestElectraBlockWithSidecar(t, [32]byte{}, 123, maxBlobsPerBlockByVersion(version.Electra)) + forkslot, err := slots.EpochStart(params.BeaconConfig().ElectraForkEpoch) + require.NoError(t, err) + overLimit := params.BeaconConfig().MaxBlobsPerBlock(forkslot) + electraBlock, blobs := util.GenerateTestElectraBlockWithSidecar(t, [32]byte{}, 123, overLimit) require.NoError(t, db.SaveBlock(t.Context(), electraBlock)) bs := filesystem.NewEphemeralBlobStorage(t) testSidecars := verification.FakeVerifySliceForTest(t, blobs) @@ -468,7 +474,7 @@ func TestBlobs_Electra(t *testing.T) { assert.Equal(t, http.StatusOK, writer.Code) resp := &structs.SidecarsResponse{} require.NoError(t, json.Unmarshal(writer.Body.Bytes(), resp)) - require.Equal(t, maxBlobsPerBlockByVersion(version.Electra), len(resp.Data)) + require.Equal(t, overLimit, len(resp.Data)) sidecar := resp.Data[0] require.NotNil(t, sidecar) assert.Equal(t, "0", sidecar.Index) @@ -481,7 +487,7 @@ func TestBlobs_Electra(t *testing.T) { require.Equal(t, false, resp.Finalized) }) t.Run("requested blob index at max", func(t *testing.T) { - limit := maxBlobsPerBlockByVersion(version.Electra) - 1 + limit := overLimit - 1 u := fmt.Sprintf("http://foo.example/123?indices=%d", limit) request := httptest.NewRequest("GET", u, nil) writer := httptest.NewRecorder() @@ -513,7 +519,6 @@ func TestBlobs_Electra(t *testing.T) { require.Equal(t, false, resp.Finalized) }) t.Run("blob index over max", func(t *testing.T) { - overLimit := maxBlobsPerBlockByVersion(version.Electra) u := fmt.Sprintf("http://foo.example/123?indices=%d", overLimit) request := httptest.NewRequest("GET", u, nil) writer := httptest.NewRecorder() @@ -1009,7 +1014,10 @@ func TestGetBlobs(t *testing.T) { // Test for Electra fork t.Run("electra max blobs", func(t *testing.T) { - electraBlock, electraBlobs := util.GenerateTestElectraBlockWithSidecar(t, [32]byte{}, 323, maxBlobsPerBlockByVersion(version.Electra)) + forkslot, err := slots.EpochStart(params.BeaconConfig().ElectraForkEpoch) + require.NoError(t, err) + overLimit := params.BeaconConfig().MaxBlobsPerBlock(forkslot) + electraBlock, electraBlobs := util.GenerateTestElectraBlockWithSidecar(t, [32]byte{}, 323, overLimit) require.NoError(t, db.SaveBlock(t.Context(), electraBlock)) electraBs := filesystem.NewEphemeralBlobStorage(t) electraSidecars := verification.FakeVerifySliceForTest(t, electraBlobs) @@ -1036,7 +1044,8 @@ func TestGetBlobs(t *testing.T) { assert.Equal(t, http.StatusOK, writer.Code) resp := &structs.GetBlobsResponse{} require.NoError(t, json.Unmarshal(writer.Body.Bytes(), resp)) - require.Equal(t, maxBlobsPerBlockByVersion(version.Electra), len(resp.Data)) + + require.Equal(t, overLimit, len(resp.Data)) blob := resp.Data[0] require.NotNil(t, blob) assert.Equal(t, hexutil.Encode(electraBlobs[0].Blob), blob) @@ -1145,14 +1154,3 @@ func unmarshalBlobs(t *testing.T, response []byte) [][]byte { } return blobs } - -func maxBlobsPerBlockByVersion(v int) int { - if v >= version.Fulu { - return params.BeaconConfig().DeprecatedMaxBlobsPerBlockFulu - } - if v >= version.Electra { - return params.BeaconConfig().DeprecatedMaxBlobsPerBlockElectra - } - - return params.BeaconConfig().DeprecatedMaxBlobsPerBlock -} diff --git a/beacon-chain/rpc/eth/config/handlers.go b/beacon-chain/rpc/eth/config/handlers.go index fc46bff16a..b4cf372963 100644 --- a/beacon-chain/rpc/eth/config/handlers.go +++ b/beacon-chain/rpc/eth/config/handlers.go @@ -167,8 +167,8 @@ func prepareConfigSpec() (map[string]interface{}, error) { for i := 0; i < t.NumField(); i++ { tField := t.Field(i) - _, isSpec := tField.Tag.Lookup("spec") - if !isSpec { + specTag, isSpec := tField.Tag.Lookup("spec") + if !isSpec || specTag != "true" { continue } if shouldSkip(tField) { diff --git a/beacon-chain/rpc/eth/config/handlers_test.go b/beacon-chain/rpc/eth/config/handlers_test.go index 13c4fe69f8..36ef6a0e97 100644 --- a/beacon-chain/rpc/eth/config/handlers_test.go +++ b/beacon-chain/rpc/eth/config/handlers_test.go @@ -145,7 +145,6 @@ func TestGetSpec(t *testing.T) { config.PendingDepositsLimit = 82 config.MaxPendingPartialsPerWithdrawalsSweep = 83 config.PendingConsolidationsLimit = 84 - config.MaxPartialWithdrawalsPerPayload = 85 config.FullExitRequestAmount = 86 config.MaxConsolidationsRequestsPerPayload = 87 config.MaxAttesterSlashingsElectra = 88 @@ -202,8 +201,7 @@ func TestGetSpec(t *testing.T) { require.NoError(t, json.Unmarshal(writer.Body.Bytes(), &resp)) data, ok := resp.Data.(map[string]interface{}) require.Equal(t, true, ok) - - assert.Equal(t, 177, len(data)) + assert.Equal(t, 171, len(data)) for k, v := range data { t.Run(k, func(t *testing.T) { switch k { @@ -241,8 +239,6 @@ func TestGetSpec(t *testing.T) { assert.Equal(t, "14", v) case "RANDOM_SUBNETS_PER_VALIDATOR": assert.Equal(t, "15", v) - case "EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION": - assert.Equal(t, "16", v) case "SECONDS_PER_ETH1_BLOCK": assert.Equal(t, "17", v) case "DEPOSIT_CHAIN_ID": @@ -439,8 +435,6 @@ func TestGetSpec(t *testing.T) { assert.Equal(t, "16777216", v) case "PROPOSER_SCORE_BOOST": assert.Equal(t, "40", v) - case "INTERVALS_PER_SLOT": - assert.Equal(t, "3", v) case "MAX_WITHDRAWALS_PER_PAYLOAD": assert.Equal(t, "74", v) case "MAX_BLS_TO_EXECUTION_CHANGES": @@ -457,9 +451,6 @@ func TestGetSpec(t *testing.T) { assert.Equal(t, "8", v) case "MAX_REQUEST_LIGHT_CLIENT_UPDATES": assert.Equal(t, "128", v) - case "SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY": - case "NODE_ID_BITS": - assert.Equal(t, "256", v) case "ATTESTATION_SUBNET_EXTRA_BITS": assert.Equal(t, "0", v) case "ATTESTATION_SUBNET_PREFIX_BITS": @@ -522,8 +513,6 @@ func TestGetSpec(t *testing.T) { assert.Equal(t, "83", v) case "PENDING_CONSOLIDATIONS_LIMIT": assert.Equal(t, "84", v) - case "MAX_PARTIAL_WITHDRAWALS_PER_PAYLOAD": - assert.Equal(t, "85", v) case "FULL_EXIT_REQUEST_AMOUNT": assert.Equal(t, "86", v) case "MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD": @@ -542,8 +531,6 @@ func TestGetSpec(t *testing.T) { assert.Equal(t, "93", v) case "MAX_PENDING_DEPOSITS_PER_EPOCH": assert.Equal(t, "94", v) - case "TARGET_BLOBS_PER_BLOCK_ELECTRA": - assert.Equal(t, "6", v) case "MAX_BLOBS_PER_BLOCK_ELECTRA": assert.Equal(t, "9", v) case "MAX_REQUEST_BLOB_SIDECARS_ELECTRA": @@ -574,8 +561,6 @@ func TestGetSpec(t *testing.T) { assert.Equal(t, "100", v) case "KZG_COMMITMENT_INCLUSION_PROOF_DEPTH": assert.Equal(t, "101", v) - case "MAX_BLOBS_PER_BLOCK_FULU": - assert.Equal(t, "12", v) case "BLOB_SIDECAR_SUBNET_COUNT": assert.Equal(t, "102", v) case "BLOB_SIDECAR_SUBNET_COUNT_ELECTRA": diff --git a/changelog/james-prysm_config-cleanup.md b/changelog/james-prysm_config-cleanup.md new file mode 100644 index 0000000000..b686b28e0e --- /dev/null +++ b/changelog/james-prysm_config-cleanup.md @@ -0,0 +1,3 @@ +### Removed + +- removed unused configs and hides prysm specific configs from `/eth/v1/config/spec` endpoint \ No newline at end of file diff --git a/config/params/config.go b/config/params/config.go index 1c7a3ad4c0..a6bd5991da 100644 --- a/config/params/config.go +++ b/config/params/config.go @@ -84,7 +84,7 @@ type BeaconChainConfig struct { ReorgHeadWeightThreshold uint64 `yaml:"REORG_HEAD_WEIGHT_THRESHOLD" spec:"true"` // ReorgHeadWeightThreshold defines a value that is a % of the committee weight to consider a block weak and subject to being orphaned. ReorgParentWeightThreshold uint64 `yaml:"REORG_PARENT_WEIGHT_THRESHOLD" spec:"true"` // ReorgParentWeightThreshold defines a value that is a % of the committee weight to consider a parent block strong and subject its child to being orphaned. ReorgMaxEpochsSinceFinalization primitives.Epoch `yaml:"REORG_MAX_EPOCHS_SINCE_FINALIZATION" spec:"true"` // This defines a limit to consider safe to orphan a block if the network is finalizing - IntervalsPerSlot uint64 `yaml:"INTERVALS_PER_SLOT" spec:"true"` // IntervalsPerSlot defines the number of fork choice intervals in a slot defined in the fork choice spec. + IntervalsPerSlot uint64 `yaml:"INTERVALS_PER_SLOT"` // IntervalsPerSlot defines the number of fork choice intervals in a slot defined in the fork choice spec. // Ethereum PoW parameters. DepositChainID uint64 `yaml:"DEPOSIT_CHAIN_ID" spec:"true"` // DepositChainID of the eth1 network. This used for replay protection. @@ -92,8 +92,8 @@ type BeaconChainConfig struct { DepositContractAddress string `yaml:"DEPOSIT_CONTRACT_ADDRESS" spec:"true"` // DepositContractAddress is the address of the deposit contract. // Validator parameters. - RandomSubnetsPerValidator uint64 `yaml:"RANDOM_SUBNETS_PER_VALIDATOR" spec:"true"` // RandomSubnetsPerValidator specifies the amount of subnets a validator has to be subscribed to at one time. - EpochsPerRandomSubnetSubscription uint64 `yaml:"EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION" spec:"true"` // EpochsPerRandomSubnetSubscription specifies the minimum duration a validator is connected to their subnet. + RandomSubnetsPerValidator uint64 `yaml:"RANDOM_SUBNETS_PER_VALIDATOR" spec:"true"` // RandomSubnetsPerValidator specifies the amount of subnets a validator has to be subscribed to at one time. + EpochsPerRandomSubnetSubscription uint64 `yaml:"EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION"` // EpochsPerRandomSubnetSubscription specifies the minimum duration a validator is connected to their subnet. // State list lengths EpochsPerHistoricalVector primitives.Epoch `yaml:"EPOCHS_PER_HISTORICAL_VECTOR" spec:"true"` // EpochsPerHistoricalVector defines max length in epoch to store old historical stats in beacon state. @@ -110,15 +110,14 @@ type BeaconChainConfig struct { ProportionalSlashingMultiplier uint64 `yaml:"PROPORTIONAL_SLASHING_MULTIPLIER" spec:"true"` // ProportionalSlashingMultiplier is used as a multiplier on slashed penalties. // Max operations per block constants. - MaxProposerSlashings uint64 `yaml:"MAX_PROPOSER_SLASHINGS" spec:"true"` // MaxProposerSlashings defines the maximum number of slashings of proposers possible in a block. - MaxAttesterSlashings uint64 `yaml:"MAX_ATTESTER_SLASHINGS" spec:"true"` // MaxAttesterSlashings defines the maximum number of casper FFG slashings possible in a block. - MaxAttesterSlashingsElectra uint64 `yaml:"MAX_ATTESTER_SLASHINGS_ELECTRA" spec:"true"` // MaxAttesterSlashingsElectra defines the maximum number of casper FFG slashings possible in a block post Electra hard fork. - MaxAttestations uint64 `yaml:"MAX_ATTESTATIONS" spec:"true"` // MaxAttestations defines the maximum allowed attestations in a beacon block. - MaxAttestationsElectra uint64 `yaml:"MAX_ATTESTATIONS_ELECTRA" spec:"true"` // MaxAttestationsElectra defines the maximum allowed attestations in a beacon block post Electra hard fork. - MaxDeposits uint64 `yaml:"MAX_DEPOSITS" spec:"true"` // MaxDeposits defines the maximum number of validator deposits in a block. - MaxVoluntaryExits uint64 `yaml:"MAX_VOLUNTARY_EXITS" spec:"true"` // MaxVoluntaryExits defines the maximum number of validator exits in a block. - MaxWithdrawalsPerPayload uint64 `yaml:"MAX_WITHDRAWALS_PER_PAYLOAD" spec:"true"` // MaxWithdrawalsPerPayload defines the maximum number of withdrawals in a block. - MaxPartialWithdrawalsPerPayload uint64 `yaml:"MAX_PARTIAL_WITHDRAWALS_PER_PAYLOAD" spec:"true"` + MaxProposerSlashings uint64 `yaml:"MAX_PROPOSER_SLASHINGS" spec:"true"` // MaxProposerSlashings defines the maximum number of slashings of proposers possible in a block. + MaxAttesterSlashings uint64 `yaml:"MAX_ATTESTER_SLASHINGS" spec:"true"` // MaxAttesterSlashings defines the maximum number of casper FFG slashings possible in a block. + MaxAttesterSlashingsElectra uint64 `yaml:"MAX_ATTESTER_SLASHINGS_ELECTRA" spec:"true"` // MaxAttesterSlashingsElectra defines the maximum number of casper FFG slashings possible in a block post Electra hard fork. + MaxAttestations uint64 `yaml:"MAX_ATTESTATIONS" spec:"true"` // MaxAttestations defines the maximum allowed attestations in a beacon block. + MaxAttestationsElectra uint64 `yaml:"MAX_ATTESTATIONS_ELECTRA" spec:"true"` // MaxAttestationsElectra defines the maximum allowed attestations in a beacon block post Electra hard fork. + MaxDeposits uint64 `yaml:"MAX_DEPOSITS" spec:"true"` // MaxDeposits defines the maximum number of validator deposits in a block. + MaxVoluntaryExits uint64 `yaml:"MAX_VOLUNTARY_EXITS" spec:"true"` // MaxVoluntaryExits defines the maximum number of validator exits in a block. + MaxWithdrawalsPerPayload uint64 `yaml:"MAX_WITHDRAWALS_PER_PAYLOAD" spec:"true"` // MaxWithdrawalsPerPayload defines the maximum number of withdrawals in a block. MaxBlsToExecutionChanges uint64 `yaml:"MAX_BLS_TO_EXECUTION_CHANGES" spec:"true"` // MaxBlsToExecutionChanges defines the maximum number of BLS-to-execution-change objects in a block. MaxValidatorsPerWithdrawalsSweep uint64 `yaml:"MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP" spec:"true"` // MaxValidatorsPerWithdrawalsSweep bounds the size of the sweep searching for withdrawals per slot. @@ -304,7 +303,7 @@ type BeaconChainConfig struct { AttestationSubnetExtraBits uint64 `yaml:"ATTESTATION_SUBNET_EXTRA_BITS" spec:"true"` // AttestationSubnetExtraBits is the number of extra bits of a NodeId to use when mapping to a subscribed subnet. AttestationSubnetPrefixBits uint64 `yaml:"ATTESTATION_SUBNET_PREFIX_BITS" spec:"true"` // AttestationSubnetPrefixBits is defined as (ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS). SubnetsPerNode uint64 `yaml:"SUBNETS_PER_NODE" spec:"true"` // SubnetsPerNode is the number of long-lived subnets a beacon node should be subscribed to. - NodeIdBits uint64 `yaml:"NODE_ID_BITS" spec:"true"` // NodeIdBits defines the bit length of a node id. + NodeIdBits uint64 `yaml:"NODE_ID_BITS"` // NodeIdBits defines the bit length of a node id. // Blobs Values BlobSchedule []BlobScheduleEntry `yaml:"BLOB_SCHEDULE" spec:"true"` @@ -319,11 +318,7 @@ type BeaconChainConfig struct { // DeprecatedTargetBlobsPerBlockElectra defines the target number of blobs per block post Electra hard fork. // Deprecated: This field is no longer supported. Avoid using it. - DeprecatedTargetBlobsPerBlockElectra int `yaml:"TARGET_BLOBS_PER_BLOCK_ELECTRA" spec:"true"` - - // DeprecatedMaxBlobsPerBlockFulu defines the max blobs that could exist in a block post Fulu hard fork. - // Deprecated: This field is no longer supported. Avoid using it. - DeprecatedMaxBlobsPerBlockFulu int `yaml:"MAX_BLOBS_PER_BLOCK_FULU" spec:"true"` + DeprecatedTargetBlobsPerBlockElectra int `yaml:"TARGET_BLOBS_PER_BLOCK_ELECTRA"` forkSchedule *NetworkSchedule bpoSchedule *NetworkSchedule diff --git a/config/params/loader.go b/config/params/loader.go index cdedbddfcd..9b913d4d0c 100644 --- a/config/params/loader.go +++ b/config/params/loader.go @@ -241,8 +241,6 @@ func ConfigToYaml(cfg *BeaconChainConfig) []byte { fmt.Sprintf("MIN_EPOCHS_FOR_BLOCK_REQUESTS: %d", int(cfg.MinEpochsForBlockRequests)), fmt.Sprintf("MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: %d", cfg.MinPerEpochChurnLimitElectra), fmt.Sprintf("MAX_BLOBS_PER_BLOCK: %d", cfg.DeprecatedMaxBlobsPerBlock), - fmt.Sprintf("MAX_BLOBS_PER_BLOCK_ELECTRA: %d", cfg.DeprecatedMaxBlobsPerBlockElectra), - fmt.Sprintf("MAX_BLOBS_PER_BLOCK_FULU: %d", cfg.DeprecatedMaxBlobsPerBlockFulu), } if len(cfg.BlobSchedule) > 0 { diff --git a/config/params/mainnet_config.go b/config/params/mainnet_config.go index 2b55b40d82..fd2997730a 100644 --- a/config/params/mainnet_config.go +++ b/config/params/mainnet_config.go @@ -321,8 +321,6 @@ var mainnetBeaconConfig = &BeaconChainConfig{ MaxCellsInExtendedMatrix: 768, ValidatorCustodyRequirement: 8, BalancePerAdditionalCustodyGroup: 32_000_000_000, - DeprecatedMaxBlobsPerBlockFulu: 12, - // Values related to networking parameters. MaxPayloadSize: 10 * 1 << 20, // 10 MiB AttestationSubnetCount: 64, diff --git a/config/params/minimal_config.go b/config/params/minimal_config.go index fb92dbda97..afe1d9a62f 100644 --- a/config/params/minimal_config.go +++ b/config/params/minimal_config.go @@ -111,7 +111,6 @@ func MinimalSpecConfig() *BeaconChainConfig { minimalConfig.MinPerEpochChurnLimitElectra = 64000000000 minimalConfig.MaxPerEpochActivationExitChurnLimit = 128000000000 minimalConfig.PendingConsolidationsLimit = 64 - minimalConfig.MaxPartialWithdrawalsPerPayload = 1 minimalConfig.PendingPartialWithdrawalsLimit = 64 minimalConfig.MaxPendingPartialsPerWithdrawalsSweep = 2 minimalConfig.PendingDepositsLimit = 134217728