diff --git a/beacon-chain/blockchain/BUILD.bazel b/beacon-chain/blockchain/BUILD.bazel index c3101e6cf5..20b05da513 100644 --- a/beacon-chain/blockchain/BUILD.bazel +++ b/beacon-chain/blockchain/BUILD.bazel @@ -46,6 +46,7 @@ go_library( "//beacon-chain/state:go_default_library", "//beacon-chain/state/stategen:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//monitoring/tracing:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", @@ -53,7 +54,6 @@ go_library( "//shared/attestationutil:go_default_library", "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/mputil:go_default_library", "//shared/params:go_default_library", "//shared/version:go_default_library", diff --git a/beacon-chain/blockchain/head.go b/beacon-chain/blockchain/head.go index 939726ec7c..2bd1cd8853 100644 --- a/beacon-chain/blockchain/head.go +++ b/beacon-chain/blockchain/head.go @@ -13,10 +13,10 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/forkchoice/protoarray" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/config/features" ethpbv1 "github.com/prysmaticlabs/prysm/proto/eth/v1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/time/slots" "github.com/sirupsen/logrus" @@ -371,7 +371,7 @@ func (s *Service) notifyNewHeadEvent( // attestation pool. It also filters out the attestations that is one epoch older as a // defense so invalid attestations don't flow into the attestation pool. func (s *Service) saveOrphanedAtts(ctx context.Context, orphanedRoot [32]byte) error { - if !featureconfig.Get().CorrectlyInsertOrphanedAtts { + if !features.Get().CorrectlyInsertOrphanedAtts { return nil } diff --git a/beacon-chain/blockchain/head_test.go b/beacon-chain/blockchain/head_test.go index dc668177fd..ed4896452e 100644 --- a/beacon-chain/blockchain/head_test.go +++ b/beacon-chain/blockchain/head_test.go @@ -10,10 +10,10 @@ import ( mock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" "github.com/prysmaticlabs/prysm/beacon-chain/core" testDB "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" + "github.com/prysmaticlabs/prysm/config/features" ethpbv1 "github.com/prysmaticlabs/prysm/proto/eth/v1" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" @@ -215,7 +215,7 @@ func Test_notifyNewHeadEvent(t *testing.T) { } func TestSaveOrphanedAtts(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ CorrectlyInsertOrphanedAtts: true, }) defer resetCfg() @@ -241,7 +241,7 @@ func TestSaveOrphanedAtts(t *testing.T) { } func TestSaveOrphanedAtts_CanFilter(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ CorrectlyInsertOrphanedAtts: true, }) defer resetCfg() diff --git a/beacon-chain/blockchain/process_attestation_helpers.go b/beacon-chain/blockchain/process_attestation_helpers.go index 9b1c8aed85..a02d05ba85 100644 --- a/beacon-chain/blockchain/process_attestation_helpers.go +++ b/beacon-chain/blockchain/process_attestation_helpers.go @@ -11,9 +11,9 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/core/transition" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/mputil" "github.com/prysmaticlabs/prysm/shared/params" ) @@ -44,7 +44,7 @@ func (s *Service) getAttPreState(ctx context.Context, c *ethpb.Checkpoint) (stat return nil, err } if epochStartSlot > baseState.Slot() { - if featureconfig.Get().EnableNextSlotStateCache { + if features.Get().EnableNextSlotStateCache { baseState, err = transition.ProcessSlotsUsingNextSlotCache(ctx, baseState, c.Root, epochStartSlot) if err != nil { return nil, errors.Wrapf(err, "could not process slots up to epoch %d", c.Epoch) diff --git a/beacon-chain/blockchain/process_block.go b/beacon-chain/blockchain/process_block.go index 235b9ee2c6..eff91ab1dd 100644 --- a/beacon-chain/blockchain/process_block.go +++ b/beacon-chain/blockchain/process_block.go @@ -12,13 +12,13 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/core/transition" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/config/features" ethpbv1 "github.com/prysmaticlabs/prysm/proto/eth/v1" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/shared/attestationutil" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "go.opencensus.io/trace" ) @@ -107,7 +107,7 @@ func (s *Service) onBlock(ctx context.Context, signed block.SignedBeaconBlock, b } // Updating next slot state cache can happen in the background. It shouldn't block rest of the process. - if featureconfig.Get().EnableNextSlotStateCache { + if features.Get().EnableNextSlotStateCache { go func() { // Use a custom deadline here, since this method runs asynchronously. // We ignore the parent method's context and instead create a new one @@ -128,7 +128,7 @@ func (s *Service) onBlock(ctx context.Context, signed block.SignedBeaconBlock, b } newFinalized := postState.FinalizedCheckpointEpoch() > s.finalizedCheckpt.Epoch - if featureconfig.Get().UpdateHeadTimely { + if features.Get().UpdateHeadTimely { if newFinalized { if err := s.finalizedImpliesNewJustified(ctx, postState); err != nil { return errors.Wrap(err, "could not save new justified") @@ -166,7 +166,7 @@ func (s *Service) onBlock(ctx context.Context, signed block.SignedBeaconBlock, b if err := s.cfg.ForkChoiceStore.Prune(ctx, fRoot); err != nil { return errors.Wrap(err, "could not prune proto array fork choice nodes") } - if !featureconfig.Get().UpdateHeadTimely { + if !features.Get().UpdateHeadTimely { if err := s.finalizedImpliesNewJustified(ctx, postState); err != nil { return errors.Wrap(err, "could not save new justified") } @@ -309,7 +309,7 @@ func (s *Service) handleBlockAfterBatchVerify(ctx context.Context, signed block. if err := s.updateFinalized(ctx, fCheckpoint); err != nil { return err } - if featureconfig.Get().UpdateHeadTimely { + if features.Get().UpdateHeadTimely { s.prevFinalizedCheckpt = s.finalizedCheckpt s.finalizedCheckpt = fCheckpoint } @@ -422,7 +422,7 @@ func (s *Service) savePostStateInfo(ctx context.Context, r [32]byte, b block.Sig // This removes the attestations from the mem pool. It will only remove the attestations if input root `r` is canonical, // meaning the block `b` is part of the canonical chain. func (s *Service) pruneCanonicalAttsFromPool(ctx context.Context, r [32]byte, b block.SignedBeaconBlock) error { - if !featureconfig.Get().CorrectlyPruneCanonicalAtts { + if !features.Get().CorrectlyPruneCanonicalAtts { return nil } diff --git a/beacon-chain/blockchain/process_block_helpers.go b/beacon-chain/blockchain/process_block_helpers.go index f8f8238faf..a59568c419 100644 --- a/beacon-chain/blockchain/process_block_helpers.go +++ b/beacon-chain/blockchain/process_block_helpers.go @@ -10,12 +10,12 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/tracing" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/shared/attestationutil" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "go.opencensus.io/trace" ) @@ -243,7 +243,7 @@ func (s *Service) updateFinalized(ctx context.Context, cp *ethpb.Checkpoint) err if err := s.cfg.BeaconDB.SaveFinalizedCheckpoint(ctx, cp); err != nil { return err } - if !featureconfig.Get().UpdateHeadTimely { + if !features.Get().UpdateHeadTimely { s.prevFinalizedCheckpt = s.finalizedCheckpt s.finalizedCheckpt = cp } diff --git a/beacon-chain/blockchain/process_block_test.go b/beacon-chain/blockchain/process_block_test.go index f171e3d64a..fbd954e02c 100644 --- a/beacon-chain/blockchain/process_block_test.go +++ b/beacon-chain/blockchain/process_block_test.go @@ -20,12 +20,12 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/state" "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/attestationutil" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" @@ -1003,7 +1003,7 @@ func TestInsertFinalizedDeposits(t *testing.T) { } func TestRemoveBlockAttestationsInPool_Canonical(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ CorrectlyPruneCanonicalAtts: true, }) defer resetCfg() @@ -1027,7 +1027,7 @@ func TestRemoveBlockAttestationsInPool_Canonical(t *testing.T) { } func TestRemoveBlockAttestationsInPool_NonCanonical(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ CorrectlyPruneCanonicalAtts: true, }) defer resetCfg() diff --git a/beacon-chain/blockchain/receive_block.go b/beacon-chain/blockchain/receive_block.go index 2cf157c406..f8d787f72e 100644 --- a/beacon-chain/blockchain/receive_block.go +++ b/beacon-chain/blockchain/receive_block.go @@ -8,9 +8,9 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core" "github.com/prysmaticlabs/prysm/beacon-chain/core/feed" statefeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/state" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/tracing" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/time" "go.opencensus.io/trace" ) @@ -44,7 +44,7 @@ func (s *Service) ReceiveBlock(ctx context.Context, block block.SignedBeaconBloc } // Update and save head block after fork choice. - if !featureconfig.Get().UpdateHeadTimely { + if !features.Get().UpdateHeadTimely { if err := s.updateHead(ctx, s.getJustifiedBalances()); err != nil { log.WithError(err).Warn("Could not update head") } diff --git a/beacon-chain/blockchain/receive_block_test.go b/beacon-chain/blockchain/receive_block_test.go index c48052c97a..6fcdc2cdba 100644 --- a/beacon-chain/blockchain/receive_block_test.go +++ b/beacon-chain/blockchain/receive_block_test.go @@ -14,11 +14,11 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/operations/attestations" "github.com/prysmaticlabs/prysm/beacon-chain/operations/voluntaryexits" "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" @@ -287,7 +287,7 @@ func TestService_ReceiveBlockBatch(t *testing.T) { func TestService_ReceiveBlockBatch_UpdateFinalizedCheckpoint(t *testing.T) { // Must enable head timely feature flag to test this. - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ UpdateHeadTimely: true, }) defer resetCfg() diff --git a/beacon-chain/cache/BUILD.bazel b/beacon-chain/cache/BUILD.bazel index dacd06cc88..daa404c237 100644 --- a/beacon-chain/cache/BUILD.bazel +++ b/beacon-chain/cache/BUILD.bazel @@ -40,9 +40,9 @@ go_library( "//beacon-chain/state:go_default_library", "//beacon-chain/state/v2:go_default_library", "//cache/lru:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/mathutil:go_default_library", "//shared/params:go_default_library", @@ -81,9 +81,9 @@ go_test( "//beacon-chain/state:go_default_library", "//beacon-chain/state/v1:go_default_library", "//beacon-chain/state/v2:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/params:go_default_library", "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", diff --git a/beacon-chain/cache/active_balance.go b/beacon-chain/cache/active_balance.go index 9cd80f6acc..49fcd60e4e 100644 --- a/beacon-chain/cache/active_balance.go +++ b/beacon-chain/cache/active_balance.go @@ -13,7 +13,7 @@ import ( ethTypes "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/state" lruwrpr "github.com/prysmaticlabs/prysm/cache/lru" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/params" ) @@ -48,7 +48,7 @@ func NewEffectiveBalanceCache() *BalanceCache { // AddTotalEffectiveBalance adds a new total effective balance entry for current balance for state `st` into the cache. func (c *BalanceCache) AddTotalEffectiveBalance(st state.ReadOnlyBeaconState, balance uint64) error { - if !featureconfig.Get().EnableActiveBalanceCache { + if !features.Get().EnableActiveBalanceCache { return nil } key, err := balanceCacheKey(st) @@ -65,7 +65,7 @@ func (c *BalanceCache) AddTotalEffectiveBalance(st state.ReadOnlyBeaconState, ba // Get returns the current epoch's effective balance for state `st` in cache. func (c *BalanceCache) Get(st state.ReadOnlyBeaconState) (uint64, error) { - if !featureconfig.Get().EnableActiveBalanceCache { + if !features.Get().EnableActiveBalanceCache { return 0, ErrNotFound } key, err := balanceCacheKey(st) diff --git a/beacon-chain/cache/active_balance_test.go b/beacon-chain/cache/active_balance_test.go index 7d9c89600f..a52e5b3995 100644 --- a/beacon-chain/cache/active_balance_test.go +++ b/beacon-chain/cache/active_balance_test.go @@ -7,14 +7,14 @@ import ( types "github.com/prysmaticlabs/eth2-types" state "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) func TestBalanceCache_AddGetBalance(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableActiveBalanceCache: true, }) defer resetCfg() diff --git a/beacon-chain/core/epoch/BUILD.bazel b/beacon-chain/core/epoch/BUILD.bazel index 6fe6360c85..5be0960714 100644 --- a/beacon-chain/core/epoch/BUILD.bazel +++ b/beacon-chain/core/epoch/BUILD.bazel @@ -13,9 +13,9 @@ go_library( "//beacon-chain/core/helpers:go_default_library", "//beacon-chain/core/validators:go_default_library", "//beacon-chain/state:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/attestationutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/mathutil:go_default_library", "//shared/params:go_default_library", "@com_github_pkg_errors//:go_default_library", diff --git a/beacon-chain/core/epoch/epoch_processing.go b/beacon-chain/core/epoch/epoch_processing.go index f5a17a9093..c9e7c2751d 100644 --- a/beacon-chain/core/epoch/epoch_processing.go +++ b/beacon-chain/core/epoch/epoch_processing.go @@ -14,9 +14,9 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/core/validators" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/attestationutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/mathutil" "github.com/prysmaticlabs/prysm/shared/params" ) @@ -267,7 +267,7 @@ func ProcessEffectiveBalanceUpdates(state state.BeaconState) (state.BeaconState, return false, val, nil } - if featureconfig.Get().EnableOptimizedBalanceUpdate { + if features.Get().EnableOptimizedBalanceUpdate { validatorFunc = func(idx int, val *ethpb.Validator) (bool, *ethpb.Validator, error) { if val == nil { return false, nil, fmt.Errorf("validator %d is nil in state", idx) diff --git a/beacon-chain/core/helpers/BUILD.bazel b/beacon-chain/core/helpers/BUILD.bazel index 615650548b..61567a1ca0 100644 --- a/beacon-chain/core/helpers/BUILD.bazel +++ b/beacon-chain/core/helpers/BUILD.bazel @@ -78,10 +78,10 @@ go_test( "//beacon-chain/state:go_default_library", "//beacon-chain/state/v1:go_default_library", "//beacon-chain/state/v2:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/params:go_default_library", "//shared/sliceutil:go_default_library", diff --git a/beacon-chain/core/helpers/rewards_penalties_test.go b/beacon-chain/core/helpers/rewards_penalties_test.go index 962ebafead..eade2713b7 100644 --- a/beacon-chain/core/helpers/rewards_penalties_test.go +++ b/beacon-chain/core/helpers/rewards_penalties_test.go @@ -6,8 +6,8 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/core" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -75,7 +75,7 @@ func TestTotalActiveBalance(t *testing.T) { } func TestTotalActiveBalance_WithCache(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableActiveBalanceCache: true, }) defer resetCfg() diff --git a/beacon-chain/core/transition/BUILD.bazel b/beacon-chain/core/transition/BUILD.bazel index 0b36368ed2..8b528f450a 100644 --- a/beacon-chain/core/transition/BUILD.bazel +++ b/beacon-chain/core/transition/BUILD.bazel @@ -36,12 +36,12 @@ go_library( "//beacon-chain/core/validators:go_default_library", "//beacon-chain/state:go_default_library", "//beacon-chain/state/v1:go_default_library", + "//config/features:go_default_library", "//monitoring/tracing:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/mathutil:go_default_library", "//shared/params:go_default_library", diff --git a/beacon-chain/core/transition/interop/BUILD.bazel b/beacon-chain/core/transition/interop/BUILD.bazel index 46634eef89..ce7cb97492 100644 --- a/beacon-chain/core/transition/interop/BUILD.bazel +++ b/beacon-chain/core/transition/interop/BUILD.bazel @@ -14,8 +14,8 @@ go_library( ], deps = [ "//beacon-chain/state:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", ], diff --git a/beacon-chain/core/transition/interop/write_block_to_disk.go b/beacon-chain/core/transition/interop/write_block_to_disk.go index 1b8faf335b..6428868911 100644 --- a/beacon-chain/core/transition/interop/write_block_to_disk.go +++ b/beacon-chain/core/transition/interop/write_block_to_disk.go @@ -5,14 +5,14 @@ import ( "os" "path" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/fileutil" ) // WriteBlockToDisk as a block ssz. Writes to temp directory. Debug! func WriteBlockToDisk(block block.SignedBeaconBlock, failed bool) { - if !featureconfig.Get().WriteSSZStateTransitions { + if !features.Get().WriteSSZStateTransitions { return } diff --git a/beacon-chain/core/transition/interop/write_state_to_disk.go b/beacon-chain/core/transition/interop/write_state_to_disk.go index f2f5c32bda..26d9f487de 100644 --- a/beacon-chain/core/transition/interop/write_state_to_disk.go +++ b/beacon-chain/core/transition/interop/write_state_to_disk.go @@ -6,13 +6,13 @@ import ( "path" "github.com/prysmaticlabs/prysm/beacon-chain/state" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/fileutil" ) // WriteStateToDisk as a state ssz. Writes to temp directory. Debug! func WriteStateToDisk(state state.ReadOnlyBeaconState) { - if !featureconfig.Get().WriteSSZStateTransitions { + if !features.Get().WriteSSZStateTransitions { return } fp := path.Join(os.TempDir(), fmt.Sprintf("beacon_state_%d.ssz", state.Slot())) diff --git a/beacon-chain/core/transition/transition_no_verify_sig.go b/beacon-chain/core/transition/transition_no_verify_sig.go index dc1f87b6b6..1dd5267d01 100644 --- a/beacon-chain/core/transition/transition_no_verify_sig.go +++ b/beacon-chain/core/transition/transition_no_verify_sig.go @@ -12,10 +12,10 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/transition/interop" v "github.com/prysmaticlabs/prysm/beacon-chain/core/validators" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/tracing" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/shared/bls" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/version" "go.opencensus.io/trace" ) @@ -60,7 +60,7 @@ func ExecuteStateTransitionNoVerifyAnySig( interop.WriteBlockToDisk(signed, false /* Has the block failed */) interop.WriteStateToDisk(state) - if featureconfig.Get().EnableNextSlotStateCache { + if features.Get().EnableNextSlotStateCache { state, err = ProcessSlotsUsingNextSlotCache(ctx, state, signed.Block().ParentRoot(), signed.Block().Slot()) if err != nil { return nil, nil, errors.Wrap(err, "could not process slots") @@ -135,7 +135,7 @@ func CalculateStateRoot( // Execute per slots transition. var err error - if featureconfig.Get().EnableNextSlotStateCache { + if features.Get().EnableNextSlotStateCache { state, err = ProcessSlotsUsingNextSlotCache(ctx, state, signed.Block().ParentRoot(), signed.Block().Slot()) if err != nil { return [32]byte{}, errors.Wrap(err, "could not process slots") diff --git a/beacon-chain/db/kv/BUILD.bazel b/beacon-chain/db/kv/BUILD.bazel index b410129770..cf7fa5531a 100644 --- a/beacon-chain/db/kv/BUILD.bazel +++ b/beacon-chain/db/kv/BUILD.bazel @@ -43,13 +43,13 @@ go_library( "//beacon-chain/state/genesis:go_default_library", "//beacon-chain/state/v1:go_default_library", "//beacon-chain/state/v2:go_default_library", + "//config/features:go_default_library", "//monitoring/progress:go_default_library", "//monitoring/tracing:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/params:go_default_library", "//shared/sliceutil:go_default_library", @@ -103,12 +103,12 @@ go_test( "//beacon-chain/state:go_default_library", "//beacon-chain/state/v1:go_default_library", "//beacon-chain/state/v2:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", "//proto/testing:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/params:go_default_library", "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", diff --git a/beacon-chain/db/kv/migration_state_validators.go b/beacon-chain/db/kv/migration_state_validators.go index 08b692522a..6f1703c3db 100644 --- a/beacon-chain/db/kv/migration_state_validators.go +++ b/beacon-chain/db/kv/migration_state_validators.go @@ -8,9 +8,9 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/golang/snappy" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/progress" v1alpha1 "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" bolt "go.etcd.io/bbolt" ) @@ -25,7 +25,7 @@ func migrateStateValidators(ctx context.Context, db *bolt.DB) error { // feature flag is not enabled // - migration is complete, don't migrate the DB but warn that this will work as if the flag is enabled. // - migration is not complete, don't migrate the DB. - if !featureconfig.Get().EnableHistoricalSpaceRepresentation { + if !features.Get().EnableHistoricalSpaceRepresentation { b := mb.Get(migrationStateValidatorsKey) if bytes.Equal(b, migrationCompleted) { log.Warning("migration of historical states already completed. The node will work as if --enable-historical-state-representation=true.") diff --git a/beacon-chain/db/kv/migration_state_validators_test.go b/beacon-chain/db/kv/migration_state_validators_test.go index 338b75ce2e..c977fb20f4 100644 --- a/beacon-chain/db/kv/migration_state_validators_test.go +++ b/beacon-chain/db/kv/migration_state_validators_test.go @@ -8,8 +8,8 @@ import ( "github.com/golang/snappy" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" v2 "github.com/prysmaticlabs/prysm/beacon-chain/state/v2" + "github.com/prysmaticlabs/prysm/config/features" v1alpha1 "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -60,7 +60,7 @@ func Test_migrateStateValidators(t *testing.T) { }, eval: func(t *testing.T, dbStore *Store, state *v1.BeaconState, vals []*v1alpha1.Validator) { // disable the flag and see if the code mandates that flag. - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableHistoricalSpaceRepresentation: false, }) defer resetCfg() @@ -194,7 +194,7 @@ func Test_migrateStateValidators(t *testing.T) { assert.NoError(t, err) // enable historical state representation flag to test this - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableHistoricalSpaceRepresentation: true, }) defer resetCfg() @@ -295,7 +295,7 @@ func Test_migrateAltairStateValidators(t *testing.T) { assert.NoError(t, dbStore.SaveState(context.Background(), st, blockRoot)) // enable historical state representation flag to test this - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableHistoricalSpaceRepresentation: true, }) defer resetCfg() diff --git a/beacon-chain/db/kv/state.go b/beacon-chain/db/kv/state.go index 2b2bd8cb89..636d72b054 100644 --- a/beacon-chain/db/kv/state.go +++ b/beacon-chain/db/kv/state.go @@ -13,11 +13,11 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/state/genesis" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" v2 "github.com/prysmaticlabs/prysm/beacon-chain/state/v2" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/tracing" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" bolt "go.etcd.io/bbolt" "go.opencensus.io/trace" @@ -710,7 +710,7 @@ func (s *Store) CleanUpDirtyStates(ctx context.Context, slotsPerArchivedPoint ty func (s *Store) isStateValidatorMigrationOver() (bool, error) { // if flag is enabled, then always follow the new code path. - if featureconfig.Get().EnableHistoricalSpaceRepresentation { + if features.Get().EnableHistoricalSpaceRepresentation { return true, nil } diff --git a/beacon-chain/db/kv/state_test.go b/beacon-chain/db/kv/state_test.go index b5ffb88165..b47a218c3a 100644 --- a/beacon-chain/db/kv/state_test.go +++ b/beacon-chain/db/kv/state_test.go @@ -9,12 +9,12 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" v1alpha "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" @@ -50,7 +50,7 @@ func TestState_CanSaveRetrieveValidatorEntries(t *testing.T) { db := setupDB(t) // enable historical state representation flag to test this - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableHistoricalSpaceRepresentation: true, }) defer resetCfg() @@ -103,7 +103,7 @@ func TestStateAltair_CanSaveRetrieveValidatorEntries(t *testing.T) { db := setupDB(t) // enable historical state representation flag to test this - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableHistoricalSpaceRepresentation: true, }) defer resetCfg() @@ -155,7 +155,7 @@ func TestState_CanSaveRetrieveValidatorEntriesFromCache(t *testing.T) { db := setupDB(t) // enable historical state representation flag to test this - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableHistoricalSpaceRepresentation: true, }) defer resetCfg() @@ -211,7 +211,7 @@ func TestState_CanSaveRetrieveValidatorEntriesWithoutCache(t *testing.T) { db := setupDB(t) // enable historical state representation flag to test this - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableHistoricalSpaceRepresentation: true, }) defer resetCfg() @@ -266,7 +266,7 @@ func TestState_DeleteState(t *testing.T) { db := setupDB(t) // enable historical state representation flag to test this - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnableHistoricalSpaceRepresentation: true, }) defer resetCfg() diff --git a/beacon-chain/node/BUILD.bazel b/beacon-chain/node/BUILD.bazel index 8df215f53c..d307e77162 100644 --- a/beacon-chain/node/BUILD.bazel +++ b/beacon-chain/node/BUILD.bazel @@ -36,6 +36,7 @@ go_library( "//beacon-chain/sync:go_default_library", "//beacon-chain/sync/initial-sync:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//monitoring/backup:go_default_library", "//monitoring/prometheus:go_default_library", "//monitoring/tracing:go_default_library", @@ -43,7 +44,6 @@ go_library( "//shared/cmd:go_default_library", "//shared/debug:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/gateway:go_default_library", "//shared/params:go_default_library", "//shared/prereq:go_default_library", diff --git a/beacon-chain/node/node.go b/beacon-chain/node/node.go index f93511471f..a00246a883 100644 --- a/beacon-chain/node/node.go +++ b/beacon-chain/node/node.go @@ -38,13 +38,13 @@ import ( regularsync "github.com/prysmaticlabs/prysm/beacon-chain/sync" initialsync "github.com/prysmaticlabs/prysm/beacon-chain/sync/initial-sync" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/backup" "github.com/prysmaticlabs/prysm/monitoring/prometheus" "github.com/prysmaticlabs/prysm/shared" "github.com/prysmaticlabs/prysm/shared/cmd" "github.com/prysmaticlabs/prysm/shared/debug" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/gateway" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/prereq" @@ -87,7 +87,7 @@ func New(cliCtx *cli.Context) (*BeaconNode, error) { return nil, err } prereq.WarnIfPlatformNotSupported(cliCtx.Context) - featureconfig.ConfigureBeaconChain(cliCtx) + features.ConfigureBeaconChain(cliCtx) cmd.ConfigureBeaconChain(cliCtx) flags.ConfigureGlobalFlags(cliCtx) configureChainConfig(cliCtx) diff --git a/beacon-chain/p2p/BUILD.bazel b/beacon-chain/p2p/BUILD.bazel index 95248f5b32..df4dde99c8 100644 --- a/beacon-chain/p2p/BUILD.bazel +++ b/beacon-chain/p2p/BUILD.bazel @@ -53,13 +53,13 @@ go_library( "//beacon-chain/p2p/peers/scorers:go_default_library", "//beacon-chain/p2p/types:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//monitoring/tracing:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/metadata:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", "//shared:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/hashutil:go_default_library", "//shared/iputils:go_default_library", diff --git a/beacon-chain/p2p/peers/BUILD.bazel b/beacon-chain/p2p/peers/BUILD.bazel index 5856b21ce5..9fb70ffc25 100644 --- a/beacon-chain/p2p/peers/BUILD.bazel +++ b/beacon-chain/p2p/peers/BUILD.bazel @@ -36,10 +36,10 @@ go_test( "//beacon-chain/p2p/peers/peerdata:go_default_library", "//beacon-chain/p2p/peers/scorers:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/params:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", diff --git a/beacon-chain/p2p/peers/peers_test.go b/beacon-chain/p2p/peers/peers_test.go index cf560e63fd..e2e8bddf05 100644 --- a/beacon-chain/p2p/peers/peers_test.go +++ b/beacon-chain/p2p/peers/peers_test.go @@ -5,7 +5,7 @@ import ( "testing" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" "github.com/sirupsen/logrus" ) @@ -13,7 +13,7 @@ func TestMain(m *testing.M) { logrus.SetLevel(logrus.DebugLevel) logrus.SetOutput(ioutil.Discard) - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnablePeerScorer: true, }) defer resetCfg() diff --git a/beacon-chain/p2p/peers/scorers/BUILD.bazel b/beacon-chain/p2p/peers/scorers/BUILD.bazel index 4bfbe45608..667058ace3 100644 --- a/beacon-chain/p2p/peers/scorers/BUILD.bazel +++ b/beacon-chain/p2p/peers/scorers/BUILD.bazel @@ -15,8 +15,8 @@ go_library( "//beacon-chain/p2p/peers/peerdata:go_default_library", "//beacon-chain/p2p/types:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/rand:go_default_library", "//time:go_default_library", "@com_github_libp2p_go_libp2p_core//peer:go_default_library", @@ -40,8 +40,8 @@ go_test( "//beacon-chain/p2p/peers/peerdata:go_default_library", "//beacon-chain/p2p/types:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/rand:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", diff --git a/beacon-chain/p2p/peers/scorers/block_providers.go b/beacon-chain/p2p/peers/scorers/block_providers.go index c49490a9c5..2c6951f90b 100644 --- a/beacon-chain/p2p/peers/scorers/block_providers.go +++ b/beacon-chain/p2p/peers/scorers/block_providers.go @@ -9,7 +9,7 @@ import ( "github.com/libp2p/go-libp2p-core/peer" "github.com/prysmaticlabs/prysm/beacon-chain/p2p/peers/peerdata" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/rand" prysmTime "github.com/prysmaticlabs/prysm/time" ) @@ -291,7 +291,7 @@ func (s *BlockProviderScorer) mapScoresAndPeers( func (s *BlockProviderScorer) FormatScorePretty(pid peer.ID) string { s.store.RLock() defer s.store.RUnlock() - if !featureconfig.Get().EnablePeerScorer { + if !features.Get().EnablePeerScorer { return "disabled" } score := s.score(pid) diff --git a/beacon-chain/p2p/peers/scorers/block_providers_test.go b/beacon-chain/p2p/peers/scorers/block_providers_test.go index ad0dcb0a39..a6b2422af7 100644 --- a/beacon-chain/p2p/peers/scorers/block_providers_test.go +++ b/beacon-chain/p2p/peers/scorers/block_providers_test.go @@ -11,7 +11,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/p2p/peers" "github.com/prysmaticlabs/prysm/beacon-chain/p2p/peers/scorers" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/rand" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/time" @@ -462,7 +462,7 @@ func TestScorers_BlockProvider_FormatScorePretty(t *testing.T) { } t.Run("peer scorer disabled", func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnablePeerScorer: false, }) defer resetCfg() diff --git a/beacon-chain/p2p/peers/scorers/scorers_test.go b/beacon-chain/p2p/peers/scorers/scorers_test.go index bdbcfa0479..3b2d3ccad7 100644 --- a/beacon-chain/p2p/peers/scorers/scorers_test.go +++ b/beacon-chain/p2p/peers/scorers/scorers_test.go @@ -7,7 +7,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/p2p/peers/scorers" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" "github.com/sirupsen/logrus" ) @@ -15,7 +15,7 @@ func TestMain(m *testing.M) { logrus.SetLevel(logrus.DebugLevel) logrus.SetOutput(ioutil.Discard) - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnablePeerScorer: true, }) defer resetCfg() diff --git a/beacon-chain/p2p/pubsub.go b/beacon-chain/p2p/pubsub.go index 120eca01a5..157b4dba0e 100644 --- a/beacon-chain/p2p/pubsub.go +++ b/beacon-chain/p2p/pubsub.go @@ -10,9 +10,9 @@ import ( pubsub "github.com/libp2p/go-libp2p-pubsub" "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" + "github.com/prysmaticlabs/prysm/config/features" pbrpc "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" ) const ( @@ -139,7 +139,7 @@ func pubsubGossipParam() pubsub.GossipSubParams { // messages have a longer time to be propagated. This // comes with the tradeoff of larger memory usage and // size of the seen message cache. - if featureconfig.Get().EnableLargerGossipHistory { + if features.Get().EnableLargerGossipHistory { gParams.HistoryLength = 12 gParams.HistoryGossip = 5 } diff --git a/beacon-chain/rpc/BUILD.bazel b/beacon-chain/rpc/BUILD.bazel index 097fda009f..6fe5ae31ab 100644 --- a/beacon-chain/rpc/BUILD.bazel +++ b/beacon-chain/rpc/BUILD.bazel @@ -34,10 +34,10 @@ go_library( "//beacon-chain/rpc/statefetcher:go_default_library", "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/sync:go_default_library", + "//config/features:go_default_library", "//monitoring/tracing:go_default_library", "//proto/eth/service:go_default_library", "//proto/prysm/v1alpha1:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/logutil:go_default_library", "//shared/params:go_default_library", "@com_github_grpc_ecosystem_go_grpc_middleware//:go_default_library", diff --git a/beacon-chain/rpc/eth/beacon/BUILD.bazel b/beacon-chain/rpc/eth/beacon/BUILD.bazel index 307a76d632..4854b4086b 100644 --- a/beacon-chain/rpc/eth/beacon/BUILD.bazel +++ b/beacon-chain/rpc/eth/beacon/BUILD.bazel @@ -35,6 +35,7 @@ go_library( "//beacon-chain/state:go_default_library", "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/state/v1:go_default_library", + "//config/features:go_default_library", "//proto/eth/v1:go_default_library", "//proto/eth/v2:go_default_library", "//proto/migration:go_default_library", @@ -43,7 +44,6 @@ go_library( "//proto/prysm/v1alpha1/wrapper:go_default_library", "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/grpcutils:go_default_library", "//shared/p2putils:go_default_library", "//shared/params:go_default_library", diff --git a/beacon-chain/rpc/eth/beacon/pool.go b/beacon-chain/rpc/eth/beacon/pool.go index 4c2302c2e0..97fa8ed202 100644 --- a/beacon-chain/rpc/eth/beacon/pool.go +++ b/beacon-chain/rpc/eth/beacon/pool.go @@ -9,11 +9,11 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/operation" corehelpers "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/rpc/eth/helpers" + "github.com/prysmaticlabs/prysm/config/features" ethpbv1 "github.com/prysmaticlabs/prysm/proto/eth/v1" "github.com/prysmaticlabs/prysm/proto/migration" ethpbalpha "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bls" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/grpcutils" "go.opencensus.io/trace" "google.golang.org/grpc/codes" @@ -175,7 +175,7 @@ func (bs *Server) SubmitAttesterSlashing(ctx context.Context, req *ethpbv1.Attes if err != nil { return nil, status.Errorf(codes.Internal, "Could not insert attester slashing into pool: %v", err) } - if !featureconfig.Get().DisableBroadcastSlashings { + if !features.Get().DisableBroadcastSlashings { if err := bs.Broadcaster.Broadcast(ctx, req); err != nil { return nil, status.Errorf(codes.Internal, "Could not broadcast slashing object: %v", err) } @@ -227,7 +227,7 @@ func (bs *Server) SubmitProposerSlashing(ctx context.Context, req *ethpbv1.Propo if err != nil { return nil, status.Errorf(codes.Internal, "Could not insert proposer slashing into pool: %v", err) } - if !featureconfig.Get().DisableBroadcastSlashings { + if !features.Get().DisableBroadcastSlashings { if err := bs.Broadcaster.Broadcast(ctx, req); err != nil { return nil, status.Errorf(codes.Internal, "Could not broadcast slashing object: %v", err) } diff --git a/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel b/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel index 8e97fd2c7b..3f160da7c6 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel +++ b/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel @@ -39,6 +39,7 @@ go_library( "//beacon-chain/state:go_default_library", "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/sync:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", "//shared/aggregation/attestations:go_default_library", @@ -46,7 +47,6 @@ go_library( "//shared/bytesutil:go_default_library", "//shared/cmd:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/pagination:go_default_library", "//shared/params:go_default_library", "//shared/sliceutil:go_default_library", @@ -98,6 +98,7 @@ go_test( "//beacon-chain/state/v1:go_default_library", "//beacon-chain/sync/initial-sync/testing:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", @@ -105,7 +106,6 @@ go_test( "//shared/attestationutil:go_default_library", "//shared/bytesutil:go_default_library", "//shared/cmd:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/mock:go_default_library", "//shared/params:go_default_library", "//shared/testutil:go_default_library", diff --git a/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings.go b/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings.go index 5ea38f14f3..25885b897d 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings.go +++ b/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings.go @@ -4,8 +4,8 @@ import ( "context" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/sliceutil" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -25,7 +25,7 @@ func (bs *Server) SubmitProposerSlashing( if err := bs.SlashingsPool.InsertProposerSlashing(ctx, beaconState, req); err != nil { return nil, status.Errorf(codes.Internal, "Could not insert proposer slashing into pool: %v", err) } - if !featureconfig.Get().DisableBroadcastSlashings { + if !features.Get().DisableBroadcastSlashings { if err := bs.Broadcaster.Broadcast(ctx, req); err != nil { return nil, status.Errorf(codes.Internal, "Could not broadcast slashing object: %v", err) } @@ -50,7 +50,7 @@ func (bs *Server) SubmitAttesterSlashing( if err := bs.SlashingsPool.InsertAttesterSlashing(ctx, beaconState, req); err != nil { return nil, status.Errorf(codes.Internal, "Could not insert attester slashing into pool: %v", err) } - if !featureconfig.Get().DisableBroadcastSlashings { + if !features.Get().DisableBroadcastSlashings { if err := bs.Broadcaster.Broadcast(ctx, req); err != nil { return nil, status.Errorf(codes.Internal, "Could not broadcast slashing object: %v", err) } diff --git a/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings_test.go b/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings_test.go index 97b997cbf5..ada2b24e5e 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings_test.go @@ -5,8 +5,8 @@ import ( "testing" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "google.golang.org/protobuf/proto" mock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" @@ -78,7 +78,7 @@ func TestServer_SubmitAttesterSlashing(t *testing.T) { } func TestServer_SubmitProposerSlashing_DontBroadcast(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{DisableBroadcastSlashings: true}) + resetCfg := features.InitWithReset(&features.Flags{DisableBroadcastSlashings: true}) defer resetCfg() ctx := context.Background() st, privs := testutil.DeterministicGenesisState(t, 64) @@ -123,7 +123,7 @@ func TestServer_SubmitProposerSlashing_DontBroadcast(t *testing.T) { } func TestServer_SubmitAttesterSlashing_DontBroadcast(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{DisableBroadcastSlashings: true}) + resetCfg := features.InitWithReset(&features.Flags{DisableBroadcastSlashings: true}) defer resetCfg() ctx := context.Background() // We mark the validators at index 5, 6 as already slashed. diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel index fe51a9da0b..12e1988e4f 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel @@ -41,6 +41,7 @@ go_library( "//beacon-chain/state:go_default_library", "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/sync:go_default_library", + "//config/features:go_default_library", "//monitoring/tracing:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", @@ -53,7 +54,6 @@ go_library( "//shared/bytesutil:go_default_library", "//shared/depositutil:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/p2putils:go_default_library", "//shared/params:go_default_library", @@ -118,6 +118,7 @@ go_test( "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/state/v1:go_default_library", "//beacon-chain/sync/initial-sync/testing:go_default_library", + "//config/features:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", @@ -126,7 +127,6 @@ go_test( "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/mock:go_default_library", "//shared/params:go_default_library", "//shared/testutil:go_default_library", diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/attester.go b/beacon-chain/rpc/prysm/v1alpha1/validator/attester.go index 7f989c8362..03eea5a59f 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/attester.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/attester.go @@ -12,10 +12,10 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/operation" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/core/transition" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "go.opencensus.io/trace" "google.golang.org/grpc/codes" @@ -96,7 +96,7 @@ func (vs *Server) GetAttestationData(ctx context.Context, req *ethpb.Attestation } if core.CurrentEpoch(headState) < core.SlotToEpoch(req.Slot) { - if featureconfig.Get().EnableNextSlotStateCache { + if features.Get().EnableNextSlotStateCache { headState, err = transition.ProcessSlotsUsingNextSlotCache(ctx, headState, headRoot, req.Slot) if err != nil { return nil, status.Errorf(codes.Internal, "Could not process slots up to %d: %v", req.Slot, err) diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go index 790a2786ad..93d4926fef 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go @@ -20,6 +20,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/transition" "github.com/prysmaticlabs/prysm/beacon-chain/core/transition/interop" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/config/features" dbpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" @@ -28,7 +29,6 @@ import ( synccontribution "github.com/prysmaticlabs/prysm/shared/aggregation/sync_contribution" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/rand" @@ -213,7 +213,7 @@ func (vs *Server) buildPhase0BlockData(ctx context.Context, req *ethpb.BlockRequ return nil, fmt.Errorf("could not get head state %v", err) } - if featureconfig.Get().EnableNextSlotStateCache { + if features.Get().EnableNextSlotStateCache { head, err = transition.ProcessSlotsUsingNextSlotCache(ctx, head, parentRoot, req.Slot) if err != nil { return nil, fmt.Errorf("could not advance slots to calculate proposer index: %v", err) diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_attestations.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_attestations.go index a9c105c957..978d26b175 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_attestations.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_attestations.go @@ -10,9 +10,9 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/blocks" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/aggregation" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/version" ) @@ -58,7 +58,7 @@ func (a proposerAtts) sortByProfitability() (proposerAtts, error) { if len(a) < 2 { return a, nil } - if featureconfig.Get().ProposerAttsSelectionUsingMaxCover { + if features.Get().ProposerAttsSelectionUsingMaxCover { return a.sortByProfitabilityUsingMaxCover() } sort.Slice(a, func(i, j int) bool { diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_attestations_test.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_attestations_test.go index 93e23296a9..e4fde9ac61 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_attestations_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_attestations_test.go @@ -7,8 +7,8 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/go-bitfield" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -39,7 +39,7 @@ func TestProposer_ProposerAtts_sortByProfitability(t *testing.T) { } func TestProposer_ProposerAtts_sortByProfitabilityUsingMaxCover(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ ProposerAttsSelectionUsingMaxCover: true, }) defer resetCfg() @@ -121,7 +121,7 @@ func TestProposer_ProposerAtts_sortByProfitabilityUsingMaxCover(t *testing.T) { // The max-cover based approach will select 0b00001100 instead, despite lower bit count // (since it has two new/unknown bits). t.Run("naive", func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ ProposerAttsSelectionUsingMaxCover: false, }) defer resetCfg() @@ -143,7 +143,7 @@ func TestProposer_ProposerAtts_sortByProfitabilityUsingMaxCover(t *testing.T) { require.DeepEqual(t, want, atts) }) t.Run("max-cover", func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ ProposerAttsSelectionUsingMaxCover: true, }) defer resetCfg() diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_utils_bench_test.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_utils_bench_test.go index 7b3e978ea2..711b993cbb 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_utils_bench_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_utils_bench_test.go @@ -5,9 +5,9 @@ import ( "testing" "github.com/prysmaticlabs/go-bitfield" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" aggtesting "github.com/prysmaticlabs/prysm/shared/aggregation/testing" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" ) @@ -55,7 +55,7 @@ func BenchmarkProposerAtts_sortByProfitability(b *testing.B) { for _, tt := range tests { b.Run(fmt.Sprintf("naive_%s", tt.name), func(b *testing.B) { b.StopTimer() - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ ProposerAttsSelectionUsingMaxCover: false, }) defer resetCfg() @@ -67,7 +67,7 @@ func BenchmarkProposerAtts_sortByProfitability(b *testing.B) { }) b.Run(fmt.Sprintf("max-cover_%s", tt.name), func(b *testing.B) { b.StopTimer() - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ ProposerAttsSelectionUsingMaxCover: true, }) defer resetCfg() diff --git a/beacon-chain/rpc/service.go b/beacon-chain/rpc/service.go index 4950f4b734..794c0efb74 100644 --- a/beacon-chain/rpc/service.go +++ b/beacon-chain/rpc/service.go @@ -38,10 +38,10 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/rpc/statefetcher" "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" chainSync "github.com/prysmaticlabs/prysm/beacon-chain/sync" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/tracing" ethpbservice "github.com/prysmaticlabs/prysm/proto/eth/service" ethpbv1alpha1 "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/logutil" "github.com/prysmaticlabs/prysm/shared/params" "github.com/sirupsen/logrus" @@ -369,7 +369,7 @@ func (s *Service) validatorUnaryConnectionInterceptor( } func (s *Service) logNewClientConnection(ctx context.Context) { - if featureconfig.Get().DisableGRPCConnectionLogs { + if features.Get().DisableGRPCConnectionLogs { return } if clientInfo, ok := peer.FromContext(ctx); ok { diff --git a/beacon-chain/state/stateutil/BUILD.bazel b/beacon-chain/state/stateutil/BUILD.bazel index c599b81299..d57e54c11d 100644 --- a/beacon-chain/state/stateutil/BUILD.bazel +++ b/beacon-chain/state/stateutil/BUILD.bazel @@ -51,9 +51,9 @@ go_test( embed = [":go_default_library"], deps = [ "//beacon-chain/state/v1:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/htrutils:go_default_library", "//shared/interop:go_default_library", diff --git a/beacon-chain/state/stateutil/stateutil_test.go b/beacon-chain/state/stateutil/stateutil_test.go index 9f8d2aa768..821de425c7 100644 --- a/beacon-chain/state/stateutil/stateutil_test.go +++ b/beacon-chain/state/stateutil/stateutil_test.go @@ -3,11 +3,11 @@ package stateutil_test import ( "testing" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" ) func TestMain(m *testing.M) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{EnableSSZCache: true}) + resetCfg := features.InitWithReset(&features.Flags{EnableSSZCache: true}) defer resetCfg() m.Run() } diff --git a/beacon-chain/state/v1/BUILD.bazel b/beacon-chain/state/v1/BUILD.bazel index 4c2b9977ff..a0354ed8a2 100644 --- a/beacon-chain/state/v1/BUILD.bazel +++ b/beacon-chain/state/v1/BUILD.bazel @@ -47,10 +47,10 @@ go_library( "//beacon-chain/state/fieldtrie:go_default_library", "//beacon-chain/state/stateutil:go_default_library", "//beacon-chain/state/types:go_default_library", + "//config/features:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/htrutils:go_default_library", "//shared/params:go_default_library", diff --git a/beacon-chain/state/v1/field_roots.go b/beacon-chain/state/v1/field_roots.go index 3c62592dac..cf2f8d8576 100644 --- a/beacon-chain/state/v1/field_roots.go +++ b/beacon-chain/state/v1/field_roots.go @@ -8,9 +8,9 @@ import ( "github.com/dgraph-io/ristretto" "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/beacon-chain/state/stateutil" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/htrutils" "github.com/prysmaticlabs/prysm/shared/params" @@ -50,7 +50,7 @@ type stateRootHasher struct { // computeFieldRoots returns the hash tree root computations of every field in // the beacon state as a list of 32 byte roots. func computeFieldRoots(ctx context.Context, state *ethpb.BeaconState) ([][]byte, error) { - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { return cachedHasher.computeFieldRootsWithHasher(ctx, state) } return nocachedHasher.computeFieldRootsWithHasher(ctx, state) diff --git a/beacon-chain/state/v1/getters_eth1.go b/beacon-chain/state/v1/getters_eth1.go index cc3ac6e951..d3fb1f6fa9 100644 --- a/beacon-chain/state/v1/getters_eth1.go +++ b/beacon-chain/state/v1/getters_eth1.go @@ -3,8 +3,8 @@ package v1 import ( "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/beacon-chain/state/stateutil" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/htrutils" ) @@ -103,7 +103,7 @@ func eth1Root(hasher htrutils.HashFn, eth1Data *ethpb.Eth1Data) ([32]byte, error } enc := stateutil.Eth1DataEncKey(eth1Data) - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { if found, ok := cachedHasher.rootsCache.Get(string(enc)); ok && found != nil { return found.([32]byte), nil } @@ -114,7 +114,7 @@ func eth1Root(hasher htrutils.HashFn, eth1Data *ethpb.Eth1Data) ([32]byte, error return [32]byte{}, err } - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { cachedHasher.rootsCache.Set(string(enc), root, 32) } return root, nil @@ -129,7 +129,7 @@ func eth1DataVotesRoot(eth1DataVotes []*ethpb.Eth1Data) ([32]byte, error) { return [32]byte{}, err } - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { if found, ok := cachedHasher.rootsCache.Get(string(hashKey[:])); ok && found != nil { return found.([32]byte), nil } @@ -138,7 +138,7 @@ func eth1DataVotesRoot(eth1DataVotes []*ethpb.Eth1Data) ([32]byte, error) { if err != nil { return [32]byte{}, err } - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { cachedHasher.rootsCache.Set(string(hashKey[:]), root, 32) } return root, nil diff --git a/beacon-chain/state/v1/getters_misc.go b/beacon-chain/state/v1/getters_misc.go index 658d723445..3f9b531739 100644 --- a/beacon-chain/state/v1/getters_misc.go +++ b/beacon-chain/state/v1/getters_misc.go @@ -4,9 +4,9 @@ import ( "github.com/pkg/errors" types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/state/stateutil" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/htrutils" "github.com/prysmaticlabs/prysm/shared/params" @@ -170,7 +170,7 @@ func (b *BeaconState) balancesLength() int { // RootsArrayHashTreeRoot computes the Merkle root of arrays of 32-byte hashes, such as [64][32]byte // according to the Simple Serialize specification of Ethereum. func RootsArrayHashTreeRoot(vals [][]byte, length uint64, fieldName string) ([32]byte, error) { - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { return cachedHasher.arraysRoot(vals, length, fieldName) } return nocachedHasher.arraysRoot(vals, length, fieldName) diff --git a/beacon-chain/state/v1/getters_validator.go b/beacon-chain/state/v1/getters_validator.go index 9ae127d13c..e36bb61182 100644 --- a/beacon-chain/state/v1/getters_validator.go +++ b/beacon-chain/state/v1/getters_validator.go @@ -9,9 +9,9 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/state" "github.com/prysmaticlabs/prysm/beacon-chain/state/stateutil" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/htrutils" "github.com/prysmaticlabs/prysm/shared/params" @@ -372,7 +372,7 @@ func (h *stateRootHasher) validatorRoot(hasher htrutils.HashFn, validator *ethpb // a list of validator structs according to the Ethereum // Simple Serialize specification. func ValidatorRegistryRoot(vals []*ethpb.Validator) ([32]byte, error) { - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { return cachedHasher.validatorRegistryRoot(vals) } return nocachedHasher.validatorRegistryRoot(vals) diff --git a/beacon-chain/state/v2/BUILD.bazel b/beacon-chain/state/v2/BUILD.bazel index 1854f8435f..467b7ce489 100644 --- a/beacon-chain/state/v2/BUILD.bazel +++ b/beacon-chain/state/v2/BUILD.bazel @@ -29,10 +29,10 @@ go_library( "//beacon-chain/state/stateutil:go_default_library", "//beacon-chain/state/types:go_default_library", "//beacon-chain/state/v1:go_default_library", + "//config/features:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/htrutils:go_default_library", "//shared/params:go_default_library", diff --git a/beacon-chain/state/v2/field_root_eth1.go b/beacon-chain/state/v2/field_root_eth1.go index b90d9f727f..4d298ddc0f 100644 --- a/beacon-chain/state/v2/field_root_eth1.go +++ b/beacon-chain/state/v2/field_root_eth1.go @@ -3,8 +3,8 @@ package v2 import ( "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/beacon-chain/state/stateutil" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/htrutils" ) @@ -17,7 +17,7 @@ func eth1Root(hasher htrutils.HashFn, eth1Data *ethpb.Eth1Data) ([32]byte, error } enc := stateutil.Eth1DataEncKey(eth1Data) - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { if found, ok := cachedHasher.rootsCache.Get(string(enc)); ok && found != nil { return found.([32]byte), nil } @@ -28,7 +28,7 @@ func eth1Root(hasher htrutils.HashFn, eth1Data *ethpb.Eth1Data) ([32]byte, error return [32]byte{}, err } - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { cachedHasher.rootsCache.Set(string(enc), root, 32) } return root, nil @@ -43,7 +43,7 @@ func eth1DataVotesRoot(eth1DataVotes []*ethpb.Eth1Data) ([32]byte, error) { return [32]byte{}, err } - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { if found, ok := cachedHasher.rootsCache.Get(string(hashKey[:])); ok && found != nil { return found.([32]byte), nil } @@ -52,7 +52,7 @@ func eth1DataVotesRoot(eth1DataVotes []*ethpb.Eth1Data) ([32]byte, error) { if err != nil { return [32]byte{}, err } - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { cachedHasher.rootsCache.Set(string(hashKey[:]), root, 32) } return root, nil diff --git a/beacon-chain/state/v2/field_root_validator.go b/beacon-chain/state/v2/field_root_validator.go index bb7eab000a..7b7df74aaa 100644 --- a/beacon-chain/state/v2/field_root_validator.go +++ b/beacon-chain/state/v2/field_root_validator.go @@ -6,8 +6,8 @@ import ( "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/beacon-chain/state/stateutil" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/htrutils" "github.com/prysmaticlabs/prysm/shared/params" @@ -82,7 +82,7 @@ func (h *stateRootHasher) validatorRoot(hasher htrutils.HashFn, validator *ethpb // a list of validator structs according to the eth2 // Simple Serialize specification. func ValidatorRegistryRoot(vals []*ethpb.Validator) ([32]byte, error) { - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { return cachedHasher.validatorRegistryRoot(vals) } return nocachedHasher.validatorRegistryRoot(vals) diff --git a/beacon-chain/state/v2/field_roots.go b/beacon-chain/state/v2/field_roots.go index 49c23f0511..bbcd5c0ae0 100644 --- a/beacon-chain/state/v2/field_roots.go +++ b/beacon-chain/state/v2/field_roots.go @@ -7,9 +7,9 @@ import ( "github.com/dgraph-io/ristretto" "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/beacon-chain/state/stateutil" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/htrutils" "github.com/prysmaticlabs/prysm/shared/params" @@ -48,7 +48,7 @@ type stateRootHasher struct { // computeFieldRoots returns the hash tree root computations of every field in // the beacon state as a list of 32 byte roots. func computeFieldRoots(state *ethpb.BeaconStateAltair) ([][]byte, error) { - if featureconfig.Get().EnableSSZCache { + if features.Get().EnableSSZCache { return cachedHasher.computeFieldRootsWithHasher(state) } return nocachedHasher.computeFieldRootsWithHasher(state) diff --git a/beacon-chain/sync/BUILD.bazel b/beacon-chain/sync/BUILD.bazel index 967dd5233d..9907cb6d98 100644 --- a/beacon-chain/sync/BUILD.bazel +++ b/beacon-chain/sync/BUILD.bazel @@ -75,6 +75,7 @@ go_library( "//beacon-chain/state/stategen:go_default_library", "//cache/lru:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//monitoring/tracing:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", @@ -84,7 +85,6 @@ go_library( "//shared/abool:go_default_library", "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/messagehandler:go_default_library", "//shared/mputil:go_default_library", "//shared/p2putils:go_default_library", diff --git a/beacon-chain/sync/initial-sync/BUILD.bazel b/beacon-chain/sync/initial-sync/BUILD.bazel index 721606bacd..e47e0bfb1b 100644 --- a/beacon-chain/sync/initial-sync/BUILD.bazel +++ b/beacon-chain/sync/initial-sync/BUILD.bazel @@ -72,10 +72,10 @@ go_test( "//beacon-chain/state/v1:go_default_library", "//beacon-chain/sync:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/params:go_default_library", "//shared/sliceutil:go_default_library", @@ -120,13 +120,13 @@ go_test( "//beacon-chain/p2p/types:go_default_library", "//beacon-chain/sync:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", "//shared/abool:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/params:go_default_library", "//shared/sliceutil:go_default_library", diff --git a/beacon-chain/sync/initial-sync/initial_sync_test.go b/beacon-chain/sync/initial-sync/initial_sync_test.go index 7320975ff7..cda07c7d1b 100644 --- a/beacon-chain/sync/initial-sync/initial_sync_test.go +++ b/beacon-chain/sync/initial-sync/initial_sync_test.go @@ -21,11 +21,11 @@ import ( p2pTypes "github.com/prysmaticlabs/prysm/beacon-chain/p2p/types" beaconsync "github.com/prysmaticlabs/prysm/beacon-chain/sync" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" + "github.com/prysmaticlabs/prysm/config/features" eth "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" p2ppb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/sliceutil" @@ -56,7 +56,7 @@ func TestMain(m *testing.M) { logrus.SetLevel(logrus.DebugLevel) logrus.SetOutput(ioutil.Discard) - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ EnablePeerScorer: true, }) defer resetCfg() diff --git a/beacon-chain/sync/subscriber_beacon_blocks.go b/beacon-chain/sync/subscriber_beacon_blocks.go index d6067d6886..3014123483 100644 --- a/beacon-chain/sync/subscriber_beacon_blocks.go +++ b/beacon-chain/sync/subscriber_beacon_blocks.go @@ -6,11 +6,11 @@ import ( "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/core/transition/interop" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" wrapperv2 "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "google.golang.org/protobuf/proto" ) @@ -39,7 +39,7 @@ func (s *Service) beaconBlockSubscriber(ctx context.Context, msg proto.Message) return err } - if !featureconfig.Get().CorrectlyPruneCanonicalAtts { + if !features.Get().CorrectlyPruneCanonicalAtts { // Delete attestations from the block in the pool to avoid inclusion in future block. if err := s.deleteAttsInPool(block.Body().Attestations()); err != nil { log.Debugf("Could not delete attestations in pool: %v", err) diff --git a/cmd/beacon-chain/BUILD.bazel b/cmd/beacon-chain/BUILD.bazel index 162d79b48e..7a50e34bb8 100644 --- a/cmd/beacon-chain/BUILD.bazel +++ b/cmd/beacon-chain/BUILD.bazel @@ -18,10 +18,10 @@ go_library( "//beacon-chain/node:go_default_library", "//cmd/beacon-chain/db:go_default_library", "//cmd/beacon-chain/flags:go_default_library", + "//config/features:go_default_library", "//monitoring/journald:go_default_library", "//shared/cmd:go_default_library", "//shared/debug:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/logutil:go_default_library", "//shared/maxprocs:go_default_library", @@ -143,7 +143,7 @@ go_test( embed = [":go_default_library"], visibility = ["//beacon-chain:__pkg__"], deps = [ - "//shared/featureconfig:go_default_library", + "//config/features:go_default_library", "@com_github_urfave_cli_v2//:go_default_library", ], ) diff --git a/cmd/beacon-chain/main.go b/cmd/beacon-chain/main.go index dd1355cd8a..96e0151915 100644 --- a/cmd/beacon-chain/main.go +++ b/cmd/beacon-chain/main.go @@ -14,10 +14,10 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/node" dbcommands "github.com/prysmaticlabs/prysm/cmd/beacon-chain/db" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/journald" "github.com/prysmaticlabs/prysm/shared/cmd" "github.com/prysmaticlabs/prysm/shared/debug" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/shared/logutil" _ "github.com/prysmaticlabs/prysm/shared/maxprocs" @@ -114,7 +114,7 @@ var appFlags = []cli.Flag{ } func init() { - appFlags = cmd.WrapFlags(append(appFlags, featureconfig.BeaconChainFlags...)) + appFlags = cmd.WrapFlags(append(appFlags, features.BeaconChainFlags...)) } func main() { diff --git a/cmd/beacon-chain/usage.go b/cmd/beacon-chain/usage.go index 48f36dc198..50ed38e5e5 100644 --- a/cmd/beacon-chain/usage.go +++ b/cmd/beacon-chain/usage.go @@ -6,9 +6,9 @@ import ( "sort" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/cmd" "github.com/prysmaticlabs/prysm/shared/debug" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/urfave/cli/v2" ) @@ -148,7 +148,7 @@ var appHelpFlagGroups = []flagGroup{ }, { Name: "features", - Flags: featureconfig.ActiveFlags(featureconfig.BeaconChainFlags), + Flags: features.ActiveFlags(features.BeaconChainFlags), }, { Name: "interop", diff --git a/cmd/beacon-chain/usage_test.go b/cmd/beacon-chain/usage_test.go index 5d6799b590..7d6eb75b21 100644 --- a/cmd/beacon-chain/usage_test.go +++ b/cmd/beacon-chain/usage_test.go @@ -3,7 +3,7 @@ package main import ( "testing" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" "github.com/urfave/cli/v2" ) @@ -16,8 +16,8 @@ func TestAllFlagsExistInHelp(t *testing.T) { for _, group := range appHelpFlagGroups { helpFlags = append(helpFlags, group.Flags...) } - helpFlags = featureconfig.ActiveFlags(helpFlags) - appFlags = featureconfig.ActiveFlags(appFlags) + helpFlags = features.ActiveFlags(helpFlags) + appFlags = features.ActiveFlags(appFlags) for _, flag := range appFlags { if !doesFlagExist(flag, helpFlags) { diff --git a/cmd/slasher/BUILD.bazel b/cmd/slasher/BUILD.bazel index 4c677dde3f..abc9b3136c 100644 --- a/cmd/slasher/BUILD.bazel +++ b/cmd/slasher/BUILD.bazel @@ -15,10 +15,10 @@ go_library( visibility = ["//slasher:__subpackages__"], deps = [ "//cmd/slasher/flags:go_default_library", + "//config/features:go_default_library", "//monitoring/journald:go_default_library", "//shared/cmd:go_default_library", "//shared/debug:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/logutil:go_default_library", "//shared/tos:go_default_library", "//shared/version:go_default_library", @@ -38,7 +38,7 @@ go_test( embed = [":go_default_library"], visibility = ["//slasher:__pkg__"], deps = [ - "//shared/featureconfig:go_default_library", + "//config/features:go_default_library", "//shared/testutil/assert:go_default_library", "@com_github_urfave_cli_v2//:go_default_library", ], diff --git a/cmd/slasher/main.go b/cmd/slasher/main.go index 6782543109..f75948594f 100644 --- a/cmd/slasher/main.go +++ b/cmd/slasher/main.go @@ -10,10 +10,10 @@ import ( joonix "github.com/joonix/log" "github.com/prysmaticlabs/prysm/cmd/slasher/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/journald" "github.com/prysmaticlabs/prysm/shared/cmd" "github.com/prysmaticlabs/prysm/shared/debug" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/logutil" "github.com/prysmaticlabs/prysm/shared/tos" "github.com/prysmaticlabs/prysm/shared/version" @@ -83,7 +83,7 @@ var appFlags = []cli.Flag{ } func init() { - appFlags = cmd.WrapFlags(append(appFlags, featureconfig.SlasherFlags...)) + appFlags = cmd.WrapFlags(append(appFlags, features.SlasherFlags...)) } func main() { diff --git a/cmd/slasher/usage.go b/cmd/slasher/usage.go index 9a6603b438..c7444ddabd 100644 --- a/cmd/slasher/usage.go +++ b/cmd/slasher/usage.go @@ -6,9 +6,9 @@ import ( "sort" "github.com/prysmaticlabs/prysm/cmd/slasher/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/cmd" "github.com/prysmaticlabs/prysm/shared/debug" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/urfave/cli/v2" ) @@ -93,7 +93,7 @@ var appHelpFlagGroups = []flagGroup{ }, { Name: "features", - Flags: featureconfig.ActiveFlags(featureconfig.SlasherFlags), + Flags: features.ActiveFlags(features.SlasherFlags), }, } diff --git a/cmd/slasher/usage_test.go b/cmd/slasher/usage_test.go index eccba4aa9c..1f93af8dd4 100644 --- a/cmd/slasher/usage_test.go +++ b/cmd/slasher/usage_test.go @@ -3,7 +3,7 @@ package main import ( "testing" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/urfave/cli/v2" ) @@ -17,8 +17,8 @@ func TestAllFlagsExistInHelp(t *testing.T) { for _, group := range appHelpFlagGroups { helpFlags = append(helpFlags, group.Flags...) } - helpFlags = featureconfig.ActiveFlags(helpFlags) - appFlags = featureconfig.ActiveFlags(appFlags) + helpFlags = features.ActiveFlags(helpFlags) + appFlags = features.ActiveFlags(appFlags) for _, flag := range appFlags { assert.Equal(t, true, doesFlagExist(flag, helpFlags), "Flag %s does not exist in help/usage flags.", flag.Names()[0]) diff --git a/cmd/validator/BUILD.bazel b/cmd/validator/BUILD.bazel index 3fd38d1c6e..1a7ed6eeab 100644 --- a/cmd/validator/BUILD.bazel +++ b/cmd/validator/BUILD.bazel @@ -20,10 +20,10 @@ go_library( "//cmd/validator/flags:go_default_library", "//cmd/validator/slashing-protection:go_default_library", "//cmd/validator/wallet:go_default_library", + "//config/features:go_default_library", "//monitoring/journald:go_default_library", "//shared/cmd:go_default_library", "//shared/debug:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/logutil:go_default_library", "//shared/maxprocs:go_default_library", @@ -144,7 +144,7 @@ go_test( embed = [":go_default_library"], visibility = ["//validator:__pkg__"], deps = [ - "//shared/featureconfig:go_default_library", + "//config/features:go_default_library", "@com_github_urfave_cli_v2//:go_default_library", ], ) diff --git a/cmd/validator/accounts/BUILD.bazel b/cmd/validator/accounts/BUILD.bazel index ea6134df83..41bea0427e 100644 --- a/cmd/validator/accounts/BUILD.bazel +++ b/cmd/validator/accounts/BUILD.bazel @@ -7,8 +7,8 @@ go_library( visibility = ["//visibility:public"], deps = [ "//cmd/validator/flags:go_default_library", + "//config/features:go_default_library", "//shared/cmd:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/tos:go_default_library", "//validator/accounts:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", diff --git a/cmd/validator/accounts/accounts.go b/cmd/validator/accounts/accounts.go index c80efb84fd..1f3f68103a 100644 --- a/cmd/validator/accounts/accounts.go +++ b/cmd/validator/accounts/accounts.go @@ -4,8 +4,8 @@ import ( "os" "github.com/prysmaticlabs/prysm/cmd/validator/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/cmd" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/tos" "github.com/prysmaticlabs/prysm/validator/accounts" "github.com/sirupsen/logrus" @@ -27,9 +27,9 @@ var Commands = &cli.Command{ flags.WalletDirFlag, flags.WalletPasswordFileFlag, flags.DeletePublicKeysFlag, - featureconfig.Mainnet, - featureconfig.PyrmontTestnet, - featureconfig.PraterTestnet, + features.Mainnet, + features.PyrmontTestnet, + features.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -39,7 +39,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) if err := accounts.DeleteAccountCli(cliCtx); err != nil { log.Fatalf("Could not delete account: %v", err) } @@ -61,9 +61,9 @@ var Commands = &cli.Command{ flags.GrpcHeadersFlag, flags.GrpcRetriesFlag, flags.GrpcRetryDelayFlag, - featureconfig.Mainnet, - featureconfig.PyrmontTestnet, - featureconfig.PraterTestnet, + features.Mainnet, + features.PyrmontTestnet, + features.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -73,7 +73,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) if err := accounts.ListAccountsCli(cliCtx); err != nil { log.Fatalf("Could not list accounts: %v", err) } @@ -92,9 +92,9 @@ var Commands = &cli.Command{ flags.BackupDirFlag, flags.BackupPublicKeysFlag, flags.BackupPasswordFile, - featureconfig.Mainnet, - featureconfig.PyrmontTestnet, - featureconfig.PraterTestnet, + features.Mainnet, + features.PyrmontTestnet, + features.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -104,7 +104,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) if err := accounts.BackupAccountsCli(cliCtx); err != nil { log.Fatalf("Could not backup accounts: %v", err) } @@ -120,9 +120,9 @@ var Commands = &cli.Command{ flags.WalletPasswordFileFlag, flags.AccountPasswordFileFlag, flags.ImportPrivateKeyFileFlag, - featureconfig.Mainnet, - featureconfig.PyrmontTestnet, - featureconfig.PraterTestnet, + features.Mainnet, + features.PyrmontTestnet, + features.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -132,7 +132,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) if err := accounts.ImportAccountsCli(cliCtx); err != nil { log.Fatalf("Could not import accounts: %v", err) } @@ -154,9 +154,9 @@ var Commands = &cli.Command{ flags.GrpcRetriesFlag, flags.GrpcRetryDelayFlag, flags.ExitAllFlag, - featureconfig.Mainnet, - featureconfig.PyrmontTestnet, - featureconfig.PraterTestnet, + features.Mainnet, + features.PyrmontTestnet, + features.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -166,7 +166,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) if err := accounts.ExitAccountsCli(cliCtx, os.Stdin); err != nil { log.Fatalf("Could not perform voluntary exit: %v", err) } diff --git a/cmd/validator/main.go b/cmd/validator/main.go index 1128fa84a3..b814b1be0f 100644 --- a/cmd/validator/main.go +++ b/cmd/validator/main.go @@ -16,10 +16,10 @@ import ( "github.com/prysmaticlabs/prysm/cmd/validator/flags" slashingprotectioncommands "github.com/prysmaticlabs/prysm/cmd/validator/slashing-protection" walletcommands "github.com/prysmaticlabs/prysm/cmd/validator/wallet" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/journald" "github.com/prysmaticlabs/prysm/shared/cmd" "github.com/prysmaticlabs/prysm/shared/debug" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/shared/logutil" _ "github.com/prysmaticlabs/prysm/shared/maxprocs" @@ -103,7 +103,7 @@ var appFlags = []cli.Flag{ } func init() { - appFlags = cmd.WrapFlags(append(appFlags, featureconfig.ValidatorFlags...)) + appFlags = cmd.WrapFlags(append(appFlags, features.ValidatorFlags...)) } func main() { diff --git a/cmd/validator/slashing-protection/BUILD.bazel b/cmd/validator/slashing-protection/BUILD.bazel index fedd27c681..b9d7c9b309 100644 --- a/cmd/validator/slashing-protection/BUILD.bazel +++ b/cmd/validator/slashing-protection/BUILD.bazel @@ -7,8 +7,8 @@ go_library( visibility = ["//visibility:public"], deps = [ "//cmd/validator/flags:go_default_library", + "//config/features:go_default_library", "//shared/cmd:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/tos:go_default_library", "//validator/slashing-protection:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", diff --git a/cmd/validator/slashing-protection/slashing-protection.go b/cmd/validator/slashing-protection/slashing-protection.go index 3e5bc66470..ef2507a8de 100644 --- a/cmd/validator/slashing-protection/slashing-protection.go +++ b/cmd/validator/slashing-protection/slashing-protection.go @@ -2,8 +2,8 @@ package slashing_protection import ( "github.com/prysmaticlabs/prysm/cmd/validator/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/cmd" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/tos" slashingprotection "github.com/prysmaticlabs/prysm/validator/slashing-protection" "github.com/sirupsen/logrus" @@ -30,7 +30,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) if err := slashingprotection.ExportSlashingProtectionJSONCli(cliCtx); err != nil { logrus.Fatalf("Could not export slashing protection file: %v", err) } @@ -43,9 +43,9 @@ var Commands = &cli.Command{ Flags: cmd.WrapFlags([]cli.Flag{ cmd.DataDirFlag, flags.SlashingProtectionJSONFileFlag, - featureconfig.Mainnet, - featureconfig.PyrmontTestnet, - featureconfig.PraterTestnet, + features.Mainnet, + features.PyrmontTestnet, + features.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -55,7 +55,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) err := slashingprotection.ImportSlashingProtectionCLI(cliCtx) if err != nil { logrus.Fatalf("Could not import slashing protection cli: %v", err) diff --git a/cmd/validator/usage.go b/cmd/validator/usage.go index 85050444b1..ac6339c3cc 100644 --- a/cmd/validator/usage.go +++ b/cmd/validator/usage.go @@ -6,9 +6,9 @@ import ( "sort" "github.com/prysmaticlabs/prysm/cmd/validator/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/cmd" "github.com/prysmaticlabs/prysm/shared/debug" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/urfave/cli/v2" ) @@ -110,7 +110,7 @@ var appHelpFlagGroups = []flagGroup{ }, { Name: "features", - Flags: featureconfig.ActiveFlags(featureconfig.ValidatorFlags), + Flags: features.ActiveFlags(features.ValidatorFlags), }, { Name: "interop", diff --git a/cmd/validator/usage_test.go b/cmd/validator/usage_test.go index 31174285a3..b0232dfd46 100644 --- a/cmd/validator/usage_test.go +++ b/cmd/validator/usage_test.go @@ -3,7 +3,7 @@ package main import ( "testing" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" "github.com/urfave/cli/v2" ) @@ -16,8 +16,8 @@ func TestAllFlagsExistInHelp(t *testing.T) { for _, group := range appHelpFlagGroups { helpFlags = append(helpFlags, group.Flags...) } - helpFlags = featureconfig.ActiveFlags(helpFlags) - appFlags = featureconfig.ActiveFlags(appFlags) + helpFlags = features.ActiveFlags(helpFlags) + appFlags = features.ActiveFlags(appFlags) for _, flag := range appFlags { if !doesFlagExist(flag, helpFlags) { diff --git a/cmd/validator/wallet/BUILD.bazel b/cmd/validator/wallet/BUILD.bazel index e76460e8b9..521d3ec6ad 100644 --- a/cmd/validator/wallet/BUILD.bazel +++ b/cmd/validator/wallet/BUILD.bazel @@ -7,8 +7,8 @@ go_library( visibility = ["//visibility:public"], deps = [ "//cmd/validator/flags:go_default_library", + "//config/features:go_default_library", "//shared/cmd:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/tos:go_default_library", "//validator/accounts:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", diff --git a/cmd/validator/wallet/wallet.go b/cmd/validator/wallet/wallet.go index 2eb33bdc0b..dec1a1bfe5 100644 --- a/cmd/validator/wallet/wallet.go +++ b/cmd/validator/wallet/wallet.go @@ -2,8 +2,8 @@ package wallet import ( "github.com/prysmaticlabs/prysm/cmd/validator/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/cmd" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/tos" "github.com/prysmaticlabs/prysm/validator/accounts" "github.com/sirupsen/logrus" @@ -33,9 +33,9 @@ var Commands = &cli.Command{ flags.WalletPasswordFileFlag, flags.Mnemonic25thWordFileFlag, flags.SkipMnemonic25thWordCheckFlag, - featureconfig.Mainnet, - featureconfig.PyrmontTestnet, - featureconfig.PraterTestnet, + features.Mainnet, + features.PyrmontTestnet, + features.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -45,7 +45,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) if _, err := accounts.CreateAndSaveWalletCli(cliCtx); err != nil { log.Fatalf("Could not create a wallet: %v", err) } @@ -63,9 +63,9 @@ var Commands = &cli.Command{ flags.RemoteSignerCertPathFlag, flags.RemoteSignerKeyPathFlag, flags.RemoteSignerCACertPathFlag, - featureconfig.Mainnet, - featureconfig.PyrmontTestnet, - featureconfig.PraterTestnet, + features.Mainnet, + features.PyrmontTestnet, + features.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -75,7 +75,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) if err := accounts.EditWalletConfigurationCli(cliCtx); err != nil { log.Fatalf("Could not edit wallet configuration: %v", err) } @@ -92,9 +92,9 @@ var Commands = &cli.Command{ flags.NumAccountsFlag, flags.Mnemonic25thWordFileFlag, flags.SkipMnemonic25thWordCheckFlag, - featureconfig.Mainnet, - featureconfig.PyrmontTestnet, - featureconfig.PraterTestnet, + features.Mainnet, + features.PyrmontTestnet, + features.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -104,7 +104,7 @@ var Commands = &cli.Command{ return tos.VerifyTosAcceptedOrPrompt(cliCtx) }, Action: func(cliCtx *cli.Context) error { - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) if err := accounts.RecoverWalletCli(cliCtx); err != nil { log.Fatalf("Could not recover wallet: %v", err) } diff --git a/shared/featureconfig/BUILD.bazel b/config/features/BUILD.bazel similarity index 91% rename from shared/featureconfig/BUILD.bazel rename to config/features/BUILD.bazel index 7dbfe21f9d..382bfa3403 100644 --- a/shared/featureconfig/BUILD.bazel +++ b/config/features/BUILD.bazel @@ -8,7 +8,7 @@ go_library( "filter_flags.go", "flags.go", ], - importpath = "github.com/prysmaticlabs/prysm/shared/featureconfig", + importpath = "github.com/prysmaticlabs/prysm/config/features", visibility = ["//visibility:public"], deps = [ "//shared/params:go_default_library", diff --git a/shared/featureconfig/README.md b/config/features/README.md similarity index 100% rename from shared/featureconfig/README.md rename to config/features/README.md diff --git a/shared/featureconfig/config.go b/config/features/config.go similarity index 98% rename from shared/featureconfig/config.go rename to config/features/config.go index 25ee99ff43..afc835c7a0 100644 --- a/shared/featureconfig/config.go +++ b/config/features/config.go @@ -17,7 +17,7 @@ The process for implementing new features using this package is as follows: 6. Add the string for the flags that should be running within E2E to E2EValidatorFlags and E2EBeaconChainFlags. */ -package featureconfig +package features import ( "sync" @@ -64,12 +64,7 @@ type Flags struct { EnableActiveBalanceCache bool // EnableActiveBalanceCache enables active balance cache. // Bug fixes related flags. - AttestTimely bool // AttestTimely fixes #8185. It is gated behind a flag to ensure beacon node's fix can safely roll out first. We'll invert this in v1.1.0. - AttestationAggregationStrategy string // AttestationAggregationStrategy defines aggregation strategy to be used when aggregating. - - // KeystoreImportDebounceInterval specifies the time duration the validator waits to reload new keys if they have - // changed on disk. This feature is for advanced use cases only. - KeystoreImportDebounceInterval time.Duration + AttestTimely bool // AttestTimely fixes #8185. It is gated behind a flag to ensure beacon node's fix can safely roll out first. We'll invert this in v1.1.0. // EnableSlashingProtectionPruning for the validator client. EnableSlashingProtectionPruning bool @@ -77,6 +72,12 @@ type Flags struct { // Bug fixes related flags. CorrectlyInsertOrphanedAtts bool CorrectlyPruneCanonicalAtts bool + + // KeystoreImportDebounceInterval specifies the time duration the validator waits to reload new keys if they have + // changed on disk. This feature is for advanced use cases only. + KeystoreImportDebounceInterval time.Duration + + AttestationAggregationStrategy string // AttestationAggregationStrategy defines aggregation strategy to be used when aggregating. } var featureConfig *Flags diff --git a/shared/featureconfig/config_test.go b/config/features/config_test.go similarity index 98% rename from shared/featureconfig/config_test.go rename to config/features/config_test.go index d1b40f4de7..7db1e9813f 100644 --- a/shared/featureconfig/config_test.go +++ b/config/features/config_test.go @@ -1,4 +1,4 @@ -package featureconfig +package features import ( "flag" diff --git a/shared/featureconfig/deprecated_flags.go b/config/features/deprecated_flags.go similarity index 97% rename from shared/featureconfig/deprecated_flags.go rename to config/features/deprecated_flags.go index 6928477fba..4579748d29 100644 --- a/shared/featureconfig/deprecated_flags.go +++ b/config/features/deprecated_flags.go @@ -1,4 +1,4 @@ -package featureconfig +package features import "github.com/urfave/cli/v2" diff --git a/shared/featureconfig/deprecated_flags_test.go b/config/features/deprecated_flags_test.go similarity index 95% rename from shared/featureconfig/deprecated_flags_test.go rename to config/features/deprecated_flags_test.go index 0c2339abf5..d8140c48c8 100644 --- a/shared/featureconfig/deprecated_flags_test.go +++ b/config/features/deprecated_flags_test.go @@ -1,4 +1,4 @@ -package featureconfig +package features import ( "reflect" diff --git a/shared/featureconfig/filter_flags.go b/config/features/filter_flags.go similarity index 96% rename from shared/featureconfig/filter_flags.go rename to config/features/filter_flags.go index d939df5f30..319cd9a017 100644 --- a/shared/featureconfig/filter_flags.go +++ b/config/features/filter_flags.go @@ -1,4 +1,4 @@ -package featureconfig +package features import ( "reflect" diff --git a/shared/featureconfig/flags.go b/config/features/flags.go similarity index 99% rename from shared/featureconfig/flags.go rename to config/features/flags.go index e47a9b9439..c69b16be6a 100644 --- a/shared/featureconfig/flags.go +++ b/config/features/flags.go @@ -1,4 +1,4 @@ -package featureconfig +package features import ( "time" diff --git a/endtoend/components/BUILD.bazel b/endtoend/components/BUILD.bazel index c875280c2f..de895e676e 100644 --- a/endtoend/components/BUILD.bazel +++ b/endtoend/components/BUILD.bazel @@ -17,13 +17,13 @@ go_library( deps = [ "//cmd/beacon-chain/flags:go_default_library", "//cmd/validator/flags:go_default_library", + "//config/features:go_default_library", "//contracts/deposit-contract:go_default_library", "//endtoend/helpers:go_default_library", "//endtoend/params:go_default_library", "//endtoend/types:go_default_library", "//shared/bytesutil:go_default_library", "//shared/cmd:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/params:go_default_library", "//shared/testutil:go_default_library", "@com_github_ethereum_go_ethereum//accounts/abi/bind:go_default_library", diff --git a/endtoend/components/beacon_node.go b/endtoend/components/beacon_node.go index 57ba73b4a0..e8404d54bd 100644 --- a/endtoend/components/beacon_node.go +++ b/endtoend/components/beacon_node.go @@ -13,11 +13,11 @@ import ( "github.com/bazelbuild/rules_go/go/tools/bazel" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/endtoend/helpers" e2e "github.com/prysmaticlabs/prysm/endtoend/params" e2etypes "github.com/prysmaticlabs/prysm/endtoend/types" cmdshared "github.com/prysmaticlabs/prysm/shared/cmd" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" ) @@ -126,7 +126,7 @@ func (node *BeaconNode) Start(ctx context.Context) error { if config.UsePprof { args = append(args, "--pprof", fmt.Sprintf("--pprofport=%d", e2e.TestParams.BeaconNodeRPCPort+index+50)) } - args = append(args, featureconfig.E2EBeaconChainFlags...) + args = append(args, features.E2EBeaconChainFlags...) args = append(args, config.BeaconFlags...) cmd := exec.CommandContext(ctx, binaryPath, args...) /* #nosec G204 */ diff --git a/endtoend/components/validator.go b/endtoend/components/validator.go index 8156d06ccd..a3905a9141 100644 --- a/endtoend/components/validator.go +++ b/endtoend/components/validator.go @@ -18,13 +18,13 @@ import ( "github.com/ethereum/go-ethereum/rpc" "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/cmd/validator/flags" + "github.com/prysmaticlabs/prysm/config/features" contracts "github.com/prysmaticlabs/prysm/contracts/deposit-contract" "github.com/prysmaticlabs/prysm/endtoend/helpers" e2e "github.com/prysmaticlabs/prysm/endtoend/params" e2etypes "github.com/prysmaticlabs/prysm/endtoend/types" "github.com/prysmaticlabs/prysm/shared/bytesutil" cmdshared "github.com/prysmaticlabs/prysm/shared/cmd" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil" ) @@ -146,7 +146,7 @@ func (v *ValidatorNode) Start(ctx context.Context) error { } // Only apply e2e flags to the current branch. New flags may not exist in previous release. if !v.config.UsePrysmShValidator { - args = append(args, featureconfig.E2EValidatorFlags...) + args = append(args, features.E2EValidatorFlags...) } args = append(args, config.ValidatorFlags...) diff --git a/fuzz/BUILD.bazel b/fuzz/BUILD.bazel index 4269d6f4e0..225597439c 100644 --- a/fuzz/BUILD.bazel +++ b/fuzz/BUILD.bazel @@ -27,7 +27,7 @@ IMPORT_PATH = "github.com/prysmaticlabs/prysm/fuzz" COMMON_DEPS = [ "//beacon-chain/state/v1:go_default_library", - "//shared/featureconfig:go_default_library", + "//config/features:go_default_library", ] + SSZ_DEPS COMMON_SRCS = [ @@ -187,7 +187,7 @@ go_library( "//beacon-chain/sync/initial-sync/testing:go_default_library", "//fuzz/testing:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/featureconfig:go_default_library", + "//config/features:go_default_library", "//shared/params:go_default_library", "//shared/rand:go_default_library", "//shared/testutil:go_default_library", diff --git a/fuzz/common.go b/fuzz/common.go index 1f2b02e2c2..43bb76c06d 100644 --- a/fuzz/common.go +++ b/fuzz/common.go @@ -3,7 +3,7 @@ package fuzz import ( "os" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" ) // EnvBls defines an environment variable name to check whether BLS is enabled or not. @@ -14,7 +14,7 @@ func init() { if value, exists := os.LookupEnv(EnvBls); exists { blsEnabled = value == "1" } - featureconfig.Init(&featureconfig.Flags{ + features.Init(&features.Flags{ SkipBLSVerify: !blsEnabled, }) } diff --git a/fuzz/state_fuzz.go b/fuzz/state_fuzz.go index 7c8cee01a6..83ae34f439 100644 --- a/fuzz/state_fuzz.go +++ b/fuzz/state_fuzz.go @@ -7,13 +7,13 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core" stateutil "github.com/prysmaticlabs/prysm/beacon-chain/core/transition" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" ) func init() { - featureconfig.Init(&featureconfig.Flags{ + features.Init(&features.Flags{ EnableSSZCache: false, }) } diff --git a/shared/aggregation/attestations/BUILD.bazel b/shared/aggregation/attestations/BUILD.bazel index 4d32fffd92..bda24e383e 100644 --- a/shared/aggregation/attestations/BUILD.bazel +++ b/shared/aggregation/attestations/BUILD.bazel @@ -10,10 +10,10 @@ go_library( importpath = "github.com/prysmaticlabs/prysm/shared/aggregation/attestations", visibility = ["//visibility:public"], deps = [ + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/aggregation:go_default_library", "//shared/bls:go_default_library", - "//shared/featureconfig:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prysmaticlabs_go_bitfield//:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", @@ -29,11 +29,11 @@ go_test( ], embed = [":go_default_library"], deps = [ + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/aggregation:go_default_library", "//shared/aggregation/testing:go_default_library", "//shared/bls:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/params:go_default_library", "//shared/sszutil:go_default_library", "//shared/testutil/assert:go_default_library", diff --git a/shared/aggregation/attestations/attestations.go b/shared/aggregation/attestations/attestations.go index bc5bd4bc48..15317ed692 100644 --- a/shared/aggregation/attestations/attestations.go +++ b/shared/aggregation/attestations/attestations.go @@ -2,10 +2,10 @@ package attestations import ( "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/aggregation" "github.com/prysmaticlabs/prysm/shared/bls" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/sirupsen/logrus" ) @@ -50,7 +50,7 @@ var ErrInvalidAttestationCount = errors.New("invalid number of attestations") // } // aggregatedAtts, err := attaggregation.Aggregate(clonedAtts) func Aggregate(atts []*ethpb.Attestation) ([]*ethpb.Attestation, error) { - strategy := AttestationAggregationStrategy(featureconfig.Get().AttestationAggregationStrategy) + strategy := AttestationAggregationStrategy(features.Get().AttestationAggregationStrategy) switch strategy { case "", NaiveAggregation: return NaiveAttestationAggregation(atts) diff --git a/shared/aggregation/attestations/attestations_bench_test.go b/shared/aggregation/attestations/attestations_bench_test.go index 7290e53ef6..efa90bf5a5 100644 --- a/shared/aggregation/attestations/attestations_bench_test.go +++ b/shared/aggregation/attestations/attestations_bench_test.go @@ -5,10 +5,10 @@ import ( "testing" "github.com/prysmaticlabs/go-bitfield" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" aggtesting "github.com/prysmaticlabs/prysm/shared/aggregation/testing" "github.com/prysmaticlabs/prysm/shared/bls" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) @@ -63,7 +63,7 @@ func BenchmarkAggregateAttestations_Aggregate(b *testing.B) { for _, tt := range tests { b.Run(fmt.Sprintf("naive_%s", tt.name), func(b *testing.B) { b.StopTimer() - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(NaiveAggregation), }) atts := aggtesting.MakeAttestationsFromBitlists(tt.inputs) @@ -75,7 +75,7 @@ func BenchmarkAggregateAttestations_Aggregate(b *testing.B) { }) b.Run(fmt.Sprintf("max-cover_%s", tt.name), func(b *testing.B) { b.StopTimer() - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(MaxCoverAggregation), }) atts := aggtesting.MakeAttestationsFromBitlists(tt.inputs) @@ -87,7 +87,7 @@ func BenchmarkAggregateAttestations_Aggregate(b *testing.B) { }) b.Run(fmt.Sprintf("opt-max-cover_%s", tt.name), func(b *testing.B) { b.StopTimer() - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(OptMaxCoverAggregation), }) atts := aggtesting.MakeAttestationsFromBitlists(tt.inputs) diff --git a/shared/aggregation/attestations/attestations_test.go b/shared/aggregation/attestations/attestations_test.go index d45efe55bd..1a3a6090d6 100644 --- a/shared/aggregation/attestations/attestations_test.go +++ b/shared/aggregation/attestations/attestations_test.go @@ -7,11 +7,11 @@ import ( "testing" "github.com/prysmaticlabs/go-bitfield" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/aggregation" aggtesting "github.com/prysmaticlabs/prysm/shared/aggregation/testing" "github.com/prysmaticlabs/prysm/shared/bls" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/sszutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" @@ -22,7 +22,7 @@ import ( func TestMain(m *testing.M) { logrus.SetLevel(logrus.DebugLevel) logrus.SetOutput(ioutil.Discard) - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(OptMaxCoverAggregation), }) defer resetCfg() @@ -233,21 +233,21 @@ func TestAggregateAttestations_Aggregate(t *testing.T) { } } t.Run(fmt.Sprintf("%s/%s", tt.name, NaiveAggregation), func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(NaiveAggregation), }) defer resetCfg() runner() }) t.Run(fmt.Sprintf("%s/%s", tt.name, MaxCoverAggregation), func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(MaxCoverAggregation), }) defer resetCfg() runner() }) t.Run(fmt.Sprintf("%s/%s", tt.name, OptMaxCoverAggregation), func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(OptMaxCoverAggregation), }) defer resetCfg() @@ -256,7 +256,7 @@ func TestAggregateAttestations_Aggregate(t *testing.T) { } t.Run("invalid strategy", func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: "foobar", }) defer resetCfg() @@ -267,7 +267,7 @@ func TestAggregateAttestations_Aggregate(t *testing.T) { t.Run("broken attestation bitset", func(t *testing.T) { wantErr := "bitlist cannot be nil or empty: invalid max_cover problem" t.Run(string(MaxCoverAggregation), func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(MaxCoverAggregation), }) defer resetCfg() @@ -279,7 +279,7 @@ func TestAggregateAttestations_Aggregate(t *testing.T) { assert.ErrorContains(t, wantErr, err) }) t.Run(string(OptMaxCoverAggregation), func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(OptMaxCoverAggregation), }) defer resetCfg() @@ -296,7 +296,7 @@ func TestAggregateAttestations_Aggregate(t *testing.T) { // The first item cannot be aggregated, and should be pushed down the list, // by two swaps with aggregated items (aggregation is done in-place, so the very same // underlying array is used for storing both aggregated and non-aggregated items). - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(OptMaxCoverAggregation), }) defer resetCfg() diff --git a/shared/aggregation/sync_contribution/BUILD.bazel b/shared/aggregation/sync_contribution/BUILD.bazel index 4b37eb2ea7..1090d92ccd 100644 --- a/shared/aggregation/sync_contribution/BUILD.bazel +++ b/shared/aggregation/sync_contribution/BUILD.bazel @@ -22,11 +22,11 @@ go_test( srcs = ["naive_test.go"], embed = [":go_default_library"], deps = [ + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/aggregation:go_default_library", "//shared/aggregation/testing:go_default_library", "//shared/bls:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "@com_github_prysmaticlabs_go_bitfield//:go_default_library", diff --git a/shared/aggregation/sync_contribution/naive_test.go b/shared/aggregation/sync_contribution/naive_test.go index 3fbf5827aa..719402924b 100644 --- a/shared/aggregation/sync_contribution/naive_test.go +++ b/shared/aggregation/sync_contribution/naive_test.go @@ -6,11 +6,11 @@ import ( "testing" "github.com/prysmaticlabs/go-bitfield" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/aggregation" aggtesting "github.com/prysmaticlabs/prysm/shared/aggregation/testing" "github.com/prysmaticlabs/prysm/shared/bls" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) @@ -163,7 +163,7 @@ func TestAggregateAttestations_Aggregate(t *testing.T) { } } t.Run(fmt.Sprintf("%s/%s", tt.name, NaiveAggregation), func(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ AttestationAggregationStrategy: string(NaiveAggregation), }) defer resetCfg() diff --git a/shared/bls/blst/BUILD.bazel b/shared/bls/blst/BUILD.bazel index 59d648745b..3205ac5709 100644 --- a/shared/bls/blst/BUILD.bazel +++ b/shared/bls/blst/BUILD.bazel @@ -108,7 +108,7 @@ go_library( ":android_arm64", ): [ "//shared/bls/common:go_default_library", - "//shared/featureconfig:go_default_library", + "//config/features:go_default_library", "//shared/params:go_default_library", "//shared/rand:go_default_library", "@com_github_dgraph_io_ristretto//:go_default_library", diff --git a/shared/bls/blst/public_key.go b/shared/bls/blst/public_key.go index 2dfaae6f02..5818d0fa69 100644 --- a/shared/bls/blst/public_key.go +++ b/shared/bls/blst/public_key.go @@ -8,8 +8,8 @@ import ( "github.com/dgraph-io/ristretto" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/bls/common" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" ) @@ -27,7 +27,7 @@ type PublicKey struct { // PublicKeyFromBytes creates a BLS public key from a BigEndian byte slice. func PublicKeyFromBytes(pubKey []byte) (common.PublicKey, error) { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return &PublicKey{}, nil } if len(pubKey) != params.BeaconConfig().BLSPubkeyLength { @@ -54,7 +54,7 @@ func PublicKeyFromBytes(pubKey []byte) (common.PublicKey, error) { // AggregatePublicKeys aggregates the provided raw public keys into a single key. func AggregatePublicKeys(pubs [][]byte) (common.PublicKey, error) { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return &PublicKey{}, nil } if pubs == nil || len(pubs) == 0 { @@ -95,7 +95,7 @@ func (p *PublicKey) IsInfinite() bool { // Aggregate two public keys. func (p *PublicKey) Aggregate(p2 common.PublicKey) common.PublicKey { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return p } diff --git a/shared/bls/blst/secret_key.go b/shared/bls/blst/secret_key.go index 73f8d35936..bdc45cab3a 100644 --- a/shared/bls/blst/secret_key.go +++ b/shared/bls/blst/secret_key.go @@ -7,8 +7,8 @@ import ( "crypto/subtle" "fmt" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/bls/common" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/rand" blst "github.com/supranational/blst/bindings/go" @@ -74,7 +74,7 @@ func IsZero(sKey []byte) bool { // In Ethereum proof of stake specification: // def Sign(SK: int, message: Bytes) -> BLSSignature func (s *bls12SecretKey) Sign(msg []byte) common.Signature { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return &Signature{} } signature := new(blstSignature).Sign(s.p, msg, dst) diff --git a/shared/bls/blst/signature.go b/shared/bls/blst/signature.go index 3aea0866a9..2ca9cf9120 100644 --- a/shared/bls/blst/signature.go +++ b/shared/bls/blst/signature.go @@ -9,8 +9,8 @@ import ( "sync" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/bls/common" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/rand" blst "github.com/supranational/blst/bindings/go" @@ -28,7 +28,7 @@ type Signature struct { // SignatureFromBytes creates a BLS signature from a LittleEndian byte slice. func SignatureFromBytes(sig []byte) (common.Signature, error) { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return &Signature{}, nil } if len(sig) != params.BeaconConfig().BLSSignatureLength { @@ -56,7 +56,7 @@ func SignatureFromBytes(sig []byte) (common.Signature, error) { // In the Ethereum proof of stake specification: // def Verify(PK: BLSPubkey, message: Bytes, signature: BLSSignature) -> bool func (s *Signature) Verify(pubKey common.PublicKey, msg []byte) bool { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return true } // Signature and PKs are assumed to have been validated upon decompression! @@ -81,7 +81,7 @@ func (s *Signature) Verify(pubKey common.PublicKey, msg []byte) bool { // // Deprecated: Use FastAggregateVerify or use this method in spectests only. func (s *Signature) AggregateVerify(pubKeys []common.PublicKey, msgs [][32]byte) bool { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return true } size := len(pubKeys) @@ -112,7 +112,7 @@ func (s *Signature) AggregateVerify(pubKeys []common.PublicKey, msgs [][32]byte) // In the Ethereum proof of stake specification: // def FastAggregateVerify(PKs: Sequence[BLSPubkey], message: Bytes, signature: BLSSignature) -> bool func (s *Signature) FastAggregateVerify(pubKeys []common.PublicKey, msg [32]byte) bool { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return true } if len(pubKeys) == 0 { @@ -133,7 +133,7 @@ func (s *Signature) FastAggregateVerify(pubKeys []common.PublicKey, msg [32]byte // return True // return bls.FastAggregateVerify(pubkeys, message, signature) func (s *Signature) Eth2FastAggregateVerify(pubKeys []common.PublicKey, msg [32]byte) bool { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return true } if len(pubKeys) == 0 && bytes.Equal(s.Marshal(), common.InfiniteSignature[:]) { @@ -161,7 +161,7 @@ func AggregateSignatures(sigs []common.Signature) common.Signature { if len(sigs) == 0 { return nil } - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return sigs[0] } @@ -199,7 +199,7 @@ func Aggregate(sigs []common.Signature) common.Signature { // e(S*, G) = \prod_{i=1}^n \prod_{j=1}^{m_i} e(P'_{i,j}, M_{i,j}) // Using this we can verify multiple signatures safely. func VerifyMultipleSignatures(sigs [][]byte, msgs [][32]byte, pubKeys []common.PublicKey) (bool, error) { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return true, nil } if len(sigs) == 0 || len(pubKeys) == 0 { @@ -242,7 +242,7 @@ func VerifyMultipleSignatures(sigs [][]byte, msgs [][32]byte, pubKeys []common.P // Marshal a signature into a LittleEndian byte slice. func (s *Signature) Marshal() []byte { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return make([]byte, params.BeaconConfig().BLSSignatureLength) } diff --git a/shared/depositutil/BUILD.bazel b/shared/depositutil/BUILD.bazel index 64bc744440..53db2e0678 100644 --- a/shared/depositutil/BUILD.bazel +++ b/shared/depositutil/BUILD.bazel @@ -7,9 +7,9 @@ go_library( visibility = ["//visibility:public"], deps = [ "//beacon-chain/core/helpers:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bls:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/params:go_default_library", "@com_github_pkg_errors//:go_default_library", diff --git a/shared/depositutil/deposit.go b/shared/depositutil/deposit.go index e6c7db101d..b48cb1760d 100644 --- a/shared/depositutil/deposit.go +++ b/shared/depositutil/deposit.go @@ -5,9 +5,9 @@ package depositutil import ( "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bls" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/params" ) @@ -79,7 +79,7 @@ func WithdrawalCredentialsHash(withdrawalKey bls.SecretKey) []byte { // VerifyDepositSignature verifies the correctness of Eth1 deposit BLS signature func VerifyDepositSignature(dd *ethpb.Deposit_Data, domain []byte) error { - if featureconfig.Get().SkipBLSVerify { + if features.Get().SkipBLSVerify { return nil } ddCopy := ethpb.CopyDepositData(dd) diff --git a/slasher/detection/attestations/BUILD.bazel b/slasher/detection/attestations/BUILD.bazel index 161f107b80..947d557ca5 100644 --- a/slasher/detection/attestations/BUILD.bazel +++ b/slasher/detection/attestations/BUILD.bazel @@ -9,8 +9,8 @@ go_library( importpath = "github.com/prysmaticlabs/prysm/slasher/detection/attestations", visibility = ["//slasher:__subpackages__"], deps = [ + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/params:go_default_library", "//slasher/db:go_default_library", "//slasher/db/types:go_default_library", @@ -32,8 +32,8 @@ go_test( ], embed = [":go_default_library"], deps = [ + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/sliceutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", diff --git a/slasher/detection/attestations/spanner.go b/slasher/detection/attestations/spanner.go index a0a7cd341c..175ced87b9 100644 --- a/slasher/detection/attestations/spanner.go +++ b/slasher/detection/attestations/spanner.go @@ -10,8 +10,8 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/slasher/db" dbtypes "github.com/prysmaticlabs/prysm/slasher/db/types" @@ -257,7 +257,7 @@ func (s *SpanDetector) updateMinSpan(ctx context.Context, att *ethpb.IndexedAtte lookbackEpoch = 0 } untilEpoch := lookbackEpoch - if featureconfig.Get().DisableLookback { + if features.Get().DisableLookback { untilEpoch = 0 } var err error diff --git a/slasher/detection/attestations/spanner_test.go b/slasher/detection/attestations/spanner_test.go index 2c429c6fff..0fa0002961 100644 --- a/slasher/detection/attestations/spanner_test.go +++ b/slasher/detection/attestations/spanner_test.go @@ -6,8 +6,8 @@ import ( "testing" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -915,7 +915,7 @@ func TestNewSpanDetector_UpdateSpans(t *testing.T) { } func TestSpanDetector_UpdateMinSpansCheckCacheSize(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{DisableLookback: true}) + resetCfg := features.InitWithReset(&features.Flags{DisableLookback: true}) defer resetCfg() att := ðpb.IndexedAttestation{ diff --git a/slasher/node/BUILD.bazel b/slasher/node/BUILD.bazel index 8cefde00a9..bb16870909 100644 --- a/slasher/node/BUILD.bazel +++ b/slasher/node/BUILD.bazel @@ -13,6 +13,7 @@ go_library( ], deps = [ "//cmd/slasher/flags:go_default_library", + "//config/features:go_default_library", "//monitoring/backup:go_default_library", "//monitoring/prometheus:go_default_library", "//monitoring/tracing:go_default_library", @@ -20,7 +21,6 @@ go_library( "//shared/cmd:go_default_library", "//shared/debug:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/params:go_default_library", "//shared/prereq:go_default_library", "//shared/version:go_default_library", diff --git a/slasher/node/node.go b/slasher/node/node.go index 99d8f4d3a8..2c0a097f18 100644 --- a/slasher/node/node.go +++ b/slasher/node/node.go @@ -14,6 +14,7 @@ import ( "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/cmd/slasher/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/backup" "github.com/prysmaticlabs/prysm/monitoring/prometheus" tracing2 "github.com/prysmaticlabs/prysm/monitoring/tracing" @@ -21,7 +22,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/cmd" "github.com/prysmaticlabs/prysm/shared/debug" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/prereq" "github.com/prysmaticlabs/prysm/shared/version" @@ -72,7 +72,7 @@ func New(cliCtx *cli.Context) (*SlasherNode, error) { cmd.Init(cmdConfig) } - featureconfig.ConfigureSlasher(cliCtx) + features.ConfigureSlasher(cliCtx) cmd.ConfigureSlasher(cliCtx) registry := shared.NewServiceRegistry() diff --git a/tools/extractor/BUILD.bazel b/tools/extractor/BUILD.bazel index a3f52f9d5c..2527324f01 100644 --- a/tools/extractor/BUILD.bazel +++ b/tools/extractor/BUILD.bazel @@ -10,7 +10,7 @@ go_library( "//beacon-chain/core/transition/interop:go_default_library", "//beacon-chain/db:go_default_library", "//beacon-chain/db/kv:go_default_library", - "//shared/featureconfig:go_default_library", + "//config/features:go_default_library", "@com_github_prysmaticlabs_eth2_types//:go_default_library", ], ) diff --git a/tools/extractor/main.go b/tools/extractor/main.go index 2bfcbc05ef..09f48584f8 100644 --- a/tools/extractor/main.go +++ b/tools/extractor/main.go @@ -9,7 +9,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/transition/interop" "github.com/prysmaticlabs/prysm/beacon-chain/db" "github.com/prysmaticlabs/prysm/beacon-chain/db/kv" - "github.com/prysmaticlabs/prysm/shared/featureconfig" + "github.com/prysmaticlabs/prysm/config/features" ) var ( @@ -20,7 +20,7 @@ var ( ) func main() { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{WriteSSZStateTransitions: true}) + resetCfg := features.InitWithReset(&features.Flags{WriteSSZStateTransitions: true}) defer resetCfg() flag.Parse() fmt.Println("Starting process...") diff --git a/validator/client/BUILD.bazel b/validator/client/BUILD.bazel index 1201f0a8f9..4a6da468a2 100644 --- a/validator/client/BUILD.bazel +++ b/validator/client/BUILD.bazel @@ -25,6 +25,7 @@ go_library( "//beacon-chain/core/altair:go_default_library", "//beacon-chain/core/helpers:go_default_library", "//cache/lru:go_default_library", + "//config/features:go_default_library", "//monitoring/tracing:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", @@ -34,7 +35,6 @@ go_library( "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/grpcutils:go_default_library", "//shared/hashutil:go_default_library", "//shared/mathutil:go_default_library", @@ -107,6 +107,7 @@ go_test( deps = [ "//beacon-chain/core/helpers:go_default_library", "//cache/lru:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/validator-client:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", @@ -114,7 +115,6 @@ go_test( "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/mock:go_default_library", "//shared/params:go_default_library", diff --git a/validator/client/attest.go b/validator/client/attest.go index a155caebe8..4ee9998ca5 100644 --- a/validator/client/attest.go +++ b/validator/client/attest.go @@ -11,12 +11,12 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/go-bitfield" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/tracing" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" validatorpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/mputil" "github.com/prysmaticlabs/prysm/shared/params" @@ -274,7 +274,7 @@ func (v *validator) waitOneThirdOrValidBlock(ctx context.Context, slot types.Slo for { select { case b := <-bChannel: - if featureconfig.Get().AttestTimely { + if features.Get().AttestTimely { if slot <= b.Block().Slot() { return } diff --git a/validator/client/attest_protect.go b/validator/client/attest_protect.go index d78490924e..4d982fe378 100644 --- a/validator/client/attest_protect.go +++ b/validator/client/attest_protect.go @@ -6,8 +6,8 @@ import ( "fmt" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/slashutil" "github.com/prysmaticlabs/prysm/validator/db/kv" "go.opencensus.io/trace" @@ -81,7 +81,7 @@ func (v *validator) slashableAttestationCheck( return errors.Wrap(err, "could not save attestation history for validator public key") } - if featureconfig.Get().SlasherProtection && v.protector != nil { + if features.Get().SlasherProtection && v.protector != nil { if !v.protector.CommitAttestation(ctx, indexedAtt) { if v.emitAccountMetrics { ValidatorAttestFailVecSlasher.WithLabelValues(fmtKey).Inc() diff --git a/validator/client/attest_protect_test.go b/validator/client/attest_protect_test.go index b75a03ef71..ac94b01ad8 100644 --- a/validator/client/attest_protect_test.go +++ b/validator/client/attest_protect_test.go @@ -6,18 +6,18 @@ import ( "github.com/golang/mock/gomock" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/testutil/require" mockSlasher "github.com/prysmaticlabs/prysm/validator/testing" ) func Test_slashableAttestationCheck(t *testing.T) { - config := &featureconfig.Flags{ + config := &features.Flags{ SlasherProtection: true, } - reset := featureconfig.InitWithReset(config) + reset := features.InitWithReset(config) defer reset() validator, _, validatorKey, finish := setup(t) defer finish() @@ -49,10 +49,10 @@ func Test_slashableAttestationCheck(t *testing.T) { } func Test_slashableAttestationCheck_UpdatesLowestSignedEpochs(t *testing.T) { - config := &featureconfig.Flags{ + config := &features.Flags{ SlasherProtection: true, } - reset := featureconfig.InitWithReset(config) + reset := features.InitWithReset(config) defer reset() validator, m, validatorKey, finish := setup(t) defer finish() @@ -101,10 +101,10 @@ func Test_slashableAttestationCheck_UpdatesLowestSignedEpochs(t *testing.T) { } func Test_slashableAttestationCheck_OK(t *testing.T) { - config := &featureconfig.Flags{ + config := &features.Flags{ SlasherProtection: false, } - reset := featureconfig.InitWithReset(config) + reset := features.InitWithReset(config) defer reset() ctx := context.Background() validator, _, _, finish := setup(t) @@ -132,10 +132,10 @@ func Test_slashableAttestationCheck_OK(t *testing.T) { } func Test_slashableAttestationCheck_GenesisEpoch(t *testing.T) { - config := &featureconfig.Flags{ + config := &features.Flags{ SlasherProtection: false, } - reset := featureconfig.InitWithReset(config) + reset := features.InitWithReset(config) defer reset() ctx := context.Background() validator, _, _, finish := setup(t) diff --git a/validator/client/attest_test.go b/validator/client/attest_test.go index e1a1814235..6fae0e2f1f 100644 --- a/validator/client/attest_test.go +++ b/validator/client/attest_test.go @@ -13,13 +13,13 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/go-bitfield" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" validatorpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" @@ -523,7 +523,7 @@ func TestServer_WaitToSlotOneThird_SameReqSlot(t *testing.T) { } func TestServer_WaitToSlotOneThird_ReceiveBlockSlot(t *testing.T) { - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{AttestTimely: true}) + resetCfg := features.InitWithReset(&features.Flags{AttestTimely: true}) defer resetCfg() currentTime := uint64(time.Now().Unix()) diff --git a/validator/client/propose_protect.go b/validator/client/propose_protect.go index 3a42eaa476..18ce827298 100644 --- a/validator/client/propose_protect.go +++ b/validator/client/propose_protect.go @@ -5,9 +5,9 @@ import ( "fmt" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/shared/blockutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/sirupsen/logrus" ) @@ -58,7 +58,7 @@ func (v *validator) preBlockSignValidations( ) } - if featureconfig.Get().SlasherProtection && v.protector != nil { + if features.Get().SlasherProtection && v.protector != nil { blockHdr, err := blockutil.BeaconBlockHeaderFromBlockInterface(block) if err != nil { return errors.Wrap(err, "failed to get block header from block") @@ -81,7 +81,7 @@ func (v *validator) postBlockSignUpdate( signingRoot [32]byte, ) error { fmtKey := fmt.Sprintf("%#x", pubKey[:]) - if featureconfig.Get().SlasherProtection && v.protector != nil { + if features.Get().SlasherProtection && v.protector != nil { sbh, err := blockutil.SignedBeaconBlockHeaderFromBlockInterface(block) if err != nil { return errors.Wrap(err, "failed to get block header from block") diff --git a/validator/client/propose_protect_test.go b/validator/client/propose_protect_test.go index 5ab61c1e68..5054f57586 100644 --- a/validator/client/propose_protect_test.go +++ b/validator/client/propose_protect_test.go @@ -5,9 +5,9 @@ import ( "testing" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/require" mockSlasher "github.com/prysmaticlabs/prysm/validator/testing" @@ -65,10 +65,10 @@ func TestPreBlockSignLocalValidation_PreventsLowerThanMinProposal(t *testing.T) func TestPreBlockSignLocalValidation(t *testing.T) { ctx := context.Background() - config := &featureconfig.Flags{ + config := &features.Flags{ SlasherProtection: false, } - reset := featureconfig.InitWithReset(config) + reset := features.InitWithReset(config) defer reset() validator, _, validatorKey, finish := setup(t) defer finish() @@ -117,10 +117,10 @@ func TestPreBlockSignLocalValidation(t *testing.T) { } func TestPreBlockSignValidation(t *testing.T) { - config := &featureconfig.Flags{ + config := &features.Flags{ SlasherProtection: true, } - reset := featureconfig.InitWithReset(config) + reset := features.InitWithReset(config) defer reset() validator, _, validatorKey, finish := setup(t) defer finish() @@ -139,10 +139,10 @@ func TestPreBlockSignValidation(t *testing.T) { } func TestPostBlockSignUpdate(t *testing.T) { - config := &featureconfig.Flags{ + config := &features.Flags{ SlasherProtection: true, } - reset := featureconfig.InitWithReset(config) + reset := features.InitWithReset(config) defer reset() validator, _, validatorKey, finish := setup(t) defer finish() diff --git a/validator/client/runner.go b/validator/client/runner.go index a6338b64c1..d1a893621b 100644 --- a/validator/client/runner.go +++ b/validator/client/runner.go @@ -9,8 +9,8 @@ import ( "github.com/pkg/errors" types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/core" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/validator/client/iface" "github.com/prysmaticlabs/prysm/validator/keymanager/remote" @@ -40,7 +40,7 @@ func run(ctx context.Context, v iface.Validator) { cleanup() log.Fatalf("Wallet is not ready: %v", err) } - if featureconfig.Get().SlasherProtection { + if features.Get().SlasherProtection { if err := v.SlasherReady(ctx); err != nil { log.Fatalf("Slasher is not ready: %v", err) } diff --git a/validator/client/runner_test.go b/validator/client/runner_test.go index 17ee83fa25..7ff764fbcf 100644 --- a/validator/client/runner_test.go +++ b/validator/client/runner_test.go @@ -7,8 +7,8 @@ import ( "time" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/validator/client/iface" @@ -64,10 +64,10 @@ func TestCancelledContext_WaitsForActivation(t *testing.T) { func TestCancelledContext_ChecksSlasherReady(t *testing.T) { v := &testutil.FakeValidator{Keymanager: &mockKeymanager{accountsChangedFeed: &event.Feed{}}} - cfg := &featureconfig.Flags{ + cfg := &features.Flags{ SlasherProtection: true, } - reset := featureconfig.InitWithReset(cfg) + reset := features.InitWithReset(cfg) defer reset() run(cancelledContext(), v) assert.Equal(t, true, v.SlasherReadyCalled, "Expected SlasherReady() to be called") diff --git a/validator/client/slashing_protection_interchange_test.go b/validator/client/slashing_protection_interchange_test.go index 188b076bc8..627dea55c4 100644 --- a/validator/client/slashing_protection_interchange_test.go +++ b/validator/client/slashing_protection_interchange_test.go @@ -9,9 +9,9 @@ import ( "testing" "github.com/bazelbuild/rules_go/go/tools/bazel" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -76,10 +76,10 @@ func setupEIP3076SpecTests(t *testing.T) []*eip3076TestCase { } func TestEIP3076SpecTests(t *testing.T) { - config := &featureconfig.Flags{ + config := &features.Flags{ SlasherProtection: true, } - reset := featureconfig.InitWithReset(config) + reset := features.InitWithReset(config) defer reset() testCases := setupEIP3076SpecTests(t) diff --git a/validator/client/validator.go b/validator/client/validator.go index 8440c945c1..cca0ff9785 100644 --- a/validator/client/validator.go +++ b/validator/client/validator.go @@ -20,12 +20,12 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/core" "github.com/prysmaticlabs/prysm/beacon-chain/core/altair" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/time/slots" @@ -229,7 +229,7 @@ func (v *validator) WaitForSync(ctx context.Context) error { func (v *validator) SlasherReady(ctx context.Context) error { ctx, span := trace.StartSpan(ctx, "validator.SlasherReady") defer span.End() - if featureconfig.Get().SlasherProtection { + if features.Get().SlasherProtection { err := v.protector.Status() if err == nil { return nil @@ -392,7 +392,7 @@ func (v *validator) SlotDeadline(slot types.Slot) time.Time { // CheckDoppelGanger checks if the current actively provided keys have // any duplicates active in the network. func (v *validator) CheckDoppelGanger(ctx context.Context) error { - if !featureconfig.Get().EnableDoppelGanger { + if !features.Get().EnableDoppelGanger { return nil } pubkeys, err := v.keyManager.FetchValidatingPublicKeys(ctx) diff --git a/validator/client/validator_test.go b/validator/client/validator_test.go index eeaf6c3d75..9f8711bfe5 100644 --- a/validator/client/validator_test.go +++ b/validator/client/validator_test.go @@ -12,12 +12,12 @@ import ( "github.com/golang/mock/gomock" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/config/features" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" validatorpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/mock" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil" @@ -1049,9 +1049,9 @@ func (m *doppelGangerRequestMatcher) String() string { func TestValidator_CheckDoppelGanger(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() - flgs := featureconfig.Get() + flgs := features.Get() flgs.EnableDoppelGanger = true - reset := featureconfig.InitWithReset(flgs) + reset := features.InitWithReset(flgs) defer reset() tests := []struct { name string diff --git a/validator/db/kv/BUILD.bazel b/validator/db/kv/BUILD.bazel index a4f352816c..d203b512be 100644 --- a/validator/db/kv/BUILD.bazel +++ b/validator/db/kv/BUILD.bazel @@ -22,13 +22,13 @@ go_library( visibility = ["//validator:__subpackages__"], deps = [ "//beacon-chain/core:go_default_library", + "//config/features:go_default_library", "//monitoring/progress:go_default_library", "//monitoring/tracing:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/abool:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/params:go_default_library", "//shared/slashutil:go_default_library", diff --git a/validator/db/kv/db.go b/validator/db/kv/db.go index f4acf42808..d22e712ebe 100644 --- a/validator/db/kv/db.go +++ b/validator/db/kv/db.go @@ -10,9 +10,9 @@ import ( "github.com/pkg/errors" "github.com/prometheus/client_golang/prometheus" prombolt "github.com/prysmaticlabs/prombbolt" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/abool" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/shared/params" bolt "go.etcd.io/bbolt" @@ -162,7 +162,7 @@ func NewKVStore(ctx context.Context, dirPath string, config *Config) (*Store, er } } - if featureconfig.Get().EnableSlashingProtectionPruning { + if features.Get().EnableSlashingProtectionPruning { // Prune attesting records older than the current weak subjectivity period. if err := kv.PruneAttestations(ctx); err != nil { return nil, errors.Wrap(err, "could not prune old attestations from DB") diff --git a/validator/keymanager/imported/BUILD.bazel b/validator/keymanager/imported/BUILD.bazel index cfbae9827e..5a9a231955 100644 --- a/validator/keymanager/imported/BUILD.bazel +++ b/validator/keymanager/imported/BUILD.bazel @@ -17,12 +17,12 @@ go_library( "//validator:__subpackages__", ], deps = [ + "//config/features:go_default_library", "//proto/prysm/v1alpha1/validator-client:go_default_library", "//shared/asyncutil:go_default_library", "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/interop:go_default_library", "//shared/petnames:go_default_library", diff --git a/validator/keymanager/imported/refresh.go b/validator/keymanager/imported/refresh.go index 55115fc7d8..c1ffee0ec7 100644 --- a/validator/keymanager/imported/refresh.go +++ b/validator/keymanager/imported/refresh.go @@ -8,10 +8,10 @@ import ( "github.com/fsnotify/fsnotify" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/shared/asyncutil" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/validator/keymanager" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" @@ -22,7 +22,7 @@ import ( // library to listen for file-system changes and debounces these events to // ensure we can handle thousands of events fired in a short time-span. func (km *Keymanager) listenForAccountChanges(ctx context.Context) { - debounceFileChangesInterval := featureconfig.Get().KeystoreImportDebounceInterval + debounceFileChangesInterval := features.Get().KeystoreImportDebounceInterval accountsFilePath := filepath.Join(km.wallet.AccountsDir(), AccountsPath, AccountsKeystoreFileName) if !fileutil.FileExists(accountsFilePath) { return diff --git a/validator/node/BUILD.bazel b/validator/node/BUILD.bazel index 53c4b1d90b..72efeec93d 100644 --- a/validator/node/BUILD.bazel +++ b/validator/node/BUILD.bazel @@ -29,6 +29,7 @@ go_library( ], deps = [ "//cmd/validator/flags:go_default_library", + "//config/features:go_default_library", "//monitoring/backup:go_default_library", "//monitoring/prometheus:go_default_library", "//monitoring/tracing:go_default_library", @@ -38,7 +39,6 @@ go_library( "//shared/cmd:go_default_library", "//shared/debug:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/gateway:go_default_library", "//shared/params:go_default_library", diff --git a/validator/node/node.go b/validator/node/node.go index 542de66118..a92276c147 100644 --- a/validator/node/node.go +++ b/validator/node/node.go @@ -17,6 +17,7 @@ import ( gwruntime "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/cmd/validator/flags" + "github.com/prysmaticlabs/prysm/config/features" "github.com/prysmaticlabs/prysm/monitoring/backup" "github.com/prysmaticlabs/prysm/monitoring/prometheus" tracing2 "github.com/prysmaticlabs/prysm/monitoring/tracing" @@ -26,7 +27,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/cmd" "github.com/prysmaticlabs/prysm/shared/debug" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/shared/gateway" "github.com/prysmaticlabs/prysm/shared/params" @@ -95,7 +95,7 @@ func NewValidatorClient(cliCtx *cli.Context) (*ValidatorClient, error) { stop: make(chan struct{}), } - featureconfig.ConfigureValidator(cliCtx) + features.ConfigureValidator(cliCtx) cmd.ConfigureValidator(cliCtx) if cliCtx.IsSet(cmd.ChainConfigFileFlag.Name) { @@ -251,7 +251,7 @@ func (c *ValidatorClient) initializeFromCLI(cliCtx *cli.Context) error { return err } } - if featureconfig.Get().SlasherProtection { + if features.Get().SlasherProtection { if err := c.registerSlasherService(); err != nil { return err } @@ -340,7 +340,7 @@ func (c *ValidatorClient) initializeForWeb(cliCtx *cli.Context) error { return err } } - if featureconfig.Get().SlasherProtection { + if features.Get().SlasherProtection { if err := c.registerSlasherService(); err != nil { return err } diff --git a/validator/rpc/BUILD.bazel b/validator/rpc/BUILD.bazel index 46e40cda5e..dfe4a9e758 100644 --- a/validator/rpc/BUILD.bazel +++ b/validator/rpc/BUILD.bazel @@ -16,13 +16,13 @@ go_library( importpath = "github.com/prysmaticlabs/prysm/validator/rpc", visibility = ["//validator:__subpackages__"], deps = [ + "//config/features:go_default_library", "//monitoring/tracing:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/validator-client:go_default_library", "//shared/bls:go_default_library", "//shared/cmd:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/grpcutils:go_default_library", "//shared/logutil:go_default_library", @@ -79,12 +79,12 @@ go_test( embed = [":go_default_library"], deps = [ "//cmd/validator/flags:go_default_library", + "//config/features:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/validator-client:go_default_library", "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/featureconfig:go_default_library", "//shared/fileutil:go_default_library", "//shared/mock:go_default_library", "//shared/testutil/assert:go_default_library", diff --git a/validator/rpc/wallet.go b/validator/rpc/wallet.go index 045818af2e..f043752a87 100644 --- a/validator/rpc/wallet.go +++ b/validator/rpc/wallet.go @@ -10,8 +10,8 @@ import ( "github.com/golang/protobuf/ptypes/empty" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/config/features" pb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/shared/promptutil" "github.com/prysmaticlabs/prysm/shared/rand" @@ -327,7 +327,7 @@ func (s *Server) initializeWallet(ctx context.Context, cfg *wallet.Config) error } func writeWalletPasswordToDisk(walletDir, password string) error { - if !featureconfig.Get().WriteWalletPasswordOnWebOnboarding { + if !features.Get().WriteWalletPasswordOnWebOnboarding { return nil } passwordFilePath := filepath.Join(walletDir, wallet.DefaultWalletPasswordFile) diff --git a/validator/rpc/wallet_test.go b/validator/rpc/wallet_test.go index dd272ba736..6008a85d30 100644 --- a/validator/rpc/wallet_test.go +++ b/validator/rpc/wallet_test.go @@ -10,10 +10,10 @@ import ( "github.com/golang/protobuf/ptypes/empty" "github.com/google/uuid" + "github.com/prysmaticlabs/prysm/config/features" pb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/featureconfig" "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -135,12 +135,12 @@ func TestServer_RecoverWallet_Derived(t *testing.T) { require.ErrorContains(t, "create wallet not supported through web", err, "Create wallet for DERIVED or REMOTE types not supported through web, either import keystore or recover") // This defer will be the last to execute in this func. - resetCfgFalse := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfgFalse := features.InitWithReset(&features.Flags{ WriteWalletPasswordOnWebOnboarding: false, }) defer resetCfgFalse() - resetCfgTrue := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfgTrue := features.InitWithReset(&features.Flags{ WriteWalletPasswordOnWebOnboarding: true, }) defer resetCfgTrue() @@ -325,7 +325,7 @@ func TestServer_ImportKeystores_OK(t *testing.T) { func Test_writeWalletPasswordToDisk(t *testing.T) { walletDir := setupWalletDir(t) - resetCfg := featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg := features.InitWithReset(&features.Flags{ WriteWalletPasswordOnWebOnboarding: false, }) defer resetCfg() @@ -335,7 +335,7 @@ func Test_writeWalletPasswordToDisk(t *testing.T) { // Expected a silent failure if the feature flag is not enabled. passwordFilePath := filepath.Join(walletDir, wallet.DefaultWalletPasswordFile) assert.Equal(t, false, fileutil.FileExists(passwordFilePath)) - resetCfg = featureconfig.InitWithReset(&featureconfig.Flags{ + resetCfg = features.InitWithReset(&features.Flags{ WriteWalletPasswordOnWebOnboarding: true, }) defer resetCfg()