On 05/08/14 01:33, Nusenu wrote: >>> Which would bring me to the next question (which would be >>> required to actually do the required accounting for (b)): Is a >>> relay able to tell whether it is being used as first or second >>> hop solely by looking at packets (not their source)? > >> Looking at the packet source and comparing it to the list of >> known relays would probably be the most reliable way for counting >> bytes as first or second hop. But this is not implemented, and >> there are plans to implement this, to the best of my knowledge. > > If relays are unable to tell in which position they are used, how > does AllowSingleHopExits work? I guess by simple checking if the > client IP matches an IP in the consensus?
>From a quick look at the code: yes. https://gitweb.torproject.org/tor.git/blob/HEAD:/src/or/connection_edge.c#l2494 Relays also distinguish whether a circuit was created using a CREATE_FAST or a CREATE cell, but that distinction is going away with CREATE_FAST cells being phased out. See proposal 221 for details. https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/221-stop-using-create-fast.txt So, yes, by comparing the identity presented by the previous hop with the identities contained in the known consensus. All the best, Karsten -- tor-talk mailing list - tor-talk@lists.torproject.org To unsubscribe or change other settings go to https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk