[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: Prop 110 revisions



On Thursday 23 August 2007 19:31, Nick Mathewson wrote:
> >  Third question
> > is about where to put the two fields.  Moving the counter for seen
> > extend cells to or_circuit_t is fine, but I'm not sure the other can
> > be moved to origin_circuit_t.  The reason is that the only place I
> > can find that the CELL_RELAY type is set is in
> > relay_send_command_from_edge and the type of circuit in that function is
> > circuit_t not
> > origin_circuit_t.
>
> This will probably depend on which implementation we wind up doing.
> If RELAY_EXTEND cells only originate from the client, then the counter
> can go into origin_circuit_t, since every client circuit is an
> origin_circuit_t.  If other nodes in the circuit decide to sometimes
> originate RELAY_EXTEND cells (as they do in the migration phase in my
> half-backed idea in my last email in this thread), then everybody
> needs a count.

How about this: if a peer (starting at patch level 2) receives a normal, 
non-RELAY_EXTEND cell and its counter of # relay-extend-cells received is 
still < MAX, it just converts the cell type (and decrements the 
EXTEND-received counter).  Yes, this will prevent the initiator from sending 
RELAY-EXTEND cells after the first 10, but no harm done there (and would be 
as in Proposal 110 anyway).  As for anonymity sets, just having a single 
patch-level 2 peer on the path would result in the exit-level seeing 
RELAY_EXTEND, so your anonymity sets are preserved.   In essence, we use the 
same counter that we use to reject RELAY_EXTEND to automatically convert to 
RELAY_EXTEND.  I think if we do this, we can get away with just a single 
counter.  

I think this is either what you were proposing or at least an equally 
effective alternative ;-).

> Cool!  Sorry for the indecisiveness here; I really wish we had this
> all designed well ahead of time. :/

No problem, these things need to be considered thoroughly.

Cheers!

Christian