code: func (s *GlobalStore) Delete(addr common.Address, key []byte) error {
  	s.mu.Lock()
  	defer s.mu.Unlock()
  
  	if i, has := s.nodeKeyIndex(addr, key); has {
  		s.nodeKeys[addr] = append(s.nodeKeys[addr][:i], s.nodeKeys[addr][i+1:]...)
  	}
  
  	k := string(key)
  	if i, on := s.keyNodeIndex(key, addr); on {
  		s.keyNodes[k] = append(s.keyNodes[k][:i], s.keyNodes[k][i+1:]...)
  	}
  
  	if len(s.nodeKeys[addr]) == 0 {
  		if i, found := s.nodeIndex(addr); found {
  			s.nodes = append(s.nodes[:i], s.nodes[i+1:]...)
  		}
  	}
  
  	if len(s.keyNodes[k]) == 0 {
  		if i, found := s.keyIndex(key); found {
  			s.keys = append(s.keys[:i], s.keys[i+1:]...)
  		}
  	}
  	return nil
  }
docs: // Delete removes the chunk data for node with address addr.