mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-24 12:27:18 +00:00
Revert "Add Fast Copy of Trie" (#5228)
* Revert "new fixes (#5221)"
This reverts commit 4118fa5242
.
This commit is contained in:
parent
1a0a399bed
commit
33f6c22607
@ -127,17 +127,17 @@ func (s *Service) saveHeadNoDB(ctx context.Context, b *ethpb.SignedBeaconBlock,
|
||||
return errors.Wrap(err, "could not retrieve head state in DB")
|
||||
}
|
||||
} else {
|
||||
s.initSyncStateLock.RLock()
|
||||
cachedHeadState, ok := s.initSyncState[r]
|
||||
if ok {
|
||||
headState = cachedHeadState
|
||||
headState, err = s.beaconDB.State(ctx, r)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not retrieve head state in DB")
|
||||
}
|
||||
s.initSyncStateLock.RUnlock()
|
||||
if headState == nil {
|
||||
headState, err = s.beaconDB.State(ctx, r)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not retrieve head state in DB")
|
||||
s.initSyncStateLock.RLock()
|
||||
cachedHeadState, ok := s.initSyncState[r]
|
||||
if ok {
|
||||
headState = cachedHeadState
|
||||
}
|
||||
s.initSyncStateLock.RUnlock()
|
||||
}
|
||||
}
|
||||
if headState == nil {
|
||||
|
@ -229,7 +229,7 @@ func (s *Service) onBlockInitialSyncStateTransition(ctx context.Context, signed
|
||||
} else {
|
||||
s.initSyncStateLock.Lock()
|
||||
defer s.initSyncStateLock.Unlock()
|
||||
s.initSyncState[root] = postState.FastCopy()
|
||||
s.initSyncState[root] = postState.Copy()
|
||||
s.filterBoundaryCandidates(ctx, root, postState)
|
||||
}
|
||||
|
||||
|
@ -99,7 +99,7 @@ func (s *Service) verifyBlkPreState(ctx context.Context, b *ethpb.BeaconBlock) (
|
||||
}
|
||||
return preState, nil // No copy needed from newly hydrated DB object.
|
||||
}
|
||||
return preState.FastCopy(), nil
|
||||
return preState.Copy(), nil
|
||||
}
|
||||
|
||||
// verifyBlkDescendant validates input block root is a descendant of the
|
||||
|
@ -177,29 +177,6 @@ func (b *BeaconState) Copy() *BeaconState {
|
||||
return dst
|
||||
}
|
||||
|
||||
// FastCopy is used to copy all the field trie contents and
|
||||
// empty out the references to it in the source state. This
|
||||
// is used when we have a state that we know will most
|
||||
// likely not be used anytime in the future.
|
||||
func (b *BeaconState) FastCopy() *BeaconState {
|
||||
newState := b.Copy()
|
||||
for fldIdx, fieldTrie := range b.stateFieldLeaves {
|
||||
if fieldTrie.reference != nil {
|
||||
fieldTrie.Lock()
|
||||
fieldTrie.MinusRef()
|
||||
fieldTrie.Unlock()
|
||||
b.rebuildTrie[fldIdx] = true
|
||||
b.dirtyFields[fldIdx] = true
|
||||
b.stateFieldLeaves[fldIdx] = &FieldTrie{
|
||||
field: fldIdx,
|
||||
reference: &reference{1},
|
||||
Mutex: new(sync.Mutex),
|
||||
}
|
||||
}
|
||||
}
|
||||
return newState
|
||||
}
|
||||
|
||||
// HashTreeRoot of the beacon state retrieves the Merkle root of the trie
|
||||
// representation of the beacon state based on the eth2 Simple Serialize specification.
|
||||
func (b *BeaconState) HashTreeRoot(ctx context.Context) ([32]byte, error) {
|
||||
|
Loading…
Reference in New Issue
Block a user