Recently, I published an article on CryptoSlate about SubstratumNode v0.4.2, where I performed a series of speed tests to gauge the performance of the network. The technical details about the test were included in an early draft, but were omitted in the final revision due to the lengthiness of the technical jargon. This article is meant to serve as an accompaniment to the CryptoSlate article for people who wish to know more about the test configuration.

Test #1 — 4 Nodes in Singapore

The first test was very straightforward. I set up four DigitalOcean servers in Singapore, installed SubstratumNode v0.4.2, and subverted DNS using the included utility. I then attempted to download files of varying sizes. I found that I was able to download files less than 20MB in size at a decent speed of 500Kb/s without any issues. Files larger than 20MB timed out before download completion. The point of this first test was to prove that SubstratumNode does work, and it does.

Test #2 — 6 Nodes Around the World

The second test used a geographically distributed network of six nodes in Singapore, Bangalore, Frankfurt, New York City, Toronto, and San Francisco.

  • At 00:17, I ran sudo ./dns_utility subvert on our DigitalOcean server in San Francisco to change the server’s DNS to 127.0.0.1. This is the key step to ensure traffic is routed through SubstratumNode.
  • At 00:22, I ran nslookup match_name to show that DNS is resolving to 127.0.0.1.
  • At 00.32, I ran speedtest-cli to perform a speed test through the Substratum network.
  • At 00:48. the speed test resolves to a test server from 207.154.232.137, our DigitalOcean server in Frankfurt, Germany. This demonstrates that our ping request which originated in San Francisco was sent through the Substratum network and exited through our Frankfurt server.
  • At 02:13, the speed test finally returns a result which states Speedtest.net’s Interoute VDC (Frankfurt) server was pinged with a time of 2585.889 ms.
  • At 02:32, the download speed test times out.
  • At 02:48, the upload speed test times out.
  • At 02:58, I ran sudo ./dns_utility revert on my DigitalOcean server in San Francisco to change DNS back to the default setting.
  • At 03:02, I ran nslookup match_name to show that DNS has been reverted.
  • At 03:09, I ran speedtest-cli to demonstrate a speed test without routing through the Substratum network.
  • At 03:10, the speed test resolves quickly to KamaTera INC in Santa Clara, CA — the closest SpeedTest.net test server to our DigitalOcean server in San Francisco.
  • At 03:13, the download/upload speed tests complete quickly with no issues.

Test #3 — SubstratumNode Logging

The final test shows that SubstratumNode still logs data in debug mode when DNS is not subverted. Thus, any legitimate SubstratumNode speed test should explicitly show sudo ./dns_utility subvert (or equivalent process) to confirm that DNS has been subverted.

  • At 00:06, I ran sudo ./dns_utility subvert to change the server’s DNS to 127.0.0.1. This is the key step to ensure traffic is routed through SubstratumNode.
  • At 00:14, I ran sudo ./SubstratumNode --dns_servers 1.1.1.1 --ip 159.89.159.226 --port_count 1 --log_level debug --bootstrap_from Tq3SKpuaMdZ4OgovfhbaqrdpO75kBZ9HgmfTnkvqIU0:128.199.238.104:50098 to connect SubstratumNode to our neighborhood in debug mode.
  • At 00:24, I ran clear to remove the debug log from the window.
  • At 00.28, I ran sudo ./dns_utility subvert followed by sudo ./dns_utility revert to switch DNS servers back to the default setting. This is followed by nslookup match_name to prove that the DNS servers have been restored to the default setting.
  • At 00:44, I started SubstratumNode once again with the previous command. As you can see, the debug log printed even though DNS was not subverted.
  • At 00:53, I run wget https://brianli.com/favicon.ico to download a small image file. As expected, the download finishes very quickly because I are NOT connected to the Substratum network despite the debug log continuing to print new data.
  • At 01:02, I ran curl https://cryptoslate.com to request HTTP headers. Once again, the response was almost instantaneous because I were not connected to the Substratum network.
  • At 01:26, I ran sudo ./dns_utility subvert once again to connect to the Substratum network.
  • At 01:32, I ran wget https://brianli.com/favicon.ico. Notice the difference in speed this time around. Since I are connected to the Substratum network this time, the download takes ~18 seconds.