MLdonkey

From MLDonkey
Jump to: navigation, search
m (Reverted edits by Jacksonsophia (Talk) to last version by Ygrek)
 
Line 19: Line 19:
 
===Background===
 
===Background===
  
MLDonkey has been developed since January 2002 [http://forum.overnet.com/viewtopic.php?t=23860] and has been hosted by http://savannah.nongnu.org, a development site for free software that is not part of the GNU Project, since Feb. 19, 2002. It was started by [http://www.lefessant.net Fabrice Le Fessant] and [http://patarin.info Simon Patarin] who work at [http://www.inria.fr INRIA] to prove the capabilities of the [http://caml.inria.fr Ocaml] language.<br>
+
MLDonkey has been developed since January 2002 [http://web.archive.org/web/20060515003239/http://forum.overnet.com/viewtopic.php?t=23860] and has been hosted by [http://savannah.nongnu.org Savannah], a development site for free software that is not part of the GNU Project, since Feb. 19, 2002. It was started by [http://www.lefessant.net Fabrice Le Fessant] and [http://patarin.info Simon Patarin] who work at [http://www.inria.fr INRIA] to prove the capabilities of the [http://caml.inria.fr OCaml] language. Quoting http://hal.archives-ouvertes.fr/inria-00071789/en/ :
:Quoted from http://pauillac.inria.fr/~lefessan/papers/#icfp2003
+
:A lot of designers of functional languages have one dream: finding a killer application, outside of the world of symbolic programming ( compilers, theorem provers, DSLs ), that would make their language spread in the open-source community. One year ago, we tackled this problem, and decided to use Objective-Caml to program a network application in the emerging world of peer-to-peer systems. The result of our work, MLdonkey, has superseded our hopes: it is currently the most popular peer-to-peer file-sharing client on the well-known freshmeat.net site, with about 10,000 daily users. Moreover, MLdonkey is the only client able to connect to several peer-to-peer networks, to download and share files. It works as a daemon, running unattended on the computer, and can be controlled remotely using three different kind of interfaces. In this paper, we present the lessons we learnt from its design and implementation.
::A lot of designers of functional languages have one dream: finding a killer application, outside of the world of symbolic programming ( compilers, theorem provers, DSLs ), that would make their language spread in the open-source community. One year ago, we tackled this problem, and decided to use Objective-Caml to program a network application in the emerging world of peer-to-peer systems. The result of our work, MLdonkey, has superseded our hopes: it is currently the most popular peer-to-peer file-sharing client on the well-known freshmeat.net site, with about 10,000 daily users. Moreover, MLdonkey is the only client able to connect to several peer-to-peer networks, to download and share files. It works as a daemon, running unattended on the computer, and can be controlled remotely using three different kind of interfaces. In this paper, we present the lessons we learnt from its design and implementation.
+
  
 
MLDonkey was originally intended as a pure [[eDonkey2000]] clone, running on [[Unix]] and [[Linux]], a sector that the original client never served well. Since the release of version 2, there has also been development to access [[OtherNetworksSupported|other networks]], most notably the [[eDonkey2000]] offspring [[Overnet]], [[BitTorrent]], [[Kademlia]] and [[DirectConnect]].
 
MLDonkey was originally intended as a pure [[eDonkey2000]] clone, running on [[Unix]] and [[Linux]], a sector that the original client never served well. Since the release of version 2, there has also been development to access [[OtherNetworksSupported|other networks]], most notably the [[eDonkey2000]] offspring [[Overnet]], [[BitTorrent]], [[Kademlia]] and [[DirectConnect]].
Line 29: Line 28:
 
The first controversy was regarding servers. MLDonkey introduced a method to connect to several servers simultaneously, thereby increasing search efficiency greatly. This was at a time when servers were relatively small, and already strained (mainly by bots). Too many users, too few servers, new solutions needed.
 
The first controversy was regarding servers. MLDonkey introduced a method to connect to several servers simultaneously, thereby increasing search efficiency greatly. This was at a time when servers were relatively small, and already strained (mainly by bots). Too many users, too few servers, new solutions needed.
  
Later on, certain pretentious server admins became more and more interested in the numbers of users assigned to their servers, rather than in the efficiency of the network. This meant that a client connecting to more than one server was a threat to their internal \"high score\" competition of served users.
+
Later on, certain pretentious server admins became more and more interested in the numbers of users assigned to their servers, rather than in the efficiency of the network. This meant that a client connecting to more than one server was a threat to their internal "high score" competition of served users.
  
 
Complaints started to come in from eDonkey users about MLDonkey being too efficient, i.e. utilizing an unfair amount of network resources. This probably has to do with the extreme reluctance of the developers of [[eDonkey2000]] to improve their product, which led to larger and larger servers, instead of following the approach MLDonkey stood for: increasing the connectivity of the network as a whole. But, then again, making the [[eDonkey2000]] network too efficient would probably not be in line with the plans to develop the Overnet, which is indeed a high connectivity serverless network.
 
Complaints started to come in from eDonkey users about MLDonkey being too efficient, i.e. utilizing an unfair amount of network resources. This probably has to do with the extreme reluctance of the developers of [[eDonkey2000]] to improve their product, which led to larger and larger servers, instead of following the approach MLDonkey stood for: increasing the connectivity of the network as a whole. But, then again, making the [[eDonkey2000]] network too efficient would probably not be in line with the plans to develop the Overnet, which is indeed a high connectivity serverless network.
Line 37: Line 36:
 
It is important to note that, being an open source project, the MLDonkey team have always offered their solutions to the original developers, as well as the rest of the community. This courtesy has never been returned, even though numerous pleas have been forwarded; MetaMachine insists on keeping their code and protocols proprietary.
 
It is important to note that, being an open source project, the MLDonkey team have always offered their solutions to the original developers, as well as the rest of the community. This courtesy has never been returned, even though numerous pleas have been forwarded; MetaMachine insists on keeping their code and protocols proprietary.
  
Later on, as MetaMachine turned all their efforts into creating the [[http://www.amule.org]] was developed from xMule source code and most of their developers, which is listed on eMule homepage as the eMule for linux right now. With [[eMule Overnet]], another eDonkey client emerged: [[eMule]]. This was the result of popular demand from users to provide (a) nice graphics and (b) balanced of upload and download. It runs only on [[Windows]]. An eMule port to linux was created [[lMule||http://lmule.sf.net/]], available on Sourceforge, which later was forked to [[xMule||http://www.xmule.org]], and then [[aMule]] came the total surrender of the term \"file sharing\" per se, in favor of ultra liberal demands to convert the network to a file trading model, using a currency of credits, complicated queue systems, and internal preference. The credit system in eMule is no longer mandatory as of release 0.28a. eMule's  biggest deficiency is that it cannot be used with a remote GUI, making it impractical for use on a server machine.
+
Later on, as MetaMachine turned all their efforts into creating the [http://www.amule.org aMule] was developed from xMule source code and most of their developers, which is listed on eMule homepage as the eMule for linux right now. With [[Overnet]], another eDonkey client emerged: [[eMule]]. This was the result of popular demand from users to provide (a) nice graphics and (b) balanced of upload and download. It runs only on [[Windows]]. An eMule port to linux was created [http://lmule.sf.net/ lMule], available on Sourceforge, which later was forked to [http://www.xmule.org xMule], and then [[aMule]] came the total surrender of the term "file sharing" per se, in favor of ultra liberal demands to convert the network to a file trading model, using a currency of credits, complicated queue systems, and internal preference. The credit system in eMule is no longer mandatory as of release 0.28a. eMule's  biggest deficiency is that it cannot be used with a remote GUI, making it impractical for use on a server machine.
 
However the last eMule and aMule versions have implemented a web-interface making it possible to remotely control basic search/download/preferences functions. aMule has also implemented a GUI/Core separation but the standalone remote GUI is quite in initial stage of development and implements basic functions.
 
However the last eMule and aMule versions have implemented a web-interface making it possible to remotely control basic search/download/preferences functions. aMule has also implemented a GUI/Core separation but the standalone remote GUI is quite in initial stage of development and implements basic functions.
 
At the moment MLdonkey is the only one providing deep remote control of the core  thanks to the web-interface and various GUIs.
 
At the moment MLdonkey is the only one providing deep remote control of the core  thanks to the web-interface and various GUIs.
Line 52: Line 51:
 
Some [[MLDonkey design choices]] are quite different from [[eMule]]'s, and are often misunderstood.
 
Some [[MLDonkey design choices]] are quite different from [[eMule]]'s, and are often misunderstood.
  
{{Langen_de|de=MLDonkey}}[[MLdonkey_RU | на русском]]
+
{{Languages|MLdonkey}}

Latest revision as of 22:22, 24 May 2010

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox