code: func (self *StateDB) Reset(root common.Hash) error {
  	tr, err := self.db.OpenTrie(root)
  	if err != nil {
  		return err
  	}
  	self.trie = tr
  	self.stateObjects = make(map[common.Address]*stateObject)
  	self.stateObjectsDirty = make(map[common.Address]struct{})
  	self.thash = common.Hash{}
  	self.bhash = common.Hash{}
  	self.txIndex = 0
  	self.logs = make(map[common.Hash][]*types.Log)
  	self.logSize = 0
  	self.preimages = make(map[common.Hash][]byte)
  	self.clearJournalAndRefund()
  	return nil
  }
docs: // Reset clears out all ephemeral state objects from the state db, but keeps
  // the underlying state trie to avoid reloading data for the next operations.