RC5 Shared Network Installation FAQ

ViRGE

Elite Member, Moderator Emeritus
Oct 9, 1999
31,516
167
106
Created by Captain Rob/Upkept by Slahr Dzhe
RC5 Shared Network Installation.

Updated 4/21/00

Do you have a several computers on a LAN? Rather then loading dozens of individual computers with there own client, just load it on a shared drive on one computer. All the other computers can then access this one installation via a shortcut, which can be easily copied to each computer. For this example, I?m assuming all computers are Win32 GUI (Win95/98/NT).


Advantages:

Easy to update as new client versions are released.

Easy to add more computers via a single shortcut file.

Easy to implement via a domain login script. (Load on the server, modify the login scripts, and the entire network cracks codes and you never leave your desk)

Easy to stop all the clients at once. By just creating a file called exitrc5.now in the shared installation directory, all clients will gracefully exit within 30 seconds (can be changed/disabled).

Control/update all buffers from one PC (other's don't need Internet access).

Optional log file, which can be one combined log on the shared drive, or individual log files on the client systems.


Disadvantages:

Since the buffers need to be read/write accessible by all computers, a malicious user could cause problems.

If the system containing the buffers is offline, none of the other systems can save or retrieve Packets.

Plan it out 1st.

Plan ahead on a shared drive/folder that will be read/write available to all users. This drive doesn't need to be mapped to a drive letter on the remote PC's since we will set everything to access the drive via the generic "\\SystemName\SharedName\Path\". This shared drive should be available 24/7. Ideally this should be a shared drive on an NT Server.

Having one of the computers the designated Master will make things easier. By Master, I mean the system the program will be installed from, software updates run from, and also the one that will fetch/flush blocks. This computer should have some sort of Internet connection (you could also transfer the buffer files via email, or even manually via floppy). The Internet connection doesn?t need to be constant, that?s what the buffer files are all about. If you only connect once a day to check emails, you can adjust your buffer size to a larger value to hold 24 hours worth of blocks.


Loading the program

Load the program from the Master, making sure to override the default installation path. The install path will default to "C:\Program Files\distributed.net\". You can manually type in the path "\\NTSERVER1\DRIVE_C\distributed.net\" (example) to your shared path.


Configuring the program

Follow these steps closely. There are many possible ways the settings and command line options could be set. I?ll do my best to explain the features as I?ve setup and proved to work. If you vary from these directions just make sure you understand all of the effects.

When you start the program for the 1st time, it will detect there is no dnetc.ini file in the installation directory and will put you into the configuration menu (or you can just select File, Enter Configuration). Configure all the options from the Master PC, the Slave?s should not use the configuration menu. Make sure to use a valid email address for your d.net ID. Without a valid address, you will not receive a password thus not be able to join a team. I'd suggest setting the RC5 buffers to a size that would allow 1 full day worth of blocks to be buffered. As an example, with 4 systems running at 450, 300, 266, and 233Mhz, a buffer size of 250 blocks and a blocksize of 31 lasts for about a day. Any other minor differences in how the program runs from one PC to another should be controlled by command line options. For example, you should set the setups for your Internet Connection as Always Online, Lurk, or Lurk Only. You will then use the command line option, "- runoffline" on all of the Slave PC?s so they do not attempt to control the buffers. For a complete list of the .ini settings, and command line options, refer to the program?s help menu.


Editing the INI file

NOTE: The .ini file structure has changed starting with the 440 version of the clients.

You should now edited the dnetc.ini file and make sure all the paths are set to "\\SystemName\SharedName\Path\".

Example:

(43x versions and older)

in=\\NTSERVER1\DRIVE_C\distributed.net\buff-in.rc5
out=\\NTSERVER1\DRIVE_C\distributed.net\buff-out.rc5
in2=\\NTSERVER1\DRIVE_C\distributed.net\buff-in.des
out2=\\NTSERVER1\DRIVE_C\distributed.net\buff-out.des
logname=\\NTSERVER1\DRIVE_C\distributed.net\rc5.log


(440 versions and newer)

[buffers]
buffer-file-basename=\\NTSERVER1\DRIVE_C\distributed.net\buff-in
output-file-basename=\\NTSERVER1\DRIVE_C\distributed.net\buff-out

With logname= set as above, all clients will log to the same combined log file on the shared drive. This will let you see the complete history of what all your clients have done from one log. This has its good and bad points. Unfortunately, the log entry?s don?t yet include information from which client computer created the entry?s (I?ve requested d.net add the PC?s network name to the log entry?s. Maybe someday they will if they get enough requests).

The other logname= option is to point this to a directory that exists on all of the clients.

Example: logname=C:\rc5.log

Since C:\ is from the point of reference of each PC, each PC creates it?s own log file on it?s own drive. If your Master PC has file sharing rights on the Slave PC?s, you will be able to see each individual PC?s log file. You may get some strange effects if you were to set this line to C:\TEMP, and that directory doesn?t exist on some PC?s.


Test your Installation a little at a time

I'd suggest you test the Master PC?s installation 1st, then gradually add Slave's. This will allow you time to test and debug any problems. I personally have not had any problems with this setup, but I only have 4 computers on a small network. I'm not sure what the effect might be of adding hundreds of shared clients to a large and overloaded network. The risk is yours, the gain is ours.


Creating the shortcut files

You'll want to copy the existing "Distributed Computing Client" shortcut, or create a new shortcut to the executable. Make sure to edit the properties of this shortcut to point to "\\SystemName\SharedName\Path\" as the path. For all of the Slave PC?s, add a "- runoffline" option to the end of the shortcut.

Example of a Shortcut file:

Target: \\NTSERVER1\DRIVE_C\distributed.net\dnetc.exe -runoffline -quiet

Start in: \\NTSERVER1\DRIVE_C\distributed.net\

Save this shortcut file and copy it to other computers on your network. I'd suggest adding this shortcut to the StartUp folder so it starts automatically on boot up. The shortcut for the Master PC would be the same, except you?ll probably want to remove the "-runoffline" option. If you set the shortcut to Run: Minimized, in combination with the -quiet option, the client will run a stealth mode so it is completely hidden. This means you will not see a tray icon, nor will it show up in tasks (ctrl-alt-del). To terminate a client running in stealth mode, create a file called exitrc5.now in the shared installation directory, and ALL clients should gracefully exit within 30 seconds.

If you are the Administrator of an NT or NetWare network, you could also just add the above command line to the user?s login script instead of using a shortcut. I?ve been told with NetWare, you need to use the Windows "Start" command, or the program will hang. Basically, the line in the login script is:

#start \\server_name\volname\directory\dnetc -runoffline -quiet

Another option - Remote Buffers [updated 8/13/99]

One of the drawbacks of buffer sharing is if the system containing the buffers is offline, none of the other systems can save or retrieve Packets. With "Remote Buffers" setup properly, all your systems have their own local copy of the RC5 client, and their own local buffers. They all then update their own buffers to/from the "Remote Buffers". Since they only need to do this when they reach their local buffers fetch/flush limit, your network, server, and Internet connection, and keyserver/Personal Proxy (your welcome Mika;)) are under much less stress.

The Remote buffers can be updated via a single client, or could even be updated manually by email and 'sneakernetting'. I look at Remote Buffers as being somewhere between a Personal Proxy, and a Buffer Sharing setup.

I'll briefly explain the way I'm currently using "Remote Buffers" on my home network of three systems. Again, this is just one of many possible ways to configure Remote Buffers. The main thing is to make sure only one system is setup to fetch/flush the buffers.

Note: All the following examples are now the CLI versions.

System #1 is the only system setup for Internet access. This system has a local RC5 client, but stores and updates its buffers in a dedicated directory on my Linux server (#2). This client is doing all the fetch/flush of the buffers for the entire network. For some basic Internet security, this system has no files shared from its local hard drive.

Example of system #1 RC5 Configuration:
DNETC Client Configuration: Buffer and Buffer Update Options
--------------------------------------------------------------------------
1) Buffer packets in RAM only? (no disk I/O) ==> no
2) In-Buffer Filename Prefix ==> //server1/public/rc5/buff-in
3) Out-Buffer Filename Prefix ==> //server1/public/rc5/buff-out
4) Checkpoint Filename ==>
5) Disable buffer updates from/to a keyserver ==> no
6) Disable buffer updates from/to remote buffers ==> yes
7) Remote buffer directory ==>
8) Frequently update empty buffers? ==> no
9) Preferred RC5 packet size (2^X keys/packet) ==> 32
10) Packet fetch/flush threshold ==> 250


System #2 has its RC5 client, and its main buffers, in its own local RC5 client directory. This is set to NOT attempt to connect to a keyserver. Instead, it updates its buffers via the Remote buffers function, from the buffers stored in the dedicated ?buffers? (the ones updated by system#1) directory only once every 5 packets.

Example of system #2 RC5 Configuration:
DNETC Client Configuration: Buffer and Buffer Update Options
--------------------------------------------------------------------------
1) Buffer packets in RAM only? (no disk I/O) ==> no
2) In-Buffer Filename Prefix ==> buff-in
3) Out-Buffer Filename Prefix ==> buff-out
4) Checkpoint Filename ==>
5) Disable buffer updates from/to a keyserver ==> yes
6) Disable buffer updates from/to remote buffers ==> no
7) Remote buffer directory ==> /share/rc5/buffers/
8) Frequently update empty buffers? ==> no
9) Preferred RC5 packet size (2^X keys/packet) ==> 32
10) Packet fetch/flush threshold ==> 5


System #3 has its main buffers in its own local client directory. This is set to NOT attempt to connect to a keyserver. Instead it updates its buffers via the Remote buffers function, from the buffers stored in the dedicated ?buffers? (the ones updated by system#1) directory only once every 5 packets.


Example of system #3 RC5 Configuration:
DNETC Client Configuration: Buffer and Buffer Update Options
--------------------------------------------------------------------------
1) Buffer packets in RAM only? (no disk I/O) ==> no
2) In-Buffer Filename Prefix ==> buff-in
3) Out-Buffer Filename Prefix ==> buff-out
4) Checkpoint Filename ==>
5) Disable buffer updates from/to a keyserver ==> yes
6) Disable buffer updates from/to remote buffers ==> no
7) Remote buffer directory ==> //server1/public/rc5/buffers/
8) Frequently update empty buffers? ==> no
9) Preferred RC5 packet size (2^X keys/packet) ==> 32
10) Packet fetch/flush threshold ==> 5

 

Leo

Senior member
Nov 1, 1999
279
0
0
Ok. Thanks for the FAQ virge. Quick question:

I don't have NT, just windows 95 for my workstations. Is there any possible way I can have it run as a service while it is sitting there at the login screen and be able to update from remote buffers at login? I know it has to reside on the workstation and remote buffers looks like what I'm looking for, but I can't seem to get that to work with Netware volumes i.e. //server/vol/dir/client/buff-in.rc5. When it needs more buffers it just starts cranking out random ones, which I don't want. I suppose I could just have them all seperate, but I really don't want that many machines running to get more packets independantly. The start at login idea is decent, but alot of the machines I'd like to use typically sit at the login screen for a good part of the day..

Thanks,

 

JonB

Platinum Member
Oct 10, 1999
2,126
13
81
www.granburychristmaslights.com
Installing the client as a Win95/98 service isn't a problem. It will run at the login prompt when it is installed that way. The biggest problem is that the PC may not be allowed the necessary read/write access to the remote buffers on a LAN server or workstation unless the remote buffers are in a folder that allows "anonymous" or "all user" read/write access.

 

Leo

Senior member
Nov 1, 1999
279
0
0
Flagged it as public with r,rw,c,e, etc. I think the main problem is I can't even get it to grab remote blocks even with I'm logged in as admin and specify my own home directory. Is there a weird syntax that you have to follow? UNC isn't working for me. If you have it working and it's not cracking random blocks could you cut and paste what you put in for the remote buffer? (only if you are trying to grab them from a netware volume. NT was covered all too well in the example... sad.. I thought they were into performance.

On a side note... any admin in their right mind running that dnet nlm? :p

 

Leo

Senior member
Nov 1, 1999
279
0
0
Whelp I decided to add the initial 3 labs of thirty-five P3-500's to do the SETI thing instead and move the other labs to SETI as time permits over the summer since it comes with a nice screensaver anyways. Apparently when it's sitting at login, even the rc5 service when run locally doesn't run, so I lose the 1.25 mkeys/sec I would be getting with them otherwise. The SETI screensaver is just too cool anyways... there should be a winamp plugin like it :)

Bad news is that I'll be giving all the WU's to a friend... who is part of a Mac SETI group. I thought it would be a nice gesture since he's been cracking for over a year now and he's the one who first showed me the pretty screensaver.(He'll be blown away at his increase in WU's... Just counting the p3's alone I have 5 labs of thirty-five and 2 more coming in the fall.) I might go back to RC5 at a later date and if I do I'll be sure to toss my blocks towards Anandtech. At some point after I re-ghost all the labs I'll run the distributed client for a day or so just to see what kindof keyrate I can get. I will however keep a few production units as well as my home systems cracking rc5 in the meantime...

Cheers

p.s. I actually have a Mac cracking rc5 for anandtech :) 468kkeys/sec.. hehe :) Not a g4 by any means.. I would actually have tons of g3 macs cracking but the mac client is unfortunately unhidable.(Always in the mac taskbar)