code: func (db *Database) verifyIntegrity() {
  	// Iterate over all the cached nodes and accumulate them into a set
  	reachable := map[common.Hash]struct{}{{}: {}}
  
  	for child := range db.dirties[common.Hash{}].children {
  		db.accumulate(child, reachable)
  	}
  	// Find any unreachable but cached nodes
  	var unreachable []string
  	for hash, node := range db.dirties {
  		if _, ok := reachable[hash]; !ok {
  			unreachable = append(unreachable, fmt.Sprintf("%x: {Node: %v, Parents: %d, Prev: %x, Next: %x}",
  				hash, node.node, node.parents, node.flushPrev, node.flushNext))
  		}
  	}
  	if len(unreachable) != 0 {
  		panic(fmt.Sprintf("trie cache memory leak: %v", unreachable))
  	}
  }
docs: // verifyIntegrity is a debug method to iterate over the entire trie stored in
  // memory and check whether every node is reachable from the meta root. The goal
  // is to find any errors that might cause memory leaks and or trie nodes to go
  // missing.
  //
  // This method is extremely CPU and memory intensive, only use when must.