Originally XoloX intended to use CRCs, but indexing took a long time and people complained, plus other clients would support it, so it was put on the back burner... now XoloX (1.12 anyway) uses your search query and file size to determine an "exact match" ... this has it's good and extremely bad points... but overall works OK in most situations.
Hopefully the devs have been reading
The GDF and have been working on v.6 modifications to the protocall like:
Full File Hashes...
Small (64 or 128 K), uniform-length segments when swarming with each new host trying to get the earliest avaliable free spot; segments that get dropped remotely can be dropped alltogether with little setback...
Keep Alives: When one block-range is done, request the next free block-range from the same host without dropping the connection.
etc, etc.