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] = &ethpb.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(&ethpb.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  }