The distributed.net client
This is a basic introduction to setting up the distributed.net client. It covers the most commonly used settings. For advanced configuration you should read the documentation that comes with the client. See also the client section of the distributed.net FAQ. If you have any trouble feel free to ask in our IRC channel.
Download
First of all of course you need to download it! You should only get it from the official distributed.net clients page. Take a look and choose the client suitable for your OS and CPU architecture. Here are direct links to the latest stable versions of the most popular clients:
Please note that it is worth making sure you keep up to date with new versions of the client. Not only do these often provide better optimisations, allowing you to process work faster, but they will fix bugs and provide support for new contests. Whenever there's a pressing need to upgrade it will be posted on the news page of the team webpage, and put in the topic of our IRC channel.
Once you have downloaded it, install/extract the client to a suitable location.
Initial configuration
OK, there are few important variables that must be set before you can do any work. To enter the menu-driven configuration, run dnetc -config. This will present you with a menu something like this:
As it suggests, you need to set your distributed.net ID. This is your email address, and provides your unique ID for each project. You must use a real email address (i.e.: one that you read, and is ideally unlikely to change for a while). To enter the General Client Options submenu in order to do this, you need to press 1 and then <enter>. When you do that you'll get a new screen with various options. The only one you need to normally worry about is:
Set that, and then press 0 to return to the main menu. Here go into the Buffer and Buffer Update Options menu. Here there are several options you will want to set:
This takes you to another submenu. First set 2, Automatically select a distributed.net keyserver?, to no. This allows you to specify that you wish to send and receive work units from somewhere other than a distributed.net keyserver. After you've done this the menu should look like this:
Now set 3 to the hostname of the team's distributed.net personal proxy. This is distributed.quakenet.org. You do not need to specify a port.
You should set 5 to yes. This will stop the client from just using a distributed.net keyserver if it can't reach the team's proxy for some reason. Our proxy should always be up, so setting this is not normally a problem.
If you're a modem user (i.e.: you have to dialup to get an internet connection), set 9 to 2. Then set the new option 10, Interfaces to watch, to ppp*. With these settings the client will automatically notice when you establish an internet connection and will only try to update its buffers then. People with internation connections that are permanently on (cable, ADSL, etc) do not need to change these options.
Now return to the Buffer and Buffer Update Options menu by pressing 0.
Here there are some settings that determine what projects your client works on. Exactly what you do is entirely up to you, but most people in our team work on RC5, so I shall describe their typical settings.
Set 9, Load-work precedence, to RC5-72,OGR, and 10, Additional buffer-level checking, to 4. This will make your client work on RC5-72 as much as it can. Please note that totally disabling other projects is not a good idea as it can cause problems when the single project you've enabled finishes.
There are two settings that control how many packets the client will fetch at a time for each project. What you set these to is partly dependent on your connection (if you may be offline for several hours you don't want them too low or the client will run out of work). Otherwise it's up to you really. I would say that each client should be set to store enough work for 6 hours if you have a permanent internet connection, and a couple of days (48 hours) otherwise. 12, Fetch work threshold, tells the client to fetch a certain number of packets. 13, Fetch time threshold, tells the client to fetch however many packets it can get in through in the specified number of hours (the client works out how fast your CPU is). Note that the latter does not work for OGR as the time taken to do one unit varies. For people on a permanent connection I recommend settings of OGR=4,RC5-72=0 and RC5-72=6 respectively. For dialup users, OGR=25,RC5-72=0 and RC5-72=48.
Press 0 to return to the main menu, and finally 0 again to save the settings.
Sample configs
Below are linked versions of the configuration file that you may find useful. They are based on the guidelines set above. Save them as dnetc.ini in the same directory as your client executable. You should run dnetc - config to confirm the settings, and also enter your an email address as the ID.
- dnetc.ini for broadband users (permanent internation connection)
- dnetc.ini for modem users (dialup internation connection))
Running the client
When you run the client for the first time, it will connect to the proxy (you can check it's using our team one by the message reported: Keep on gibbin' them blocks! (QuakeNet)
. It will then download (fetch) packets for any active projects, and start working. Here's some sample output:
You can use Ctrl+C to shutdown the client.
Installing the client
So you've got the client configured and running OK. Now you should install it so that it automatically runs on startup when you turn your computer on. On most Windows systems you can run dnetc -install. This will create a special service for it that gets started automatically. On Unix systems you will need to add a command to your start-up scripts. The easiest way to do this is to add dnetc -hide (with that option the client runs itself in the background) to /etc/rc.d/rc.local. Note that this means it will be running as root, which isn't ideal - so you may wish to consider using su or similar.
