QuakeNet RC5-64 Team

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:

distributed.net client configuration -------------------------------------------------------------------------- 1) General Client Options 2) Buffer and Buffer Update Options 3) Performance related options 4) Logging Options 9) Discard settings and exit 0) Save settings and exit Note: You have not yet provided a distributed.net ID. Please go to the 'General Client Options' and set it. Choice -->

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:

1) Your email address (distributed.net ID) ==>

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:

6) Keyserver<->client connectivity options

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:

distributed.net client configuration: Keyserver<->client connectivity options -------------------------------------------------------------------------- 1) Network Timeout (seconds) ==> 60 (default) 2) Automatically select a distributed.net keyserver? ==> no 3) Keyserver host name(s) ==> 4) Keyserver port ==> 5) Disable fallback to a distributed.net keyserver? ==> no 6) Firewall/proxy protocol ==> none/transparent/mapped 7) Use HTTP encapsulation even if not using an HTTP proxy? ==> no 8) Always use UUEncoding? ==> no 9) Dialup-link detection ==> Normal mode 10) Use scripts to initiate/hang-up dialup connections? ==> no 0) Return to Buffer and Buffer Update Options Choice -->

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.

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:

distributed.net client for Linux Copyright 1997-2002, distributed.net Please visit http://www.distributed.net/ for up-to-date contest information. dnetc v2.9001-478-CTR-02112023 for Linux (Linux 2.4.18-18.8.0). Please provide the *entire* version descriptor when submitting bug reports. The distributed.net bug report pages are at http://www.distributed.net/bugs/ Using email address (distributed.net ID) 'someone@example.com' [Jan 01 21:04:40 UTC] Automatic processor detection found 1 processor. [Jan 01 21:04:40 UTC] Connected to distributed.quakenet.org:2064... [Jan 01 21:04:40 UTC] The perproxy says: "Keep on gibbin' them blocks! (QuakeNet)" [Jan 01 21:04:40 UTC] Retrieved project state data from server. (cached) [Jan 01 21:04:41 UTC] OGR: Retrieved packet 3 of 3 (100.00%) [Jan 01 21:04:41 UTC] RC5-72: Retrieved stats unit 10 of 10 (100.00%) [Jan 01 21:04:41 UTC] Connection closed. [Jan 01 21:04:41 UTC] Automatic processor type detection found an AMD K7-3 (Duron) processor. [Jan 01 21:04:41 UTC] RC5-72: using core #5 (DG 2-pipe). [Jan 01 21:04:41 UTC] RC5-72: Loaded CA:406193EC:00000000:1*2^32 [Jan 01 21:04:41 UTC] RC5-72: 9 packets (9.00 stats units) remain in buff-in.r72 [Jan 01 21:04:41 UTC] RC5-72: 0 packets are in buff-out.r72 [Jan 01 21:04:41 UTC] 1 cruncher has been started. ../

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.