README 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. This is chutney. It doesn't do much so far. It isn't ready for prime-time.
  2. If it breaks, you get to keep all the pieces.
  3. It is supposed to be a good tool for:
  4. - Configuring a testing tor network
  5. - Launching and monitoring a testing tor network
  6. - Running tests on a testing tor network
  7. Right now it only sorta does these things.
  8. You will need, at the moment:
  9. - Tor installed somewhere in your path or the location of the 'tor' and
  10. 'tor-gencert' binaries specified through the environment variables
  11. CHUTNEY_TOR and CHUTNEY_TOR_GENCERT, respectively.
  12. - Python 2.7 or later
  13. Stuff to try:
  14. Standard Actions:
  15. ./chutney configure networks/basic
  16. ./chutney start networks/basic
  17. ./chutney status networks/basic
  18. ./chutney verify networks/basic
  19. ./chutney hup networks/basic
  20. ./chutney stop networks/basic
  21. Bandwidth Tests:
  22. ./chutney configure networks/basic-min
  23. ./chutney start networks/basic-min
  24. ./chutney status networks/basic-min
  25. CHUTNEY_DATA_BYTES=104857600 ./chutney verify networks/basic-min
  26. # Send 100MB of data per client connection
  27. # verify produces performance figures for:
  28. # Single Stream Bandwidth: the speed of the slowest stream, end-to-end
  29. # Overall tor Bandwidth: the sum of the bandwidth across each tor instance
  30. # This approximates the CPU-bound tor performance on the current machine,
  31. # assuming everything is multithreaded and network performance is infinite.
  32. ./chutney stop networks/basic-min
  33. Connection Tests:
  34. ./chutney configure networks/basic-025
  35. ./chutney start networks/basic-025
  36. ./chutney status networks/basic-025
  37. CHUTNEY_CONNECTIONS=5 ./chutney verify networks/basic-025
  38. # Make 5 connections from each client through a random exit
  39. ./chutney stop networks/basic-025
  40. Note: If you create 7 or more connections to a hidden service from a single
  41. client, you'll likely get a verification failure due to
  42. https://trac.torproject.org/projects/tor/ticket/15937
  43. HS Connection Tests:
  44. ./chutney configure networks/hs-025
  45. ./chutney start networks/hs-025
  46. ./chutney status networks/hs-025
  47. CHUTNEY_HS_MULTI_CLIENT=1 ./chutney verify networks/hs-025
  48. # Make a connection from each client to each hs
  49. # Default behavior is one client connects to each HS
  50. ./chutney stop networks/hs-025
  51. The configuration files:
  52. networks/basic holds the configuration for the network you're configuring
  53. above. It refers to some torrc template files in torrc_templates/.
  54. The working files:
  55. chutney sticks its working files, including all data directories, log
  56. files, etc, in ./net/. Each tor instance gets a subdirectory of net/nodes.
  57. You can override the directory "./net" with the CHUTNEY_DATA_DIR
  58. environment variable.
  59. Test scripts:
  60. The test scripts are stored in the "scripts/chutney_tests" directory. These
  61. Python files must define a "run_test(network)" function. Files starting with
  62. an underscore ("_") are ignored.
  63. Test scripts can be run using the following syntax:
  64. ./chutney <script-name> networks/<network-name>
  65. The chutney verify command is implemented using a test script.
  66. Test scripts in the test directory with the same name as standard commands
  67. are run instead of that standard command. This allows expert users to replace
  68. the standard chutney commands with modified versions.