- Ed2k URI scheme
In computing, ed2k links are
hyperlink s used to denote files stored within the eDonkey P2P network. Many programs, such aseDonkey2000 ,eMule , Hybrid, MLDonkey, and others using the eDonkey file sharing protocol, may be used to manage files stored in the the file sharing network.ed2k links allow the file to be identified in a browser and transferred to eMule, eDonkey2000 or other compatible software. This linking feature was one of the first to be introduced in
peer to peer file sharing. Now Magnet links serves a similar role but is not limited to the ed2k hash but can be other hashes such as SHA orMD5 etc.These hash codes are primarily used to ensure that identical files have the same
unique identifier on the network, even if held at different locations or given different names. This is done by using ahash function on the file to calculate its checksum.Like other URI protocols web browsers can be configured to automatically handle ed2k URIs. After installing an ed2k client, the ed2k:// protocol is optionally registered so that clicking on it in the browser automatically starts the download.
File link format
The typical ed2k link also includes the
filename and the filesize. An example (a link to the 15MbPurist Edit trailer) is provided below:ed2k://|file|The_Two_Towers-The_Purist_Edit-Trailer.avi|14997504|965c013e991ee246d63d45ea71954c4d|/
The ed2k links can also include a reference to the IP address and port of the specific client that shares a file. This is done by adding a list of sources after the main part of the link:
ed2k://|file|The_Two_Towers-The_Purist_Edit-Trailer.avi|14997504|965c013e991ee246d63d45ea71954c4d|/|sources,202.89.123.6:4662|/
The "file" part indicates that this is a file link, as opposed to a server link.
On eMule, the link often contains also an AICH top hash |h=H52BRVWPBBTAED5NXQDH2RJDDAKRUWST| to help recover the file in case of corruption during file transfer.
ed2k hash algorithm
The ed2k hash function is a
MD4 root hash of an MD4hash list , and gives a different result than simply MD4:The file data is divided into full "chunks" of 9500
KiB (9728000 bytes or nearly 9.28 MB) plus a remainder chunk, and a separate 128-bit MD4 checksum is computed for each. If the file length is an exact multiple of 9500 KiB, the remainder zero size chunk is still used at the end of the hash list. The ed2k hash is computed by concatenating the chunks' MD4 checksums in order and hashing the result using MD4. Although, if the file is composed of a single non-full chunk, its MD4 hash is used with no further modifications. [emule source, method CKnownFile::CreateFromFile.]This method of hashing allows the recipient to verify that a hash list corresponds to the original ed2k file hash, without the need to have the data blocks.
It should be noted that what to do when a file ends on a full chunk is undefined. This means that the final hash of a file which is a multiple of 9728000 bytes in size may be computed one of two ways: using the existing MD4 chunk hashes, or using the existing MD4 hashes plus the MD4 hash of an all-zeros chunk. Some programs use one method or the other, and a few use both. So, two different ed2k hashes may be produced for the same file in different programs if the file is a multiple of 9728000 bytes in size.
Server links
A server link is a reference to an eDonkey2000 server; clicking on such a link typically adds it to the server list:
They have the following format:
"ed2k://|server|IP|PORT|/"
*IP -> IP of the server to connect to.
*PORT -> Port where the server is listening for incoming eD2k connectionsexample:
ed2k://|server|207.44.222.51|4242|/
References
External links
* [http://sharethefiles.com ShareTheFiles] Example of a large eD2k link indexing website.
* [http://forum.emule-project.net/index.php?showtopic=46944 emule forum guides] How to remove the ed2k link protocol association in windows.
* [http://www.amule.org/wiki/index.php/Ed2k_link aMule wiki: ed2k link] .
* [http://www.emule-project.net/home/perl/help.cgi?l=1&rm=show_topic&topic_id=422 emule project] Ed2k link formats supported by emule client.
* [http://ed2k-tools.sourceforge.net/ed2k_hash.shtml ED2K tools - ED2K_Hash] Tool to create ED2K hashes.
Wikimedia Foundation. 2010.