hash-based update checking