MLdonkey

From MLDonkey
Jump to: navigation, search
(Undo revision 4550 by Killertester (Talk))
m (Reverted edits by Jacksonsophia (Talk) to last version by Ygrek)
 
Line 1: Line 1:
 
==MLDonkey - the Open Source eDonkey client==
 
==MLDonkey - the Open Source eDonkey client==
  
=== Характеристики ===
+
===Features:===
* 100% открытый код, лицензия GPL.
+
* 100% Open Source, GPL license
* Запускается под [[Linux]], [[Unix]], Solaris, [[MacOSX]], [[MorphOS]] и [[Windows]]
+
* runs on [[Linux]], [[Unix]], Solaris, [[MacOSX]], [[MorphOS]] and [[Windows]]
* [[core | Ядро]] программы  может быть запущено на маломощных компьютерах, с возможностью удалённого доступа через сеть и управляться посредством графической оболочки удаленно.
+
* The p2p [[core]] can run on a resource limited headless computer, with remote [[Gui|GUI]] clients accessing it over the network.
** Ядро программы встраивается как демон (сервис, служба) и работает дни, ночи, недели, мно-о-о-ого дней... не беспокоя вас.
+
** The core is built to run as daemon for days, weeks, ever...
* Доступно много различных графических оболочек, разрабатываемых разными авторами, для работы с MLdonkey.
+
* Several different GUIs available, some of them developed separately.
* Поддержка многопользовательского режима работы: одно ядро может управлять разными очередями и процессами скачки для разных пользователей, при этом они не будут видеть что качают другие пользователи.
+
* Multi-user support: the same core can queue and process downloads for several different users who can't see what the others are downloading.
* Поддержка нескольких различных пиринговых сетей одновременно:
+
* Several different file-sharing networks supported:
** ED2K (и Kademlia, и Overnet)
+
** ED2K (and Kademlia and Overnet)
 
** BitTorrent
 
** BitTorrent
 
** DC++
 
** DC++
** (FastTrack, SoulSeek, Gnutella и G2)
+
** (FastTrack, SoulSeek, Gnutella and G2 need work)
* Ядро программы может качать один файл, с различных сетей одновременно (экспериментальная возможность) .
+
* The core can download the same file from several different networks simultaneously.
* Доступен интерфейс командной строки, есть возможность использования скриптов. Это делает доступ к управлению всеми возможностям MLdonkey из интерфейса командной строки (CLI).
+
* Scriptable command-line interface available. It's possible to control all aspects of mldonkey from the CLI.
* Написан на языке [[ObjectiveCaml]], частично на языке [[C]] и немножко на [[Assembler|Асемблере]].
+
* Written in [[ObjectiveCaml]], with some parts written in [[C]] and some in [[Assembler|Assembly]].
  
 
===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.

Latest revision as of 22:22, 24 May 2010

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox