[tor-bugs] #29489 [Obfuscation/Snowflake]: Set up automated local testing environment for Snowflake

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Feb 21 19:43:56 UTC 2019


#29489: Set up automated local testing environment for Snowflake
-----------------------------------+---------------------------
 Reporter:  cohosh                 |          Owner:  cohosh
     Type:  task                   |         Status:  assigned
 Priority:  Medium                 |      Milestone:
Component:  Obfuscation/Snowflake  |        Version:
 Severity:  Normal                 |     Resolution:
 Keywords:                         |  Actual Points:
Parent ID:                         |         Points:
 Reviewer:                         |        Sponsor:  Sponsor19
-----------------------------------+---------------------------

Comment (by cohosh):

 I have a minimal test environment here now:
 https://github.com/cohosh/snowbox

 Right now I'm trying out running everything in the same docker container.
 This eases set up: the only dependency will be to have docker installed
 and the Snowflake source code cloned locally and mounted to the container
 using

 {{{
 docker run -p 8080:8080 -it  -v ${SNOWFLAKE_REPO}:/go/src/snowflake.git
 snowbox /bin/bash
 }}}

 This seems a better route than copying the repo locally as it can be built
 once in the container and reused without needing to be rebuilt if the
 container is restarted.

 Right now there is a bash script called script.sh that must be run inside
 the docker container that builds and runs parts of Snowflake. So far I am
 disabling TLS for these local tests and passing in the local broker and
 Snowflake proxy URLs through command line arguments.
 The broker is run using: {{{./broker -addr ":8080" -disable-tls}}} and
 port 8080 is exposed so that localhost:8080/debug can be accessed from the
 host machine.
 The proxy-go instance is run using {{{./proxy-go -broker
 "http://localhost:8080" -relay "wss://localhost"}}} to point to the
 broker.

 The next steps are:
 - Get a local bridge (snowflake server) running and the corresponding
 torrc files configured to actually send client traffic through the local
 environment
 - See if we can run each component using the same methods as the
 production enviornment. Right now I'm just using nohup, but the proxy-go
 instances are managed using runit in production.
 - Reproduce the proxy-go deadlocking bug #25688

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29489#comment:2>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list