Please Update your Snowflake Proxy to help us rollout Distributed Snowflake Server Support

At Tor, we are constantly trying to improve Snowflake to make it accessible to more people. This means we are currently working on enabling horizontal scaling of Snowflake to distribute the traffic to more than one server. After this update is roll outed, users will be able to choose one of the secondary snowflake servers as the connection target and reduce the traffic load on the default server.

However, this change requires an updated version of the snowflake to be rolled out. This means this change is not live until enough proxies are updated to the most recent version and after we start to reject the previous version of snowflake proxies.

For this reason, we would like to request you to update the version of your snowflake proxy, if you haven’t done that yet.

Here are some guides on how to check the version and/or update the most recent version of snowflake:

WebExtension on Firefox

To check the version:

go to about:addons.

Click the 3 dot symbol on the right of Snowflake, and then select manage.

you will be able to check the version of Snowflake. It should be 0.6.1.

To update:

Click the gear symbol on the top of the page, and then select check for updates.

WebExtension on Chrome

To check the version:

go to chrome://extensions/?id=mafpmfcccpbjnhfhjnllmmalhifmlcie, and you will see the option to update the snowflake WebExtension. It should be 0.6.1.

To update:

go to chrome://extensions/ turn on developer mode and then select update.

Standalone with Docker

To check the version:

docker run thetorproject/snowflake-proxy -h

should include “-allowed-relay-hostname-pattern” in the output.

To update:

docker pull thetorproject/snowflake-proxy

Standalone with Go Toolchain

To check the version:

proxy -h

should include “-allowed-relay-hostname-pattern” in the output.

To update:

go install git.torproject.org/pluggable-transports/snowflake.git/v2/proxy@latest

(Edit: use -h to check accepted options)

10 Likes

Just to be sure, my Docker container was started four weeks ago and the executable already has the mentioned parameter. Means this version is not brand new but already exists for some time?

Means this version is not brand new but already exists for some time?

Yes the version is being around for some weeks, you are fine :slight_smile:

2 Likes

Hi. So this is version 2.3.0? Running proxy -v and I get “usage of proxy” (all useful things to know) but it wants a definition for the flag (-v). I suspect I’m updated as I ran @latest on July 23 and got 2.3.0 so checking just in case.

···

On Jul 27, 2022, at 9:53 AM, meskio via Tor Project Forum <notifications_at_torproject1_discoursemail_com_7symmg8vsw4428_0a0598b2@icloud.com> wrote:

| meskio
July 27 |

  • | - |

Means this version is not brand new but already exists for some time?

Yes the version is being around for some weeks, you are fine :slight_smile:


Visit Topic or reply to this email to respond.

To unsubscribe from these emails, click here.

I ask because I’m not seeing “-allowed-relay-hostname-pattern” anywhere in the output of “proxy -verbose”

···

On Jul 27, 2022, at 12:55 PM, markcharn3ll@icloud.com wrote:

On Jul 27, 2022, at 9:53 AM, meskio via Tor Project Forum <notifications_at_torproject1_discoursemail_com_7symmg8vsw4428_0a0598b2@icloud.com> wrote:

| meskio
July 27 |

  • | - |

Means this version is not brand new but already exists for some time?

Yes the version is being around for some weeks, you are fine :slight_smile:


Visit Topic or reply to this email to respond.

To unsubscribe from these emails, click here.

For user side testing what can we update our torrc to test this new snowflake bridge? Or would that require updating to a new snowflake binary?

And there should be

  -allowed-relay-hostname-pattern string
        a pattern to specify allowed hostname pattern for relay URL. (default "snowflake.torproject.net$")

Instead of -v you can type -blablabla. Took me a while to understand that error output is exactly what was expected. It is better to have version command implemented.

with git pull and restarting the process is enough?
I saw that now I have de 2.3.0 version
c.

I don’t think one will need a reboot to update the binary. Please try recompile the program and run it and make sure the program you run is one you have compiled.

The current webextension version is: 0.6.2.

$ proxy -h

Usage of ./proxy:
  -allow-non-tls-relay
        allow relay without tls encryption
  -allowed-relay-hostname-pattern string**
        a pattern to specify allowed hostname pattern for relay URL. (default "snowflake.torproject.net$")
  -broker string
        broker URL (default "https://snowflake-broker.torproject.net/")
  -capacity uint
        maximum concurrent clients
  -keep-local-addresses
        keep local LAN address ICE candidates
  -log string
        log filename
  -nat-retest-interval duration
        the time interval in second before NAT type is retested, 0s disables retest. Valid time units are "s", "m", "h".  (default 24h0m0s)
  -relay string
        websocket relay URL (default "wss://snowflake.bamsoftware.com/")
  -stun string
        STUN URL (default "stun:stun.stunprotocol.org:3478")
  -summary-interval duration
        the time interval to output summary, 0s disables summaries. Valid time units are "s", "m", "h".  (default 1h0m0s)
  -unsafe-logging
        prevent logs from being scrubbed
  -verbose
        increase log verbosity
1 Like

(Edit)

Problem solved. $PATH edited to include ~snowflake/proxy. Output of proxy -v now includes allowed-relay-hostname-pattern.

1 Like

Will people with updated standalone proxies need to change their configuration after distributed feature will be enabled?

1 Like

nope (afaik).

2 Likes