[RC5] Question about RC5 Linux

gindrup at okway.okstate.edu gindrup at okway.okstate.edu
Wed Apr 22 16:10:35 EDT 1998

     There are two types of clients, but not all platforms have both 
     types.  The multithreaded (mt) clients have multiple threads of 
     execution for doing the following tasks, while the non-multithreaded 
     (non-mt) clients have one "thread" to do these tasks:
     1) For each processor, crack a block.
     2) Handle buffs, checkpointing, fetching, and flushing.
     The non-mt client works in a relatively obvious way, but loses some 
     cracking time to network delays while fetching and flushing and 
     loses a couple of orders of magnitude less time when fiddling with 
     the files.
     The mt client has a thread for each processor that cracks blocks.  
     There is another thread that fetches blocks (sort of "in the 
     background" because cracking continues while the network 
     communication is occurring) and flushes blocks.  It also has a block 
     "ready" whenever there is an active cracking block so that there is 
     no delay in handing a new block to a thread that finishes a block.
     So here's what you saw:
     1) The non-cracking thread noticed that the buff-in was empty and 
     fetched some blocks.
     2) The non-cracking thread picked up a block to be ready.
     3) The cracking thread received the ready block and started 
     4) The non-cracking thread picked up another block to be "ready".
     At this point, two blocks have been removed from the buff-in file.  
     One is being cracked and the other is queued to be cracked the 
     instant the first one is finished.  Thus there's one fewer block 
     left in the buff-in than you'd expect.
     I *believe* that each cracking thread reports its start-up using the 
     message "Child thread # \d has been started.", where "\d" is the 
     number of the thread starting; so there should be one such message 
     per processor on the machine.
     Blocks come in a variety of sizes:
     n*2^28, n*2^29, n*2^30, and 1*2^31, where n = 1 or 3.  Clients are 
     set to request blocks of a certain size, but the keyserver may 
     choose to give out a smaller block.  This is usually done so that 
     the keyserver can "even out" its outgoing buffer to the nearest 2^31 
     sized block.  Thus, sometimes you'll get "change" left over from a 
     previous request.
     Although clients can request blocks of various sizes (but only 
     powers of 2) and the keyservers can give out blocks in a greater 
     variety of sizes, the statistics displayed at D.Net use the least 
     common denominator -- larger blocks are disassembled into 2^28 
     blocks.  So, one 3*2^29 block submitted by a client counts as six 
     blocks in the stats.
            -- Eric Gindrup ! gindrup at Okway.okstate.edu

______________________________ Reply Separator _________________________________
Subject: [RC5] Question about RC5 Linux 
Author:  <rc5 at llamas.net> at SMTP
Date:    4/22/98 12:29 PM

I have a question about RC 5. Here is the entry in my log from when I 
first started RC 5:
Received notification: DES CONTEST IS OVER
[04/22/98 02:26:30 GMT] The proxy says: "Have a Key, Leave a Key, Need a
Key, Take a Key (Hadley)"
[04/22/98 02:26:44 GMT] Retrieved 25 RC5 block(s) from server 
[04/22/98 02:26:44 GMT] RC5 3*2^28 Block: 6876391A:D0000000 ready to 
[04/22/98 02:26:44 GMT] 24 Blocks remain in file buff-in.rc5 
[04/22/98 02:26:44 GMT] 0 Blocks are in file buff-out.rc5 
Child thread # 1 has been started.
[04/22/98 02:26:45 GMT] RC5 1*2^30 Block: 6876391A:90000000 ready to 
[04/22/98 02:26:45 GMT] 23 Blocks remain in file buff-in.rc5 
[04/22/98 02:26:45 GMT] 0 Blocks are in file buff-out.rc5
Why does the first part say "RC5 #*2^28"? I thought all the RC5 blocks 
were 3*2^30?
Also, what is the "Child thread #1"? Is it working on two blocks at the 
same time? It seems that way because it says "24 blocks remain" and then
"23 blocks remain".
To unsubscribe, send 'unsubscribe rc5' to majordomo at lists.distributed.net 
rc5-digest subscribers replace rc5 with rc5-digest

To unsubscribe, send 'unsubscribe rc5' to majordomo at lists.distributed.net
rc5-digest subscribers replace rc5 with rc5-digest

More information about the rc5 mailing list