1.6 KiB
snowflake-pt
A Pluggable Transport using WebRTC
Status
- Successfully bootstraps over WebRTC, both directly to a server plugin, as well as through the browser which proxies WebRTC to websocket.
- Needs work on signaling with the facilitator.
Usage
There are currently two ways to try this:
- Directly to the go-webrtc server plugin.
- Through a browser snowflake proxy.
Setting up the client is the same in both cases. Open up three terminals for the client:
cd client/
go build
A: tor -f torrc SOCKSPort auto
B: cat > signal
C: tail -F snowflake.log
Now, to connect directly to a server plugin:
Open up another three terminals for the server:
cd server/
go build
D: tor -f torrc
E: cat > signal
F: tail -F snowflake.log
Look for the offer in terminal C; copy and paste it into terminal E. Copy and paste the answer in terminal F to terminal B. At this point the tor client should bootstrap to 100%.
Snowflake proxy
Otherwise, to connect through the WebRTC proxy in the browser, start a local
http server in the proxy/
directory however you wish. For instance:
cd proxy/
python -m http.server
Open a browser tab to 0.0.0.0:8000/snowflake.html
.
The page will ask you to input a relay.
Input your desired relay address, or input nothing/gibberish which will cause
snowflake to use a default relay.
Look for the offer in terminal C; copy and paste it into the browser. Copy and paste the answer generated in the browser back to terminal B. At this point the tor client should bootstrap to 100%.
More
More documentation on the way.