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 -v

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 -v

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

To update:

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

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.

Do pardon me for being unclear with my previous question @shelikhoo, @meskio. When I run proxy -v I do not see “-allowed-relay-hostname-pattern” in the output. I am running 2.3.0 (with my home folder as GOPATH where I see v 2.3.0 deep in the folder) and despite running the update command I still don’t see that usage in the output. One possible problem is that snowflake is running on a remote computer which I can’t reboot without loosing the VNC connection. I suspect a reboot might be necessary to get the proxy to update properly as I have observed in the past that running the update after a reboot gives me the full output of the installation process, whereas running it without a prior reboot doesn’t give me that output (it just starts up the proxy) which perhaps means it is using the cached version. Does the requirement for a reboot seem plausible? Yes, I’m trying to avoid going over there to reboot :wink: Thanks very much :slight_smile: (MacOS using zsh)

| Shelikhoo
July 27 |

  • | - |

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 -v

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 -v

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

To update:

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

···

On Jul 27, 2022, at 6:50 AM, Shelikhoo via Tor Project Forum <notifications_at_torproject1_discoursemail_com_7symmg8vsw4428_0a0598b2@icloud.com> wrote:


Visit Topic or reply to this email to respond.

To unsubscribe from these emails, click here.

1 Like

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.

Thanks @Shelikhoo. That was a weird brain-fade on the reboot :roll_eyes:. Here’s what I’ve done. I deleted the go folder and the snowflake folder from my user folder, then I recompiled the program and ran ‘proxy -verbose’ from the program (proxy). It appears to run properly but I should check with you and see that it installed properly as I still don’t get the expected output from ‘proxy -v’. I now have two folders at the top level of my user folder, Go and Snowflake. My gopath is users>jmc>go. Should I move the Snowflake folder into that Go folder? And, if so, where in the path? I have yet to run ‘go get…@latest’ partly because I’m not sure if I should also run it from the program. I’m not sure I’d need to do that as I’ve just done a fresh install. Attached is a screenshot of the output of proxy -v.
Thanks for your help :slight_smile:.
Screen Shot 11

So I ran @latest. Here’s the path and contents of the go folder:


And here’s the content of the snowflake folder:

The difference is file permissions. The files in the go folder are read only and the files in the snowflake folder are read/write. Should I swap those files in the snowflake folder into the go folder?