xxx-automatic-node-promotion.txt 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. Filename: xxx-automatic-node-promotion.txt
  2. Title: Automatically promoting Tor clients to nodes
  3. Author: Steven Murdoch
  4. Created: 12-Mar-2010
  5. Status: Draft
  6. Target:
  7. 1. Overview
  8. This proposal describes how Tor clients could determine when they
  9. have sufficient bandwidth capacity and are sufficiently reliable to
  10. become either bridges or Tor relays. When they meet this
  11. criteria, they will automatically promote themselves, based on user
  12. preferences. The proposal also defines the new controller messages
  13. and options which will control this process.
  14. Note that for the moment, only transitions between client and
  15. bridge are being considered. Transitions to public relay will
  16. be considered at a future date, but will use the same
  17. infrastructure for measuring capacity and reliability.
  18. 2. Motivation and history
  19. Tor has a growing user-base and one of the major impediments to the
  20. quality of service offered is the lack of network capacity. This is
  21. particularly the case for bridges, because these are gradually
  22. being blocked, and thus no longer of use to people within some
  23. countries. By automatically promoting Tor clients to bridges, and
  24. perhaps also to full public relays, this proposal aims to solve
  25. these problems.
  26. Only Tor clients which are sufficiently useful should be promoted,
  27. and the process of determining usefulness should be performed
  28. without reporting the existence of the client to the central
  29. authorities. The criteria used for determining usefulness will be
  30. in terms of bandwidth capacity and uptime, but parameters should be
  31. specified in the directory consensus. State stored at the client
  32. should be in no more detail than necessary, to prevent sensitive
  33. information being recorded.
  34. 3. Design
  35. 3.x Opt-in state model
  36. Tor can be in one of five node-promotion states:
  37. - off (O): Currently a client, and will stay as such
  38. - auto (A): Currently a client, but will consider promotion
  39. - bridge (B): Currently a bridge, and will stay as such
  40. - auto-bridge (AB): Currently a bridge, but will consider promotion
  41. - relay (R): Currently a public relay, and will stay as such
  42. The state can be fully controlled from the configuration file or
  43. controller, but the normal state transitions are as follows:
  44. Any state -> off: User has opted out of node promotion
  45. Off -> any state: Only permitted with user consent
  46. Auto -> auto-bridge: Tor has detected that it is sufficiently
  47. reliable to be a *bridge*
  48. Auto -> bridge: Tor has detected that it is sufficiently reliable
  49. to be a *relay*, but the user has chosen to remain a *bridge*
  50. Auto -> relay: Tor has detected that it is sufficiently reliable
  51. to be *relay*, and will skip being a *bridge*
  52. Auto-bridge -> relay: Tor has detected that it is sufficiently
  53. reliable to be a *relay*
  54. Note that this model does not support automatic demotion. If this
  55. is desirable, there should be some memory as to whether the
  56. previous state was relay, bridge, or auto-bridge. Otherwise the
  57. user may be prompted to become a relay, although he has opted to
  58. only be a bridge.
  59. 3.x User interaction policy
  60. There are a variety of options in how to involve the user into the
  61. decision as to whether and when to perform node promotion. The
  62. choice also may be different when Tor is running from Vidalia (and
  63. thus can readily prompt the user for information), and standalone
  64. (where Tor can only log messages, which may or may not be read).
  65. The option requiring minimal user interaction is to automatically
  66. promote nodes according to reliability, and allow the user to opt
  67. out, by changing settings in the configuration file or Vidalia user
  68. interface.
  69. Alternatively, if a user interface is available, Tor could prompt
  70. the user when it detects that a transition is available, and allow
  71. the user to choose which of the available options to select. If
  72. Vidalia is not available, it still may be possible to solicit an
  73. email address on install, and contact the operator to ask whether
  74. a transition to bridge or relay is permitted.
  75. Finally, Tor could by default not make any transition, and the user
  76. would need to opt in by stating the maximum level (bridge or
  77. relay) to which the node may automatically promote itself.
  78. 3.x New options
  79. 3.x New controller message
  80. 4. Migration plan
  81. We should start by setting a high bandwidth and uptime requirement
  82. in the consensus, so as to avoid overloading the bridge authority
  83. with too many bridges. Once we are confident our systems can scale,
  84. the criteria can be gradually shifted down to gain more bridges.
  85. 5. Related proposals
  86. 6. Open questions:
  87. - What user interaction policy should we take?
  88. - When (if ever) should we turn a relay into an exit relay?
  89. - What should the rate limits be for auto-promoted bridges/relays?
  90. Should we prompt the user for this?
  91. - Perhaps the bridge authority should tell potential bridges
  92. whether to enable themselves, by taking into account whether
  93. their IP address is blocked
  94. - How do we explain the possible risks of running a bridge/relay
  95. * Use of bandwidth/congestion
  96. * Publication of IP address
  97. * Blocking from IRC (even for non-exit relays)
  98. - What feedback should we give to bridge relays, to encourage then
  99. e.g. number of recent users (what about reserve bridges)?