mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-08 18:51:19 +00:00
fix: update epoch + 1 (#12667)
This commit is contained in:
parent
337c254161
commit
183e72b194
@ -303,7 +303,7 @@ func UpdateCommitteeCache(ctx context.Context, state state.ReadOnlyBeaconState,
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if committeeCache.HasEntry(string(seed[:])) {
|
if committeeCache.HasEntry(string(seed[:])) {
|
||||||
return nil
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
shuffledIndices, err := ShuffledIndices(state, e)
|
shuffledIndices, err := ShuffledIndices(state, e)
|
||||||
|
@ -423,6 +423,41 @@ func TestUpdateCommitteeCache_CanUpdate(t *testing.T) {
|
|||||||
assert.Equal(t, params.BeaconConfig().TargetCommitteeSize, uint64(len(indices)), "Did not save correct indices lengths")
|
assert.Equal(t, params.BeaconConfig().TargetCommitteeSize, uint64(len(indices)), "Did not save correct indices lengths")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdateCommitteeCache_CanUpdateAcrossEpochs(t *testing.T) {
|
||||||
|
ClearCache()
|
||||||
|
defer ClearCache()
|
||||||
|
validatorCount := params.BeaconConfig().MinGenesisActiveValidatorCount
|
||||||
|
validators := make([]*ethpb.Validator, validatorCount)
|
||||||
|
indices := make([]primitives.ValidatorIndex, validatorCount)
|
||||||
|
for i := primitives.ValidatorIndex(0); uint64(i) < validatorCount; i++ {
|
||||||
|
validators[i] = ðpb.Validator{
|
||||||
|
ExitEpoch: params.BeaconConfig().FarFutureEpoch,
|
||||||
|
EffectiveBalance: 1,
|
||||||
|
}
|
||||||
|
indices[i] = i
|
||||||
|
}
|
||||||
|
state, err := state_native.InitializeFromProtoPhase0(ðpb.BeaconState{
|
||||||
|
Validators: validators,
|
||||||
|
RandaoMixes: make([][]byte, params.BeaconConfig().EpochsPerHistoricalVector),
|
||||||
|
})
|
||||||
|
require.NoError(t, err)
|
||||||
|
e := time.CurrentEpoch(state)
|
||||||
|
require.NoError(t, UpdateCommitteeCache(context.Background(), state, e))
|
||||||
|
|
||||||
|
seed, err := Seed(state, e, params.BeaconConfig().DomainBeaconAttester)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, true, committeeCache.HasEntry(string(seed[:])))
|
||||||
|
|
||||||
|
seed, err = Seed(state, e+1, params.BeaconConfig().DomainBeaconAttester)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, true, committeeCache.HasEntry(string(seed[:])))
|
||||||
|
|
||||||
|
require.NoError(t, UpdateCommitteeCache(context.Background(), state, e+1))
|
||||||
|
seed, err = Seed(state, e+2, params.BeaconConfig().DomainBeaconAttester)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, true, committeeCache.HasEntry(string(seed[:])))
|
||||||
|
}
|
||||||
|
|
||||||
func BenchmarkComputeCommittee300000_WithPreCache(b *testing.B) {
|
func BenchmarkComputeCommittee300000_WithPreCache(b *testing.B) {
|
||||||
validators := make([]*ethpb.Validator, 300000)
|
validators := make([]*ethpb.Validator, 300000)
|
||||||
for i := 0; i < len(validators); i++ {
|
for i := 0; i < len(validators); i++ {
|
||||||
|
Loading…
Reference in New Issue
Block a user