github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/p2p/gossip_scoring_params_test.go (about) 1 package p2p 2 3 import ( 4 "context" 5 "testing" 6 7 pubsub "github.com/libp2p/go-libp2p-pubsub" 8 dbutil "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" 9 pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1" 10 ethpb "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1" 11 "github.com/prysmaticlabs/prysm/shared/params" 12 "github.com/prysmaticlabs/prysm/shared/testutil" 13 "github.com/prysmaticlabs/prysm/shared/testutil/assert" 14 "github.com/prysmaticlabs/prysm/shared/testutil/require" 15 ) 16 17 func TestCorrect_ActiveValidatorsCount(t *testing.T) { 18 params.SetupTestConfigCleanup(t) 19 cfg := params.MainnetConfig() 20 cfg.ConfigName = "test" 21 22 params.OverrideBeaconConfig(cfg) 23 24 db := dbutil.SetupDB(t) 25 s := &Service{ 26 ctx: context.Background(), 27 cfg: &Config{DB: db}, 28 } 29 bState, err := testutil.NewBeaconState(func(state *pb.BeaconState) error { 30 validators := make([]*ethpb.Validator, params.BeaconConfig().MinGenesisActiveValidatorCount) 31 for i := 0; i < len(validators); i++ { 32 validators[i] = ðpb.Validator{ 33 PublicKey: make([]byte, 48), 34 WithdrawalCredentials: make([]byte, 32), 35 ExitEpoch: params.BeaconConfig().FarFutureEpoch, 36 Slashed: false, 37 } 38 } 39 state.Validators = validators 40 return nil 41 }) 42 require.NoError(t, err) 43 require.NoError(t, db.SaveGenesisData(s.ctx, bState)) 44 45 vals, err := s.retrieveActiveValidators() 46 assert.NoError(t, err, "genesis state not retrieved") 47 assert.Equal(t, int(params.BeaconConfig().MinGenesisActiveValidatorCount), int(vals), "mainnet genesis active count isn't accurate") 48 for i := 0; i < 100; i++ { 49 require.NoError(t, bState.AppendValidator(ðpb.Validator{ 50 PublicKey: make([]byte, 48), 51 WithdrawalCredentials: make([]byte, 32), 52 ExitEpoch: params.BeaconConfig().FarFutureEpoch, 53 Slashed: false, 54 })) 55 } 56 require.NoError(t, bState.SetSlot(10000)) 57 require.NoError(t, db.SaveState(s.ctx, bState, [32]byte{'a'})) 58 // Reset count 59 s.activeValidatorCount = 0 60 61 // Retrieve last archived state. 62 vals, err = s.retrieveActiveValidators() 63 assert.NoError(t, err, "genesis state not retrieved") 64 assert.Equal(t, int(params.BeaconConfig().MinGenesisActiveValidatorCount)+100, int(vals), "mainnet genesis active count isn't accurate") 65 } 66 67 func TestLoggingParameters(t *testing.T) { 68 logGossipParameters("testing", nil) 69 logGossipParameters("testing", &pubsub.TopicScoreParams{}) 70 // Test out actual gossip parameters. 71 logGossipParameters("testing", defaultBlockTopicParams()) 72 p, err := defaultAggregateSubnetTopicParams(10000) 73 assert.NoError(t, err) 74 logGossipParameters("testing", p) 75 p, err = defaultAggregateTopicParams(10000) 76 assert.NoError(t, err) 77 logGossipParameters("testing", p) 78 logGossipParameters("testing", defaultAttesterSlashingTopicParams()) 79 logGossipParameters("testing", defaultProposerSlashingTopicParams()) 80 logGossipParameters("testing", defaultVoluntaryExitTopicParams()) 81 }