Awesome. That's a lot like what I was imagining - keeping a library of known hashes and chunks of shared files in the hopes that, at least occasionally, having those chunks pays off when transferring future files. You could even use OS files and offsets within them that you could be sure were present on the client side. Stuff like that.