code: func (s *GlobalStore) Delete(addr common.Address, key []byte) error {
  	unlock, err := s.lock(addr, key)
  	if err != nil {
  		return err
  	}
  	defer unlock()
  
  	batch := new(leveldb.Batch)
  	batch.Delete(indexForHashesPerNode(addr, key))
  	batch.Delete(indexForNodesWithHash(key, addr))
  
  	// check if this node contains any keys, and if not
  	// remove it from the
  	x := indexForHashesPerNodePrefix(addr)
  	if k, _ := s.db.Get(x, nil); !bytes.HasPrefix(k, x) {
  		batch.Delete(indexForNodes(addr))
  	}
  
  	x = indexForNodesWithHashPrefix(key)
  	if k, _ := s.db.Get(x, nil); !bytes.HasPrefix(k, x) {
  		batch.Delete(indexForHashes(key))
  	}
  	return s.db.Write(batch, nil)
  }
docs: // Delete removes the chunk reference to node with address addr.