HOME

TheInfoList



OR:

eMule is a free
peer-to-peer file sharing Peer-to-peer file sharing is the distribution and sharing of digital media using peer-to-peer (P2P) networking technology. P2P file sharing allows users to access media files such as books, music, movies, and games using a P2P software program th ...
application for
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
. Started in May 2002 as an alternative to
eDonkey2000 eDonkey2000 (nicknamed "ed2k") was a peer-to-peer file sharing application developed by US company MetaMachine ( Jed McCaleb and Sam Yagan), using the Multisource File Transfer Protocol. It supported both the eDonkey2000 network and the Over ...
, eMule connects to both the
eDonkey network The eDonkey Network (also known as the eDonkey2000 network or eD2k) is a decentralized, mostly server-based, peer-to-peer file-sharing network created in 2000 by US developers Jed McCaleb and Sam Yagan that is best suited to share big files ...
and the
Kad network The Kad network is a peer-to-peer (P2P) network which implements the Kademlia P2P overlay protocol. The majority of users on the Kad Network are also connected to servers on the eDonkey network, and Kad Network clients typically query known node ...
. The distinguishing features of eMule are the direct exchange of sources between client nodes, recovery of corrupted downloads, and the use of a credit system to reward frequent uploaders. eMule transmits data in
zlib zlib ( or "zeta-lib", ) is a software library used for data compression as well as a data format. zlib was written by Jean-loup Gailly and Mark Adler and is an abstraction of the DEFLATE compression algorithm used in their gzip file compre ...
-compressed form to save bandwidth. eMule is written in C++ using the
Microsoft Foundation Classes Microsoft Foundation Class Library (MFC) is a C++ Object-oriented programming, object-oriented Library (computer science), library for developing desktop applications for Windows. MFC was introduced by Microsoft in 1992 and quickly gained wides ...
. Since July 2002 eMule has been
free software Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
, released under the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
; which has led to eMule's codebase being used as the basis of
cross-platform Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
clients
aMule aMule is a free peer-to-peer file sharing utility that works with the eDonkey network and the Kad network, offering similar features to eMule and adding others such as GeoIP (country flags). On August 18, 2003 it was forked from the xMule s ...
,
JMule JMule is an open source file sharing client written in Java for eDonkey2000 networks. JMule is released under the terms of the GNU General Public License, it is based on Java platform and requires at least Java SE 6.0 for operation. At a more gen ...
,
xMule xMule (short for " X11 Mule") is a discontinued free client for the eDonkey peer-to-peer file sharing network intended to bring it to virtually all the major Unix platforms, with a particular emphasis on Linux. xMule was coded in C++ using wx ...
, along with the release of eMule modifications of the original eMule. it is the fifth most downloaded project on
SourceForge SourceForge is a web service founded by Geoffrey B. Jeffery, Tim Perdue, and Drew Streib in November 1999. SourceForge provides a centralized software discovery platform, including an online platform for managing and hosting open-source soft ...
, with over 693 million downloads. Development was later restarted by the community as eMule Community.


History

The eMule project was started on May 13, 2002 by Hendrik Breitkreuz (also known as Merkur) who was dissatisfied with the original
eDonkey2000 eDonkey2000 (nicknamed "ed2k") was a peer-to-peer file sharing application developed by US company MetaMachine ( Jed McCaleb and Sam Yagan), using the Multisource File Transfer Protocol. It supported both the eDonkey2000 network and the Over ...
client. Over time more developers joined the effort. The source was first released at version 0.02 and published on
SourceForge SourceForge is a web service founded by Geoffrey B. Jeffery, Tim Perdue, and Drew Streib in November 1999. SourceForge provides a centralized software discovery platform, including an online platform for managing and hosting open-source soft ...
on July 6, 2002. eMule was first released as a binary on August 4, 2002 at version 0.05a. The 'Credit System' was implemented for the first time on September 14, 2002 in version 0.19a. The eMule project website started up on December 8, 2002. Versions v0.40+ of eMule added support for the
Kad network The Kad network is a peer-to-peer (P2P) network which implements the Kademlia P2P overlay protocol. The majority of users on the Kad Network are also connected to servers on the eDonkey network, and Kad Network clients typically query known node ...
. This network has an implementation of the
Kademlia Kademlia is a distributed hash table for decentralized peer-to-peer computer networks designed by Petar Maymounkov and David Mazières in 2002. It specifies the structure of the network and the exchange of information through node (networking), no ...
protocol, which does not rely on central servers as the
eDonkey network The eDonkey Network (also known as the eDonkey2000 network or eD2k) is a decentralized, mostly server-based, peer-to-peer file-sharing network created in 2000 by US developers Jed McCaleb and Sam Yagan that is best suited to share big files ...
does, but is an implementation of a
distributed hash table A distributed hash table (DHT) is a Distributed computing, distributed system that provides a lookup service similar to a hash table. Key–value pairs are stored in a DHT, and any participating node (networking), node can efficiently retrieve the ...
. Also added was the ability to search using
unicode Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
, allowing for searches for files in non-Latin alphabets, and the ability to search servers for files with complete sources of unfinished files on the
eDonkey network The eDonkey Network (also known as the eDonkey2000 network or eD2k) is a decentralized, mostly server-based, peer-to-peer file-sharing network created in 2000 by US developers Jed McCaleb and Sam Yagan that is best suited to share big files ...
. A "Bad source list" was added. The application adds an
IP address An Internet Protocol address (IP address) is a numerical label such as that is assigned to a device connected to a computer network that uses the Internet Protocol for communication. IP addresses serve two main functions: network interface i ...
to this list after one unsuccessful connection. After adding an IP to the "Bad source list", the application treats this IP as a "dead" IP. Unavailable IPs are banned for a time period from 15 to 45 minutes. Other additions include: the ability to run eMule from a user account with limited privileges (thus enhancing security), and AICH (so that a corrupted chunk does not need to be re-downloaded entirely). The 0.46b version added the creation and management of "eMule collection" files, which contain a set of links to files intended to be downloaded as a set. From 2007, many ISPs have used
bandwidth throttling Bandwidth throttling consists in the limitation of the communication speed (bytes or kilobytes per second), of the ingoing (received) or outgoing (sent) data in a network node or in a network device such as computers and mobile phones. The d ...
for usual P2P ports, resulting in slow performances. The 0.47b version adds
protocol obfuscation Protocol encryption (PE), message stream encryption (MSE) or protocol header encrypt (PHE) are related features of some peer-to-peer file-sharing clients, including BitTorrent clients. They attempt to enhance privacy and confidentiality. In addi ...
and eMule will automatically select two port numbers at random in the startup wizard.


Basic concepts

Each file that is shared using eMule is hashed as a
hash list In computer science, a hash list is typically a list of hashes of the data blocks in a file or set of files. Lists of hashes are used for many different purposes, such as fast table lookup (hash tables) and distributed databases (distributed hash ...
comprising separate 9500
KiB The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
chunks using the
MD4 The MD4 Message-Digest Algorithm is a cryptographic hash function developed by Ronald Rivest in 1990. The digest length is 128 bits. The algorithm has influenced later designs, such as the MD5, SHA-1 and RIPEMD algorithms. The initialism "MD" st ...
algorithm. The top-level MD4 hash, file size, filename, and several secondary search attributes such as bit rate and codec are stored on eD2k servers and the serverless
Kad network The Kad network is a peer-to-peer (P2P) network which implements the Kademlia P2P overlay protocol. The majority of users on the Kad Network are also connected to servers on the eDonkey network, and Kad Network clients typically query known node ...
. Users can search for filenames in the servers/kad and are presented with the filenames and the unique identifier consisting of the top-level MD4 hash for the file and the file's size that can be added to their downloads. The client then asks the servers where the other clients are using that hash. The servers return a set of IP/ports that indicate the locations of the clients that share the file. eMule then asks the peers for the file. eMule will then be queued until an upload slot becomes available. When a complete chunk of 9,728,000 bytes (9500 KiB) is downloaded and verified, this data is also shared by the downloader, helping others to download the file as well. It is also possible that a client knows other clients that are also sharing that same file. In that case a source exchange between the clients is made. This exchange of known peers is done directly between the peers. Newer versions of eMule support AICH (''Advanced Intelligent Corruption Handling''). It is meant to make eMule's corruption handling competitive with
BitTorrent BitTorrent is a Protocol (computing), communication protocol for peer-to-peer file sharing (P2P), which enables users to distribute data and electronic files over the Internet in a Decentralised system, decentralized manner. The protocol is d ...
.
SHA-1 In cryptography, SHA-1 (Secure Hash Algorithm 1) is a hash function which takes an input and produces a 160-bit (20-byte) hash value known as a message digest – typically rendered as 40 hexadecimal digits. It was designed by the United States ...
hashes are computed for each 180 KiB sub-chunk and a whole SHA-1 hash tree is formed. AICH is processed purely with peer-to-peer source exchanges. eMule requires 10 agreeing peers regarding the SHA-1 hash, so rare files generally do not benefit from AICH.


Low ID

Users who cannot be reached from the outside because they are firewalled, behind a NAT device that has not been correctly port forwarded, or whose IP address ends with a zero (e.g. 123.45.67.0) get a "Low ID" from the servers. They are still able to upload and download but need the help of servers or other kad clients to be reached by other clients. Since they cannot be notified that they are in front of an upload queue, they have to
poll Poll, polled, or polling may refer to: Forms of voting and counting * Poll, a formal election ** Election verification exit poll, a survey taken to verify election counts ** Polling, voting to make decisions or determine opinions ** Polling pla ...
peers if an upload slot is available. Since they cannot connect to any other Low ID clients, they see only 40–60% of the clients that a High ID can see. Their IP/ports are not exchanged between other peers, limiting their possibilities for finding sources via eMule's pure-P2P source exchange. A Low ID client also consumes a lot more data on an eserver than a High ID client due to the lowidcallbacks. Also, a releaser or heavy uploader that uses a releaser mod such as MorphXT or Xtreme that is forced to operate on a Low ID (hotel room, job) also will find that they will have little control over their upload priorities (especially powershares) as the servers appear to limit their connection-forwarding for each client, thus turning their upload queue to a contention situation where the first to be able to get forwarding and find an open slot gets it.


Credit system

Credits are not global; they are exchanged between two specific clients. The credit system is used to reward users contributing to the network, i.e. uploading to other clients. The strict queue system in eMule is based on the waiting time a user has spent in the queue. The credit system provides a major modifier to this waiting time by taking the upload and download between the two clients into consideration. The more a user uploads to a client the faster they advance in this client's queue. The modifiers are calculated from the amount of transferred data between the two clients. The values used can be seen in the client's details dialog. To view this information, right-click on any user and choose View Details. All Clients uploading to a user are rewarded by the credit system. It does not matter if the client supports the credit system or not. Non-supporting clients will grant no credits if uploaded to them. Credits are stored in the clients.met file. The unique user hash is used to identify the client. Credits are saved by the client who owes the credit. The computation formula for the Official Credit System is composed of two ratios as follows: :\textrm_1 = \frac :\textrm_2 = \sqrt Both ratios are then compared and the lower one is used as the modifier. A few conditions exist: * If the Uploaded Total is less than 1 MB, then the modifier will remain at 1. * If the client uploads data but doesn't download any, the modifier will be fixed at 10. * The modifier can only be between 1 and 10. An exception to this rule applies only when a peer is assigned a "Friend Slot" after being added to the client's Friends list. This automatically assigns a reserved upload slot for that peer so that he/she can begin downloading regardless of the Credit rating. Only one Friend Slot can be reserved so as to prevent any form of abuse such as upload discrimination.


eMule compared to other P2P applications

eMule supports AICH, making its corruption handling competitive with
BitTorrent BitTorrent is a Protocol (computing), communication protocol for peer-to-peer file sharing (P2P), which enables users to distribute data and electronic files over the Internet in a Decentralised system, decentralized manner. The protocol is d ...
. eMule also supports source exchanges, allowing it to substantially reduce the loads on the servers and Kad. With a High ID and well-sourced downloads pre-acquired by server and/or Kad, eMule is able to sustain the peer sources on these files independent longer after disconnection from eD2k and Kad.


eMule mods

eMule has variants, usually called mods. Some mods started as forks from official eMule versions and then continued to develop independently rather than modifying newer official versions. An example of this type of mod is the obsolete
eMule Plus eMule is a free peer-to-peer file sharing application for Microsoft Windows. Started in May 2002 as an alternative to eDonkey2000, eMule connects to both the eDonkey network and the Kad network. The distinguishing features of eMule are the di ...
. Since eMule Plus forked off before the release of v0.30, the first official version to include Kad, eMule Plus does not support this feature mainly because the project development has been abandoned for about 4 years. Other current mods follow official eMule releases and make their own releases based on each new release of the official version. Since distributed mods are required to publicly share their source code by the GNU General Public License, useful features created by mod developers can be incorporated into an official version.


Fake eMule sites and malware

Some third parties have created modified versions of it which contain
spyware Spyware (a portmanteau for spying software) is any malware that aims to gather information about a person or organization and send it to another entity in a way that harms the user by violating their privacy, endangering their device's securit ...
and other
malware Malware (a portmanteau of ''malicious software'')Tahir, R. (2018)A study on malware and malware detection techniques . ''International Journal of Education and Management Engineering'', ''8''(2), 20. is any software intentionally designed to caus ...
programs. Some fake sites ask for credit card information or require the user to sign up for a paid membership. These versions are usually found via rotating
advertisement Advertising is the practice and techniques employed to bring attention to a Product (business), product or Service (economics), service. Advertising aims to present a product or service in terms of utility, advantages, and qualities of int ...
s sometimes placed on legitimate sites.


Chinese mods of eMule client

VeryCD's easyMule is a eMule client used by Chinese users. It has a simplified interface and lacks some advanced settings available in the standard eMule client. As of version 1.1 it only supports searching through the VeryCD database, though external eD2k links are accepted. Some criticized VeryCD for their misleading name "Dianlv" ( zh, s=电驴, p=Diàn Lǘ, l=Electronic Donkey; generally the Chinese name for eDonkey or eMule) and the site emule.org.cn, which is named "Dianlv (eMule) Chinese Site" (电驴(eMule)中文网站).


Community version

On July 29, 2017 was released a "Community Version" of eMule maintained by the official forum users. This version is available to download in a GitHub repository and is based on the latest official release or beta but contains additional features and bug fixes made by the community, prioritizing a more up-to-date version.


See also

* Comparison of file sharing applications *
aMule aMule is a free peer-to-peer file sharing utility that works with the eDonkey network and the Kad network, offering similar features to eMule and adding others such as GeoIP (country flags). On August 18, 2003 it was forked from the xMule s ...
(Mac version)


References


External links

* {{File sharing 2002 software Free file sharing software Free software programmed in C++ Windows-only free software Portable software Windows file sharing software Beta software Free and open-source software Software using the GNU General Public License