Revert "Update Slices More Efficiently" (#4790)

* Revert "Update Slices More Efficiently (#4789)"

This reverts commit 669e1ea787.
This commit is contained in:
Nishant Das
2020-02-08 00:58:36 +08:00
committed by GitHub
parent 669e1ea787
commit f16a71f178
5 changed files with 5 additions and 32 deletions

View File

@@ -22,12 +22,6 @@ type ChainInfoFetcher interface {
FinalizationFetcher
}
// ChainCleaner describes an interface to clean obsolete data
// stored in the blockchain service.
type ChainCleaner interface {
ClearCachedStates()
}
// TimeFetcher retrieves the Eth2 data that's related to time.
type TimeFetcher interface {
GenesisTime() time.Time

View File

@@ -269,12 +269,6 @@ func (s *Service) Status() error {
return nil
}
// ClearCachedStates removes all stored caches states. This is done after the node
// is synced.
func (s *Service) ClearCachedStates() {
s.initSyncState = map[[32]byte]*stateTrie.BeaconState{}
}
// This gets called to update canonical root mapping.
func (s *Service) saveHead(ctx context.Context, signed *ethpb.SignedBeaconBlock, r [32]byte) error {
s.headLock.Lock()

View File

@@ -231,8 +231,3 @@ func (ms *ChainService) Participation(epoch uint64) *precompute.Balance {
func (ms *ChainService) IsValidAttestation(ctx context.Context, att *ethpb.Attestation) bool {
return ms.ValidAttestation
}
// ClearCachedStates is a no-op.
func (ms *ChainService) ClearCachedStates() {
// no-op
}

View File

@@ -106,9 +106,7 @@ func (b *BeaconState) UpdateBlockRootAtIndex(idx uint64, blockRoot [32]byte) err
r := b.state.BlockRoots
if ref := b.sharedFieldReferences[blockRoots]; ref.refs > 1 {
// Copy on write since this is a shared array.
newRoots := make([][]byte, len(r))
copy(newRoots, r)
r = newRoots
r = b.BlockRoots()
ref.refs--
b.sharedFieldReferences[blockRoots] = &reference{refs: 1}
@@ -152,9 +150,7 @@ func (b *BeaconState) UpdateStateRootAtIndex(idx uint64, stateRoot [32]byte) err
r := b.state.StateRoots
if ref := b.sharedFieldReferences[stateRoots]; ref.refs > 1 {
// Perform a copy since this is a shared reference and we don't want to mutate others.
newRoots := make([][]byte, len(r))
copy(newRoots, r)
r = newRoots
r = b.StateRoots()
ref.refs--
b.sharedFieldReferences[stateRoots] = &reference{refs: 1}
@@ -293,9 +289,8 @@ func (b *BeaconState) UpdateValidatorAtIndex(idx uint64, val *ethpb.Validator) e
v := b.state.Validators
if ref := b.sharedFieldReferences[validators]; ref.refs > 1 {
// Perform a copy since this is a shared reference and we don't want to mutate others.
newVals := make([]*ethpb.Validator, len(v))
copy(newVals, v)
v = newVals
v = b.Validators()
ref.refs--
b.sharedFieldReferences[validators] = &reference{refs: 1}
}
@@ -386,9 +381,7 @@ func (b *BeaconState) UpdateRandaoMixesAtIndex(val []byte, idx uint64) error {
b.lock.RLock()
mixes := b.state.RandaoMixes
if refs := b.sharedFieldReferences[randaoMixes].refs; refs > 1 {
newSlice := make([][]byte, len(mixes))
copy(newSlice, mixes)
mixes = newSlice
mixes = b.RandaoMixes()
b.sharedFieldReferences[randaoMixes].refs--
b.sharedFieldReferences[randaoMixes] = &reference{refs: 1}
}

View File

@@ -25,7 +25,6 @@ var _ = shared.Service(&Service{})
type blockchainService interface {
blockchain.BlockReceiver
blockchain.HeadFetcher
blockchain.ChainCleaner
}
const (
@@ -130,7 +129,6 @@ func (s *Service) Start() {
}
log.Infof("Synced up to slot %d", s.chain.HeadSlot())
s.synced = true
s.chain.ClearCachedStates()
}
// Stop initial sync.
@@ -169,7 +167,6 @@ func (s *Service) Resync() error {
log = log.WithError(err)
}
log.WithField("slot", s.chain.HeadSlot()).Info("Resync attempt complete")
s.chain.ClearCachedStates()
return nil
}