Files
indra/docs/hiddenservice-protocol.md
2023-03-16 18:59:08 +00:00

1.3 KiB

Hidden Service Message Protocol

Creating a hidden service

Note left of alice: return header A ->
Note left of alice: hidden service ->
alice-->bob: relay
bob-->charlie: relay
charlie-->dave: relay
note right of dave: <-introducer
note left of dave: return header A <-
dave-->charlie: gossip intro
dave-->eve: gossip intro
dave-->bob: gossip intro

Requesting connection from introducer

Note left of eve: return header B ->
eve-->dave: routing request
Note left of dave: -> return header A
dave-->charlie: relay
charlie-->bob: relay
bob-->alice: relay
note right of alice: <- return header B
alice-->bob: ready
note left of alice: return header C <-
bob-->charlie: 
charlie-->eve: 
note left of eve: return header C ->

Request/Response Cycle

note left of eve: return header C ->
Note left of eve: request message ->
Note right of eve: -> return header D
eve-->charlie: return onion
charlie-->bob: return onion
bob-->alice: return onion
Note right of alice: <- return header D
Note left of alice: reply message <-
note left of alice: return header E <-
alice-->bob: next request...
bob-->charlie:
note right of eve: <- return header E
charlie-->eve: 
note left of eve: new request message ->
note left of eve: return header F ->
eve-->charlie: etc
charlie-->bob: etc
bob-->alice: and so on