Snowflake in action

Operation of snowflake proxies with the standalone version in numbers

Daily bits of entropy of the Tor network’s shared random value protocol. Code developed by Alexander Færøy

Snowflake bridges or proxies allow you to connect to the Tor network when it is blocked. This type of bridge adds to the alternatives and anti-censorship efforts of Pluggable Transports (PTs) such as obfs4 and meek-azure.

Snowflake proxies are operated by volunteers around the world, as with the other types of Tor network nodes.

There are three methods by which you can participate in the operation of snowflake proxies: in-browser extension, in a browser where WebRTC is enabled and via the standalone version.

The standalone version allows the installation of servers that function as snowflake proxies.

Statistical data on hardware resource usage and bandwidth consumption for four snowflake proxies are reported below.

Hardware and software features

For the operation of the snowflake proxies, 4 virtual machines with Xen paravirtualization and Debian 10 operating system were installed. Deployment was performed with the snowflake ansible role.

NombreHardware
snow1Memoria ram: 3072 MiB
Procesador: 2 núcleos
Disco duro: 10 GiB
snow2Memoria ram: 1024 MiB
Procesador: 1 núcleo
Disco duro: 10 GiB
snow3Memoria ram: 512 MiB
Nucleo: 1 núcleo
Disco duro: 10 GiB
snow4Memoria ram: 512 MiB
Nucleo: 1 núcleo
Disco duro: 10 GiB

Bandwidth results

As a result of the calculation and registration with vnstat, we had the following results for the months of May and June.

NombreMensualTotalVelocidad promedio
snow1Mayo – 23.61 GiB
Junio – 13.92 GiB
48.84 GiBMayo – 75.73 kbit/s
Junio – 72.90 kbit/s
snow2Mayo – 22.19 GiB
Junio – 10.51 GiB
36.73 GiBMayo – 71.15 kbit/s
Junio – 55.06 kbit/s
snow3Mayo – 20.49 GiB
Junio – 6.48 GiB
31.21 GiBMayo – 65.71 kbit/s
Junio – 33.96 kbit/s
snow4Mayo – 15.52 GiB
Junio – 8.44 GiB
28.00 GiBMayo – 49.76 kbit/s
Junio – 44.21 kbit/s

As can be identified in the hardware characteristics there are differences in terms of processing cores and ram memory. Since the intention was to study the performance and performance according to different scenarios. In order to document which hardware can be more useful for the operation of the proxies and characterize the operation of the software on its performance and performance.

To obtain clues about the performance of the snowflake software and its relationship to the 4 scenarios, snow 1, 2, 3 and 4, we incorporated the details of CPU usage and system load during 12 hours of continuous operation into the analysis.

System load

snow 1 – load
snow 2 – load
snow 3 -load
snow 4 – load

CPU Usage

snow 1 – CPU usage
snow 2 – CPU usage
snow 3 – CPU usage
snow 4 – CPU usage

Memory ram usage

snow 1 – ram
snow 2 – ram
snow 3 ram
snow 4 ram

Results

We found that snow2 is the virtual machine that uses the most available hardware resources and is in the second place of bandwidth consumption with 36.73 GiB, after snow1 with 48.84 GiB.

Although there are considerable differences in the hardware configuration between snow 1 and 2, since snow1 has 3G of ram and 2 cores versus 1G and 1 core of snow2, the ratio of CPU consumption stands out. The former is at 20% versus the latter which is at 70%.

Average CPU usage

  • snow1 uses on average 20% of CPU
  • snow2 uses on average 70% of CPU
  • snow3 uses on average 20% of CPU
  • snow4 uses on average 20% of CPU

Average ram memory usage

  • The ram memory usage of snow1 is 538 MiB, in cache 1.3GiB and free 1.1 GiB
  • The ram memory usage of snow2 is 473 MiB, in cache 242MiB and free 276 MiB
  • The ram memory usage of snow3 is 364 MiB, in cache 95MiB and free 28MiB

Preliminarily it is identified that the snow 2 hardware configuration is the one that has the best results in relation to its performance and throughput. It delivers the highest amount of bandwidth on the lowest hardware (processing cores and ram memory).

So the snow2 hardware scenario is a good candidate for further analysis in the future, with intermediate scenarios between snow 2 and 1, to identify which hardware features are most ideal in terms of performance and throughput. As well as an understanding and characterization of the snowflake software workload.

The statistical results were shared with the anti-censorship team of the Tor project, the group of people focused on making Tor accessible anywhere in the world, who develop the snowflake software. Within the team, developer meskio highlighted snow2’s ram memory as a relevant aspect of analysis.

References

Hashvis, A Rust application for deterministic generation of images

Snowflake in action, raw metrics