Requirements - mangei/onion-routing GitHub Wiki

by Thomas

Directory node:

  • provision/deploy new nodes
    • make sure that 6 nodes are available (reprovision)
  • monitor all nodes (or rather: know if a node is available)
    • answer: which nodes are available? where are these nodes (IP)?
  • have the public keys of all nodes
  • resend "lost" messages (timeout?)
  • load balancing (a simple priority queue should suffice)

chain nodes:

  • receive a request, decrypt it with the private key, read out the destination and forward it
  • receive a response to a request, encrypt it with the public key of the intended target, forward it
  • the exit node has to send the request to the service and read the response
  • generate a new public/private key pair on startup
  • contact the directory node
  • log the requests

client:

  • request chain from directory
  • encrypt the message
  • include its own public key with the message (is needed for the response)
  • stage 1: command line
  • stage 2: web UI for tracing requests and showing the response

quote service:

  • rest-api which provides a random quote from a text file