ed2k URI scheme
The ed2k URI scheme is a type of hyperlink, which is used similarly to refer as magnet links to files within the eDonkey2000 or Kademlia file sharing network.
Many programs, such as eMule, MLDonkey and the original eDonkey2000 client of MetaMachine, can be used to find files on the eDonkey network, upload and download. The files are available on the computers of other network participants available, then uploading it to interested parties. Files are uniquely identified by their eD2k hash. Since the hash sum remains the same, even if a file is renamed, this identification is more reliable than, for example, an identification by name.
ED2k Links were among the first content links for files in P2P networks. Nowadays, however, more modern, because it is not limited to a hash type and therefore universal magnet links are mostly used. These may include, for example, SHA -1 and MD5 hash, which makes it possible to locate the same file in other networks, such Gnutella2.
Like other URIs also programs in the operating system and / or web browser can register to be automatically called when the user clicks on such a link and download the linked file.
There are two main types of eD2k links. If the first keyword file referenced by a file, it is, however server, the link contains the reference to the IP of a eDonkey2000 server. Newer versions also support eMule other keywords, such as search for automated searches.
Ed2k :/ / | file | Shareaza_184.108.40.206_Win32.exe | 6653348 | 7fb2bc10e0422a0e4f7e8613bd522c89 | / Additionally, solid sources for the file can be specified by appending the Sources Tags:
Ed2k://|file|Shareaza_220.127.116.11_Win32.exe|6653348|7fb2bc10e0422a0e4f7e8613bd522c89|/|sources,252.191.193.62:6443|/ It is also possible for the AICH hash by appending a token in the form | h = H52BHJ5K2L90WXDPQQDH2RJDDAKRUWST | ( which in this example corresponds H52BHJ5K2L90WXDPQQDH2RJDDAKRUWST the AICH hash ) specify how it does for example when generating eMule ed2k URIs.
A server -Link contains the IP address of an eDonkey2000 server that is added to the cache of the eDonkey client used when you use the links, provided that supports it.
A typical server ed2k link follows the following scheme:
Ed2k :/ / | server | IP: PORT | / IP → eD2k server IP PORT → the port of the ED2K server on which this eD2k connections accepted
Ed2k :/ / | server | 18.104.22.168 | 4242 | / search
The search URI type was introduced with eMule 0.50a. It consists of the keyword search and a search term:
Ed2k :/ / | search | Keyword | / The first implementation of a browser extension that makes use of this link scheme was, for Mozilla Firefox.
Ed2k hash algorithm
The eD2k hash, which is used in the eDonkey network and therefore also in ed2k- links to the file identification and verification, the MD4 hash of a MD4 Hashliste. It is generated as follows:
In the first step the file into parts (called chunks ) of 9500 KiB ( 9728000 bytes, ie approximately 9.28 MB ) divided, with the last part covers the rest and therefore is less than 9,500 KiB. In the case that the file size is an exact multiple of 9,500 KiB, the remaining piece has a size of 0 bytes. In the second step, a 128-bit checksum is calculated MD4 of each piece. Is there more than one chunk, then all these hashsum to chain together and from the resulting string, the final hash is with renewed using the MD4 hash function calculated. If the file but less than 9,500 KiB, the hash of the single chunks of the file is used without further modifications as file hash.
As important therefore be emphasized that the eD2k hash sum in most cases is not identical with the simple MD4 hash. Also, this means that simply can not be verified whether a part of a chunk hash list to a file, because the file hash can be calculated from the individual chunk hashes. The biggest disadvantage of this Hashsystems is that Einzelchunks have 9,500 KiB in size, so only relatively large parts of the file can be verified after downloading, making necessary in case of error the re-download 9.28 MB of data. This made the development of sub- chunk verification systems such as ICH and AICH, necessary.