<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">On Mon, Apr 29, 2013 at 17:44 PM, Nick Mathewson <nickm at alum.mit.edu> wrote:</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> Right now, all chutney</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> does is configure and launch a small Tor network, but the small</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> network requires a little babysitting to make it bootstrap. (For</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> example,
 you sometimes need to send the clients a SIGHUP once the</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> authorities have made their first consensus.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;"><br></span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">So, the first bits for improving chutney would be to automate the</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">network generation as much as possible (leaving no loose ends)?</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;"><br></span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> What Chutney
 doesn't do (but should!) is actually test the network it</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> launches. Right now, to make sure the network has bootstrapped, you</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> have to read through its log files.  If you want to test the network</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> with any traffic, you need to use an application of your choice to</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> send traffic through one of the Tor clients, and verify that the</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> output as is expected. And if
 you want to make sure that Tor is</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> running without weird warnings, you need to manually inspect the</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> log files again.  It would be good if Chutney grew into, or were</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">> replaced by, a tool that could actually do testing right that.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;"><br></span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">Now, we want chutney to be robust enough to encompass all the manual</span></div><div><span style="font-family: 'Courier New', courier,
 monaco, monospace, sans-serif; font-size: 13px;">that is mentioned above & automate it as much as possible or atleast</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">print the tasks to be performed by the tester sequentially. We would</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">need a set of static reliable web pages if we want to automate the</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">traffic testing?</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;"><br></span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">Also, we would parse the log files for errors or warnings so that</span></div><div><span
 style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">we dont have to manually check for them.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;"><br></span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">  * Construct a circuit to an exit which allows port 80 and request a</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">site through it.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">  * Do the same for an exit which rejects port 80.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">  * Construct a one-hop circuit through an exit.</span></div><div><span style="font-family:
 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">  * Try to use a circuit that runs through a bridge.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">  * Let tor pick the path of a circuit and assert that the first</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">relay's a guard and the last is an exit.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">  * Attempt to request a page from a hidden service.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">  * Host a hidden service and request something from ourselves.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">  * Act as a
 relay and try to construct a circuit that includes ourselves.</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">  * ... etc...</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;"><br></span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">As Damian listed down all the tests one needs to carry out for actual</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">network testing (keeping in mind unreliability of the network at times),</span></div><div><span style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 13px;">what all additional tests would we like chutney to have?</span></div><div><br></div></div></div></body></html>