[PROXYPER] Random prefix

David Taylor rc5 at xfiles.nildram.co.uk
Sat Apr 3 15:57:53 EST 1999

On Sat, 3 Apr 1999, Nico Schmoigl wrote:

> 04/02/99 21:45:20,server: Assigned us rc564 8f8c5400:a0000000, 
> iter 64
> 04/02/99 21:45:20,Using new randomprefix 0x90, replacing 0x8e
> 04/02/99 21:45:20,server: Got ack of rc564 8f4fcc3d:00000000, 
> iter 1

I think I see a pattern here.  It was assigned a block from 0x8f.
It then used random prefix 0x90 (One ahead of 0x8f).

[ later ]

> 04/03/99 11:53:22,Accepted connection from address
> 04/03/99 11:53:22, Client requesting communication
> 04/03/99 11:53:22,Using new randomprefix 0x8e, replacing 0x90
> 04/03/99 11:53:22, assigned rc564 
> 8d6ca41c:00000000, iter 8

The client is then assigned an old block, which the proxy got before it
was assigned a 0x8f block, and set the random prefix to 0x90.  Therefore,
as it is currently working with an 0x8d block, it switches over to the
random prefix 0x8e  (0x8d + 1).

> 04/03/99 11:53:22, assigned rc564 
> 8d6ca41c:80000000, iter 8
> 04/03/99 11:53:22, assigned rc564 
> 8d6ca41d:00000000, iter 8
> 04/03/99 11:53:22,Using new randomprefix 0x90, replacing 0x8e
> 04/03/99 11:53:22, assigned rc564 
> 8f8c5404:a0000000, iter 6

Now, the proxy has apparantly run out of old 0x8d blocks, and has issued a
0x8f block.  The proxy then switches over to 0x90 (0x8f+1) as the random

> Well - those assigments of blocks shouldn't matter, but what is 
> interesting to me, are those "randomprefix" changes.

IIRC, the current method of determining the random prefix, is the prefix
above the current open subspace (i.e. the keyspace above the block you
have been assigned).  So the assignments of blocks is rather important.

> At first, I should tell you what I know, what this prefix is. As far as I 
> know, these prefixnumber are used if the client does not have any 
> blocks, so he randomizes one to do something. And this number is 
> used to make such a random guess a bit more reliable.
> Well - the first part of my logfile is quite logical to me:

How can a random guess be reliable? :)

But, yes, its used when the client runs out of blocks, and in order to
reduce the number of possible duplicate blocks (and allow the keyserver to
use a sane amount of HD space for keeping open keyspaces in), the random
prefix is used to decide which 2^56 subspace the random block should come
> [connecting a server]
> 04/02/99 21:45:20,Using new randomprefix 0x90, replacing 0x8e
> As we move forward with the contest, the old prefix 0x8e is out of 
> date. 0x90 is better and so the server tells us to update the proxy's 
> prefix to ensure that his clients are up-to-date, too. Quite nice... that 
> makes sense.

Not really, d.net doesn't need to issue subspaces in numerical order (They
started at 0x64 -- but they seem to be issuing them in increasements of 2
so far, which is normal [even subspace for normal subspaces, odd for
> But the second part of my logfile confuses me:
> A client connects and...
> 04/03/99 11:53:22,Using new randomprefix 0x8e, replacing 0x90
> What's that? The the new prefix (0x90) is being replaced by the old 
> one - and... this command comes from a client (!!!) not from the 
> server.

I don't think there is a 'command' to change random prefixes, unlike
scheduledupdate, and contestclosed etc, the random prefix is determined
from the block the proxy is on.

Why the proxy should even care what the random prefix is, I have no idea.
The client should either determine it for itself from the current block,
removing any responsibility from the proxy, or the proxy should keep
track of the *current* random prefix (not the random prefix for the block
it is assigning the client) and send it along to the client.

Why it 'downgrades' the randomprefix when it goes back to its old blocks
is a bit weird.

> And even better - a bit later:
> 04/03/99 11:53:22,Using new randomprefix 0x90, replacing 0x8e
> It rechanges its oppinion! Back to the old stuff...

Well, it ran out of old blocks, so it goes to new blocks = new prefix.

> Now three things confuse me:
> 1. Why has a client the right to change a proxy's randomprefix? Do 
> we randomize the randomprefix? ;-)

It doesn't.  The proxy just acts rather odd IMO.  It should really only
change the randomprefix when *getting* blocks *from* a proxy.

> 2. Why does the client itself do so?

It doesn't.

> 3. Why is it possible to alter a newer prefix down to an older one?

Because they might want to.  Though they aren't actually doing that, its
simply the fact the proxy gets the prefix from the current block.  It gets
new blocks, updates the prefix, goes back to the old blocks when asked to
give out blocks and downgrades the prefix back to the original value, and,
eventually upgrades it (permanently, this time, until a new one is opened)
to the new value once it runs out of old blocks.

David Taylor
E-Mail:	dtaylor at nildram.co.uk.spam
ICQ:	268004
[Remove .spam from e-mail to reply]

To unsubscribe, send 'unsubscribe proxyper' to majordomo at lists.distributed.net

More information about the proxyper mailing list