# \[tor-project\] Snowflake relays

**URL:** https://forum.torproject.org/t/tor-project-snowflake-relays/21506
**Category:** tor-project
**Tags:** snowflake, tor-browser
**Created:** [April 24, 2026, 12:32pm UTC](https://forum.torproject.org/t/tor-project-snowflake-relays/21506 "2026-04-24T12:32:30Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Q\_Misell](https://forum.torproject.org/letter_avatar_proxy/v4/letter/q/82dd89/32.png) [@Q\_Misell](https://forum.torproject.org/u/Q_Misell)
#### Post date: [April 24, 2026, 12:32pm UTC](https://forum.torproject.org/t/tor-project-snowflake-relays/21506/1 "2026-04-24T12:32:30Z")

</div>

Hi all,

Whilst working on a project the thought crossed my mind that it would be useful to me (the exact reasons as to why aren’t relevant here) for a web browser to be able to run a Tor client entirely in the browser, that is using a wasm build of Arti or my own Torrosion library. Obviously, a browser can’t just go start making random outbound TCP connections, for good reasons. But what a browser can do is make outbound WebRTC and WebSocket connections, which brought me to Snowflake.

At least in most situations, I would have no need for the whole WebRTC infrastructure of Snowflake, as the browser is not _usually_ restricted from making a WebSocket connection. So, naturally I looked at the Snowflake source code to see how one would implement that, to discover some things I’m a little confused by. Firstly, the Tor node that the broker hands out seems to be a) hard coded and b) just the one ([https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/main/broker/broker.go?ref\_type=heads#L75](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/main/broker/broker.go?ref_type=heads#L75)). Secondly, the number of active relays offering WebSocket connections are a grand total of 4 ([https://metrics.torproject.org/rs.html#search/transport:snowflake?fields=transports](https://metrics.torproject.org/rs.html#search/transport:snowflake?fields=transports)).

Therefore, my question to those more knowledgeable is: why is this situation considered acceptable? Why is such relay centralisation fine? Is it even fine?

Mit freundlichen Grüßen,  
Q Misell (sie/ihr - she/her)

🌲 Please consider the environment before using AI to process this email.

> **···**
>
> –
> 
> Max-Planck Institut für Informatik  
> Fon +49 681 9325 3547  
> Forschungsgruppe Internet Architecture (INET)  
> Campus E1.4 514, 66123 Saarbrücken
