add topic tag to docs

pull/6/head^2
Jeff Becker 6 years ago
parent f23ed98c33
commit ac4faf23b5

@ -7,64 +7,25 @@ This document is currently out of date (probably)
find introduction message (FIM)
recursively find an IS by SA
variant 1: recursively find an IS by SA
{
A: "F",
I: 0 or 1 if iterative request,
R: r_counter,
S: "<32 bytes SA>",
T: transaction_id_uint64,
V: 0
}
Transactions will persist until replied to by a GIM or 60 seconds, whichever
is reached first.
If the timeout is reached before a GIM or the forwarding of the request fails:
* close transaction
* close linked transactions
if R is non-zero and less or equal to than 5:
* decrement R by 1
* open a transaction with id T for sender's RC.k
* pick random dht capable router, F
* generate new transaction id, U
* open a transaction with id U for F.k
* link transaction U to transaction T
* send FIM with transaction id U to F
if R is greater than 5 or less than 0:
* increment shitlist value of sender's RC.k by 1
* if the shitlist value for sender's RC.k is less than 10 reply with a GIM with
an X
* if the shitlist value for sender's RC.k is equal to or greater than 10 drop
the message
if R is zero and we have 1 or more IS at position S in dht keyspace:
* reply with a GIM holding the IS who contains the introducer with the highest
expiration timestamp
if R is zero and we do not have any IS at position S in dht keyspace:
* find a router who's RC.k is closest to S, N
if N is our router:
* reply with a GIM with an empty X value
if N is not our router:
* open transaction with id T for sender's RC.k
* generate new transaction id, U
* open transaction with id U for N.k
* link transaction U to transaction T
* forward request to N using transaction id U
variant 2: recursively find many IS in a tag
{
A: "F",
I: 0 or 1 if iterative request,
N: "<16 bytes topic tag>",
T: transaction_id_uint64,
V: 0
}
got introduction message (GIM)
@ -75,16 +36,6 @@ got introduction message (GIM)
V: 0,
}
if we have a transaction with id T:
* forward the GIM to all linked transactions
* terminate transaction T
when a linked transaction gets a GIM:
* set T to the current transaction id
* foward the GIM to the requester of T
publish introduction message (PIM)

@ -177,6 +177,8 @@ introduction set (IS)
a signed set of introductions for a hidden service
a is the service info
i is the list of introductions that this service is advertising with
n is a 16 byte null padded utf-8 encoded string tagging the hidden service in
a topic searchable via a lookup
v is the protocol version
w is an optinal proof of work for DoS protection (slot for future)
z is the signature of the entire IS where z is set to zero signed by the hidden
@ -185,6 +187,7 @@ service's signing key.
{
a: SI,
i: [ I, I, I, ... ],
n: "<16 bytes service topic>",
v: 0,
w: optional proof of work,
z: "<64 bytes signature using service info signing key>"

Loading…
Cancel
Save