Skip to content
Snippets Groups Projects
user avatar
Serene Han authored
bc1e147c
History
Name Last commit Last update
client
proxy
server
.gitignore
LICENSE
README.md

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.

Using the server plugin requires copy and pasting between 6 terminals. Using the browser proxy (which will soon be the only way) requires copy and pasting between 3 terminals and a browser tab. Once a signalling facilitator is implemented (issue #1) this will become much simpler to use.

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

-- Via WebRTC Server --

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%.
-- Via Browser Proxy --

To connect through the WebRTC browser proxy, first make sure coffeescript is installed. Then, build with:

cd proxy/
cake build

Then start a local http server in the proxy/build/ in any way you like. For instance:

cd build/
python -m http.server

Open a browser tab to 0.0.0.0:8000/snowflake.html. Input your desired relay address, or nothing/gibberish, which will cause snowflake to just 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.
  • Once WebRTC successfully connects, the browser terminal should turn green. Shortly after, the tor client should bootstrap to 100%.

More

More documentation on the way.