|
mldonkey : Frequently Asked Questions
English ,
Deutsch ,
ou Francais
-
Background
- What is mldonkey ?
- Why use Objective-Caml to program mldonkey ?
- Where can I find support on mldonkey ?
- Where can I download mldonkey ?
- Where can I find mldonkey for Windows ?
- What's new with MLdonkey 2.00 ?
-
Running mldonkey
- How should I start mldonkey ?
- How can I control mldonkey ?
- Where/what are mldonkey configuration files ?
- How can I control the bandwidth used by mldonkey ?
- When I modify an option in the config file, mldonkey overwrites it with its old value ?
- Where are the files I have downloaded with mldonkey ?
- Why does MLdonkey automatically pause some of my downloads ?
- How can I reach mldonkey WEB interface
if my firewall only allows port 80 ?
-
Running the GTK GUI
- When I start the GUI, I get a lot of error messages, and the GUI terminates with a "Segmentation Fault" ?
- I can't connect to mldonkey from a remote host, neither by telnet, WWW or the GUI ?
- The GUI is immediatly disconnected from the core, or keeps connecting and disconnecting very fast ?
-
Building mldonkey
- How can I download the latest sources of mldonkey ?
- What do I need to compile mldonkey on my system ?
- How do I compile mldonkey on my system ?
- I just updated from CVS, and I get an error while compiling ?
-
The eDonkey plugin
- What is the eDonkey network ?
- Why can't mldonkey connect to any server ?
- How can I import my old edonkey files under mldonkey ?
- Where can I find files on eDonkey without searching on servers ?
- Why does mldonkey only connect 5
servers, whereas max_connected_servers is greater ?
- What's about Overnet ?
- I'm behind a firewall, what should I do ?
- How can I share multiple directories ?
-
The Soulseek plugin
- What is the Soulseek network ?
- I can't connect to the server ?
-
The LimeWire plugin
- What is the LimeWire network ?
- When I search for files, I receive unrelated results ?
-
The other plugins
- What is the current Development Status of
mldonkey plugins ?
-
Background
-
Formerly, mldonkey was a Linux client for the eDonkey network, build from
a reverse-engeneered version of the protocol. Now, it is also able to connect
to multiple networks (gnutella, Direct-Connect, Soulseek, etc).
MLdonkey runs on most Unix clones: Linux (x86, alpha, sparc), Mac OS X,
Solaris x86, Free/OpenBSD, etc.
It runs as a daemon, in the background, that can run, downloading and sharing
files, 24 hours a day. You can interact with your mldonkey daemon, either
locally or remotely, by a telnet interface, a WEB interface or a GTK
GUI. Other GUIs have also been created for mldonkey.
-
Most programmers associate functionnal languages with languages theory,
lambda-calculus, recursivity, and non-mutable variables, ie the most
boring lectures at university.
Fortunately, Objective-Caml is not only a functional language: it also
provides many other programming paradigms, such as imperative constructs
(while and for loops, mutable variables, records),
object-oriented constructs, and a powerful C-interface. Moreover, its
native-code compiler carefully checks your program for typing errors (no
more segfaults !), and produces a very efficient code (even faster than C
on many examples).
If you don't believe me, check the following links:
-
The first place is the
MLdonkey Project Site
where you will find:
You can also try to read/post in the
Linux eDonkey Forums
-
The latest stable binaries can be downloaded from the
Project Download page .
If you want a more recent version of mldonkey, you need to check out the
sources from the CVS, and compile it yourself.
See Building Mldonkey for help.
-
MLdonkey does not run very well under Cygwin on Windows. Moreover, there
is no native port of MLdonkey to Windows, so you will not be able to run
it on these systems.
If you have some knowledge of MinGW, you might try to compile
Objective-Caml and mldonkey. It would probably run better than under
Cygwin. Note that mldonkey does not use threads, and the select call
is only used to descriminate between sockets (read/write/connect/accept).
-
If you were using MLdonkey 1.16, you might be interested in knowing what is new
with MLdonkey 2.00. Here are the main improvements:
- Overnet support.
- Completely New GUI: upload panel, icons, configuration of many options.
- Post-filtering of results (see Overnet or LimeWire plugins).
- Multi-networks support (sources and CVS only).
- Many bug fixes: memory leak, "too many open file descrs", sharing,
upload/download rates, ...
-
Running mldonkey
-
mldonkey will install its configuration files in the directory where you
start it. So, first, choose the right directory, where you want it to run.
Then, copy the "servers.ini" file that is in the distribution in this
directory. I suppose here that mldonkey is started in its directory.
Start mldonkey with:
./mldonkey
It should display some debug info. DON'T CLOSE THE TERMINAL WHERE IT
WAS STARTED, otherwise it might get blocked on terminal output.
Once you are sure it works correctly, you can dump the debug info in a file
(but it can become very big) or better in /dev/null, the next time you
start it:
./mldonkey &> /dev/null
-
You have three different ways to control the mldonkey daemon (note that, by
default, mldonkey is configured to accept only control connections from the
host running mldonkey ( more info )):
-
MLdonkey creates its configuration files in the directory where it is
started. All of them terminate with a .ini extension. You should not
modify them while mldonkey is running since it periodically overwrites
them. Instead you should either stop it, or modify the options using one of
the interfaces.
- downloads.ini : the basic options (and historically, the
edonkey plugin options)
- files.ini : the list of files being currently downloaded,
and informations needed to recover the download after a stop.
- servers.ini : the list of all known servers for all networks.
- friends.ini : the list of your friends (peers you like to
browse files) on all networks.
- Other configuration files are used by mldonkey plugins, normally one
per network.
- ~/.mldonkey_gui.ini : the GUI configuration file is the
only one which is not stored in the mldonkey directory.
-
There are two options in the downloads.ini file: max_hard_upload_rate and
max_hard_download_rate. Setting these options to 0 means that there are no
limits. They are expressed in kilobytes/second (not kilobits/second !).
The upload limit both applies to the files which are downloaded from you,
and for the messages you send to ask for files: be careful not to limit
your upload too much !
|
Low Bandwidth Usage |
High Bandwidth Usage |
Your Connection Type |
max_hard_upload_rate |
max_hard_download_rate |
max_hard_upload_rate |
max_hard_download_rate |
T1 and more |
50 |
0 |
0 |
0 |
Cable/ADSL 512/128 kbs |
2 |
6 |
6 |
12 |
If you have troubles with these values, find the best one corresponding to
your link and send us the information to fix this table !
-
There are two cases:
- When you edit a config file, mldonkey must not run. Indeed, mldonkey
saves its configuration periodically, overwritting any changes made in the
files.
- Be careful with the syntax. If mldonkey can't parse the config file, it
will generate a new file with the old values for all options that couldn't
be read correctly. You must remember that you must put filenames and directory
names between "" (they are not always required if there are no special
characters inside the name (such as spaces, slashes, etc...), so mldonkey can
remove them in some cases).
-
Files being currently downloaded are temporarily stored in the
temp/ directory at the level of mldonkey config files. Files in this
directory are identified by their MD4 (for edonkey files) or by a random
identifier.
When the download of a file is finished, the file is added to a list
of files that have to be "commited". These files are not renamed, so they
are still kept in the temp directory.
To move finished downloads into the incoming/ directory with
their final name, you need to use the command commit in the
telnet, or the "Save" buttons in the GUI.
-
When mldonkey receives data for a file from the network, it tries to write
this data in the file in the temp/ directory. If, for some reason, it cannot
write the data, it immediatly pauses the file.
This can happen for different reasons:
- You have no space left on the disk. You can verify it with the "df"
command, and free some space for the downloads to continue.
- The user running mldonkey has not write permissions to write in
your temp/ directory, or on the file temporary file.
-
If you want to access the WEB interface (port 4080) through a firewall,
and the firewall only allows port 80, and you don't want to run mldonkey
as root, you can set up the apache WEB server to redirect requests to mldonkey:
- Edit your "httpd.conf" : Insert the following lines somewhere in the
"Section 2: main server configuration":
RewriteEngine on
ProxyRequests on
RewriteRule /mldonkey http://localhost:4080/$1 [P,L]
RewriteRule /(submit.*) http://localhost:4080/$1 [P,L]
RewriteRule /(files.*) http://localhost:4080/$1 [P,L]
ProxyPassReverse /(.*) http://localhost:4080/$1
where, of course, localhost is your mldonkey host, and
4080 is the http_port of mldonkey.
- With these rules, http://aaa.bbb.ccc.ddd/mldonkey ,
where aaa.bbb.ccc.ddd is the IP address of the host running the
apache server, should connect to your mldonkey.
-
Running the GTK GUI
-
You probably use the "static" binary of mldonkey GUI. Download the
"shared" binaries from this site, and use that GUI. This bug is caused by
an incompatibility between the statically linked GTK library and the
themes installed on your distribution.
-
You need to modify the "allowed_ips" option in the downloads.ini file to
define which hosts are allowed to control your mldonkey core.
You can either stop mldonkey, and edit the downloads.ini file:
allowed_ips = ["127.0.0.1"; "192.168.255.255"; "65.64.43.63"]
for example allows your localhost (127.0.0.1) to control mldonkey, all the
hosts from the network 192.168.*.*, and the host 65.64.43.63.
If you don't want to stop mldonkey, just connect locally with the telnet,
and type:
set allowed_ips "127.0.0.1 192.168.255.255 65.64.43.63"
-
There are two cases to consider:
- You have set a password in the core to access it through the GUI: you
must enter the password in the GUI too (use the Files :: Settings
menu for that.
- You have two GUIs connected to the same core: the core (1.99 and
later) only allows one GUI to be connected simultaneously. When you connect,
it immediatly disconnects the previous GUI. This can only work if the
previous GUI does not try to reconnect automatically: mldonkey_gui
will not reconnect, but maybe you are using another contributed GUI, which
tries to automatically reconnect, and make the core disconnect your GUI ?
Then, tell its author to remove this feature or to put an option to disable
it.
-
Building mldonkey
-
Chechout the sources of mldonkey from the
CVS repository .
Here is the standard procedure:
cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/mldonkey login
(password: just hit enter)
cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/mldonkey co mldonkey
-
You need ocaml-3.06 (
Ocaml site ) installed
for the code
and
lablgtk compiled in native code with ocaml 3.06 for the GTK gui.
The easiest way is to download binaries for your system. Otherwise, use
the following lines to install them:
- Installing Objective-Caml 3.06 in /usr/local/bin
~/tmp> tar zxf ocaml-3.06.tar.gz
~/tmp> cd ocaml-3.06
~/tmp/ocaml-3.06> ./configure
~/tmp/ocaml-3.06> make world opt opt.opt
~/tmp/ocaml-3.06> make install
- LablGTK 1.2.3 for example
~/tmp> tar zxf lablgtk-1.2.3.tar.gz
~/tmp> cd lablgtk-1.2.3
~/tmp/lablgtk-1.2.3> make configure
~/tmp/lablgtk-1.2.3> make
~/tmp/lablgtk-1.2.3> make opt
~/tmp/lablgtk-1.2.3> make install
Do not forget the "make opt" which is required to get a native-code version
of the libraries.
-
To compile the core, you just need to use the following commands:
cd mldonkey
./configure [...options...]
make depend
make
You should now have a "mldonkey" executable ... No "make install" is
provided.
If you get strange errors from make, you probably need to use "gmake"
on your system.
You can use the following options for the configure:
- --enable-batch : install Objective-Caml and Lablgtk locally just
to be able to compile mldonkey.
- --disable-multinet: allows you to only compile support for edonkey
- --disable-audiogalaxy: allows you to remove support for Audio Galaxy
- --disable-opennap: allows you to remove support for Open Napster
- --disable-limewire: allows you to remove support for LimeWire
- --disable-directconnect: allows you to remove support for Direct Connect
- --disable-soulseek: allows you to remove support for SoulSeek
- --disable-openft: allows you to remove support for OpenFT
- --disable-donkey: allows you to remove support for eDonkey
-
After an update from the CVS, you MUST restart the configure script, and
rebuild the dependencies:
cd mldonkey
cvs login
cvs -z3 up -d
./configure [...options...]
make depend
make
If the error messages are related to camlzip, a workaround is to edit
manually the file config/Makefile.config , and to change the line
ZLIB=no and SOULSEEK=no (only soulseek requires
camlzip).
-
The eDonkey plugin
-
The eDonkey network is a network
specialized in sharing really big files (between 0 to 1.4 GB).
This network offers a set of characteristics that cannot be found on other networks:
- Files can be downloaded from different sources at the same time.
- Files are identified by uniq identifiers (MD4) that can be used to find
new sources for a file.
- Files are checked using checksums, and chunks (9MB) that are corrupted
are downloaded again.
- Files chunks can be downloaded in any order.
- Files are shared as soon as a checked chunk has been downloaded, to
speed up the spreading of files.
-
- First, check that you have some servers known by mldonkey: connect
to mldonkey by telnet (telnet localhost 4000) and use the "vma" command to
display all known servers.
- If you have no servers known, you need to add a list of servers for
mldonkey to connect to them: you can either:
- If you already have a list of known servers, maybe the list is not
up-to-date, and maybe the servers are full. Try to add some new servers
like above.
-
-
There are two kinds of WEB sites where you can find
ed2k:// links for files on eDonkey:
- Recommandation Engines: on these Web sites, you will find commented
files, that you are sure to find complete on the eDonkey network.
- Search Engines: these Web sites allow you to search for files
that are currently available on some servers. However, you have no
guaranty they are complete:
-
Being connected to several servers can be useful to spread the files you
are uploading, and to initially find more sources to begin a download.
However, each server on which you are connected is not available for
another user. For this reason, you should not stay connected to too many
servers. mldonkey enforces this policy by limiting to 5 the number of
servers on which you remain connected for a long time, whatever the value
of max_connected_servers is.
Thus, you should simply see max_connected_servers as the
number of servers mldonkey tries to connect concurrently to at the
startup, not as the number of servers he will remain connected to.
-
Overnet is a network using the same
download protocol as edonkey, but a different
search/localisation protocol ,
that doesn't need servers.
MLdonkey 2.00 is able to search for files and sources on Overnet. For that, you must
make sure that:
- The "overnet_search_sources" and "overnet_search_keywords" options are set to
true.
- You have a (recent) list of Overnet peers that you can connect to. For that, you
can:
- Use the "servers.ini" file from the most recent distribution of mldonkey. It
contains a long list of Overnet peers.
- Use the "boot IP PORT" command, to add a new peer.
- Use the "ovweb URL" command, to download a .ocl file from url URL
containing a list of recent peers.
You can use the "ovstats" command, to display how many peers you have been able
to connect to (well, they have replied to a connect UDP packet).
- If you have enabled "overnet_search_keywords", replies to search can arrive from
Overnet peers. These results are not very accurate (they only need to match only
one of the keywords, instead of all for example).
As for all networks, you can activate post-filtering of results (very useful on
Gnutella too): set the "filter_search" option to true, and maybe the "filter_search_delay"
option (period between results updates in seconds). Then, only results matching exactly
your query will be displayed.
-
MLdonkey uses two ports for incoming connections, one on TCP (default is
4662) and the other one for UDP (4666). Thus, you should open these ports
in your firewall, and forward them to the computer running mldonkey. More
generally, you can do that for all ports between 4660 and 4660.
Allowing incoming connections is important as it is the only way for
you to connect other sources which are behind a firewall.
If you have no control on the firewall, and your administrator blocks
port 4660 to 4670, you should change the port used by mldonkey in the configuration
file downloads.ini : port is the TCP port, while the
UDP port is always computed as port + 4 .
-
Just edit the shared_directories option in downloads.ini :
shared_directories = [ "/usr/share/documents"; "/usr/share/videos"]
-
The Soulseek plugin
-
The Soulseek Network is a network
closed to Napster.
You connect on a single server, and there, you can search for (mainly
audio) files, you can join rooms to chat with other users, and you can browse
other users files.
-
There is only one server on Soulseek, and the one you have in soulseek.ini
is probably not up-to-date. Normally, mldonkey will download another one, so
that you will have to servers in your list of servers.
By default, mldonkey_gui does not display the servers you are not
connected to. So you have to use the "Display All Servers" button, and ask
mldonkey to try to connect to the second soulseek server.
Currently, the server is mail.slsk.org , port 2242.
Mldonkey behavior will be improved to automatically connect to the current
server from the soulseek site Web page.
-
The LimeWire plugin
-
The LimeWire network is a
network built upon the Gnutella network .
The main difference is that all nodes in this network do not broadcast each
received message to its neighbours. Instead, special nodes, called
ultra-peers, with higher connectivity are dedicated for this task, whereas
other smaller nodes (such as mldonkey) only connect and ask ultra-peers.
Currently, the LimeWire support in MLdonkey also allows mldonkey client to
use Gnucleus ,
Morpheus , and MyNapster
ultra-peers as servers.
On this network, you can mainly search for small files, you have no way to
chat nor browse other peers.
-
On Gnutella, there is no specified protocol for asking complex queries to
other peers. Instead, each peer is free to interpret your query as it
wants and reply what it wants.
In particular, multiple-words queries are often understood as logical-or
queries between words, ie each document that contains at least one word is returned.
As for Overnet, you can activate post-filtering of sources. Then, results
which are received are checked by mldonkey against the query and only displayed if
they are accurate. Post-Filtering is activated by setting the "filter_search" option
to true, and modifying the "filter_search_delay" depending on the period you
want between updates (for example, 30 means that results will be added only every
30 seconds).
-
The other plugins
-
The current Development Status of mldonkey (in the CVS) at 2002/09/09 is
shown on the following table (also have a look at the
ChangeLog
)
Features |
eDonkey |
Direct
Connect |
Open
Napster |
Gnutella
LimeWire |
Soulseek |
Audio
Galaxy |
OpenFT |
Download Server List |
1.16 |
CVS |
CVS |
CVS |
CVS |
CVS |
|
Server Connect |
1.16 |
CVS |
CVS |
CVS |
CVS |
CVS |
CVS |
View Server Users |
1.16 |
CVS |
|
|
|
|
|
Search Files |
1.16 |
CVS |
CVS |
CVS |
CVS |
(web) |
CVS |
Browse Peer |
1.16 |
CVS |
|
|
CVS |
|
|
Download Files |
1.16 |
CVS |
CVS |
CVS |
CVS |
CVS |
CVS |
Recover Files |
1.16 |
CVS |
CVS |
CVS |
|
CVS |
|
Recover Sources |
1.16 |
CVS |
|
|
|
CVS |
CVS |
Pause Downloads |
1.16 |
|
|
|
|
CVS |
|
Cancel Downloads |
1.16 (not CVS) |
|
|
|
|
CVS |
|
Upload Files |
1.16 |
|
|
|
|
|
|
Upload File List |
1.16 |
CVS |
|
|
|
|
|
Friends |
1.16 |
|
|
|
|
|
|
Public Messages |
|
CVS |
|
|
CVS |
|
|
Private Messages |
1.16 |
|
|
|
|
|
|
Import Windows Config |
1.16 |
|
|
|
|
|
|
Config File |
downloads.ini |
directconnect.ini |
opennap.ini |
limewire.ini |
soulseek.ini |
audiogalaxy.ini |
openft.ini |
Disable Network |
CVS |
CVS |
CVS |
CVS |
CVS |
CVS |
CVS |
If you have any comment, if you want to add some questions, or improve
this FAQ, send a mail to
mldonkey@mldonkey.net
|