mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 23:48:06 -05:00
* add and pass lcstore to sync service * validator for optimistic updates * validator for finality updates * subscribers * gossip scorings * tmp - add validation test * optimistic update validation tests * finality update validation tests * tests for subscribers * deps * changelog entry * play around with config cleanup * better logs * better logs 2 * better logs 3 * address comments * add comments
81 lines
2.9 KiB
Go
81 lines
2.9 KiB
Go
package p2p
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
dbutil "github.com/OffchainLabs/prysm/v6/beacon-chain/db/testing"
|
|
"github.com/OffchainLabs/prysm/v6/config/params"
|
|
ethpb "github.com/OffchainLabs/prysm/v6/proto/prysm/v1alpha1"
|
|
"github.com/OffchainLabs/prysm/v6/testing/assert"
|
|
"github.com/OffchainLabs/prysm/v6/testing/require"
|
|
"github.com/OffchainLabs/prysm/v6/testing/util"
|
|
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
|
)
|
|
|
|
func TestCorrect_ActiveValidatorsCount(t *testing.T) {
|
|
params.SetupTestConfigCleanup(t)
|
|
cfg := params.MainnetConfig()
|
|
cfg.ConfigName = "test"
|
|
|
|
params.OverrideBeaconConfig(cfg)
|
|
|
|
db := dbutil.SetupDB(t)
|
|
s := &Service{
|
|
ctx: context.Background(),
|
|
cfg: &Config{DB: db},
|
|
}
|
|
bState, err := util.NewBeaconState(func(state *ethpb.BeaconState) error {
|
|
validators := make([]*ethpb.Validator, params.BeaconConfig().MinGenesisActiveValidatorCount)
|
|
for i := 0; i < len(validators); i++ {
|
|
validators[i] = ðpb.Validator{
|
|
PublicKey: make([]byte, 48),
|
|
WithdrawalCredentials: make([]byte, 32),
|
|
ExitEpoch: params.BeaconConfig().FarFutureEpoch,
|
|
Slashed: false,
|
|
}
|
|
}
|
|
state.Validators = validators
|
|
return nil
|
|
})
|
|
require.NoError(t, err)
|
|
require.NoError(t, db.SaveGenesisData(s.ctx, bState))
|
|
|
|
vals, err := s.retrieveActiveValidators()
|
|
assert.NoError(t, err, "genesis state not retrieved")
|
|
assert.Equal(t, int(params.BeaconConfig().MinGenesisActiveValidatorCount), int(vals), "mainnet genesis active count isn't accurate")
|
|
for i := 0; i < 100; i++ {
|
|
require.NoError(t, bState.AppendValidator(ðpb.Validator{
|
|
PublicKey: make([]byte, 48),
|
|
WithdrawalCredentials: make([]byte, 32),
|
|
ExitEpoch: params.BeaconConfig().FarFutureEpoch,
|
|
Slashed: false,
|
|
}))
|
|
}
|
|
require.NoError(t, bState.SetSlot(10000))
|
|
require.NoError(t, db.SaveState(s.ctx, bState, [32]byte{'a'}))
|
|
// Reset count
|
|
s.activeValidatorCount = 0
|
|
|
|
// Retrieve last archived state.
|
|
vals, err = s.retrieveActiveValidators()
|
|
assert.NoError(t, err, "genesis state not retrieved")
|
|
assert.Equal(t, int(params.BeaconConfig().MinGenesisActiveValidatorCount)+100, int(vals), "mainnet genesis active count isn't accurate")
|
|
}
|
|
|
|
func TestLoggingParameters(_ *testing.T) {
|
|
logGossipParameters("testing", nil)
|
|
logGossipParameters("testing", &pubsub.TopicScoreParams{})
|
|
// Test out actual gossip parameters.
|
|
logGossipParameters("testing", defaultBlockTopicParams())
|
|
p := defaultAggregateSubnetTopicParams(10000)
|
|
logGossipParameters("testing", p)
|
|
p = defaultAggregateTopicParams(10000)
|
|
logGossipParameters("testing", p)
|
|
logGossipParameters("testing", defaultAttesterSlashingTopicParams())
|
|
logGossipParameters("testing", defaultProposerSlashingTopicParams())
|
|
logGossipParameters("testing", defaultVoluntaryExitTopicParams())
|
|
logGossipParameters("testing", defaultLightClientOptimisticUpdateTopicParams())
|
|
logGossipParameters("testing", defaultLightClientFinalityUpdateTopicParams())
|
|
}
|