The so-called “hash value” makes it possible to unambiguously identify files and file fragments (parts) in the eDonkey2000 network with an utmost probability. The eDonkey2000 network’s hash values can always be represented as 32 hexadecimal digits (16 bytes). In practice, the residual risk that unambiguous identification is not successful is irrelevant.
The advantage of using hash values is that the management of short codes of uniform length is very efficient and reconciliation of two hash values requires only a minimum of compute time. It is important to point out that, in the context of the eDonkey2000 network, hash values (file hash values, part hash values and user hash values) are being calculated by using specific algorithms which makes it possible to recalculate hash values at any time.
1. File hash value(s)
Each file which can be downloaded by a user in the eDonkey2000 network has a so called file hash value assigned to it. With the file hash value, it is possible to verify the identity of files even if different filenames were given to them: the algorithm to calculate the file hash value does not consider the filename, it only uses the part hash values as input (see next paragraph).
2. Part hash value(s)
In addition to the file hash value, the part hash value is of vital importance. The part hash value is a hash value which is calculated for each part of a file. Primarily, it is used to verify the identity of two parts by comparing their part hash values. Since a part hash value can be seen as some sort of “checksum”, it is also possible to verify e.g. whether a part transfer from one computer to another has been successful, i.e. whether the part is fully and perfectly available on the receiving computer. The file hash value can be calculated from all part hash values of a file. If a file only consists of a single part, the part hash value is identical to the file hash value.
