Bro, the Upgrade was a Decade Ago
Many developers can be reckless with API calls, because with stable connections and global CDN servers, the difference between proper design, and complete negligence, can be in milliseconds. So it's not even worth the effort for most corporate developers to even learn.
This is why despite the HTTP protocol being upgraded over a decade ago to HTTP2, the vast majority of Python tutorials still teach the requests library, which only has HTTP/1. And despite HTTP2's proven speed advantage for client re-use, most mobile apps using Flutter continue to erode that edge with the defaults of HTTP1.
Then because web bloat has become the accepted standard, everyone has to use a CDN, to pass all data to the same centralized mega-corporations, which break SSL through the fundamental nature of CDNs. So as an end-user, you have to accept snail speeds, or totalitarian privacy-invasion.
But what if it wasn't a stable connection? What if there was no Cloudflare? Most of our users are using Tor, plus a base-layer VPN, with crappy internet to begin with. But they still expect fast performance, so what can they do?
Even worse, the Tor developers kill adoption with their own policies. Their STEM library is garbage for receiving errors on bootstrap. It's a blackbox that gives no feedback, yet they’ve created pointless permission problems by restricting third party apps from creating Tor sessions on a given config, by default on most Linux distros. Yet when Tor browser itself is open, it can start the config, and then you can bind to it. So what is the purpose of restricting it, if when the primary use-case is open, that restriction is often gone.
Then Tor dev negligence is compounded by PySocks dev negligence, where even after decades of IPv6 being around, PySocks doesn't support it. And the STEM library docs don’t want to mention how to disable IPv6, their attitude is go read it on your own.
This combo is lethal, of black box swallowed errors, pointless permission problems, IPv6 errors, all combined with crappy library support. How can any privacy project succeed? Most don't, and that's why you see Cloudflare used even for Monero wallet APIs. Each party points the finger at the other, nobody takes responsibility for anything.
Now you have context to understand this 2-7-7 upgrade. I've been digging away for months to learn this, and today we are proud to roll out the upgrade:
Today's upgrade:
-Ditching HTTP1 for HTTP2
-Ditching Python requests for HTTPx
-HTTPx client re-use throughout the project. Way beyond simple for loops, but an entire infrastructure for persistent proxied connections.
-Ditched STEM for a Custom Tor Bootstrap with error detection for a variety of issues.
-It creates a custom HTTPx client to resolve DNS and verify SSL when Tor node DNS is blocked.
-Solved async over Tor. Now it grinds out concurrent requests
-Transitioned the database endpoints to reduce the quantity of API calls made
-Elaborate sync tracker to reduce API calls when nothing changed
With all these changes combined, we've smashed sync time from over 15 seconds, to under 5 seconds (depending on your connection.)
Although this may seem like a lot of technical complexity, I am on a simple mission. To make privacy so convenient, that you say "why not".
version 2.7.7 sha256sum:
3302a8a736141f2ca7322f16003c59640d2932db8bad530aae9b328f9c70c680
hydraveil.net
Many developers can be reckless with API calls, because with stable connections and global CDN servers, the difference between proper design, and complete negligence, can be in milliseconds. So it's not even worth the effort for most corporate developers to even learn.
This is why despite the HTTP protocol being upgraded over a decade ago to HTTP2, the vast majority of Python tutorials still teach the requests library, which only has HTTP/1. And despite HTTP2's proven speed advantage for client re-use, most mobile apps using Flutter continue to erode that edge with the defaults of HTTP1.
Then because web bloat has become the accepted standard, everyone has to use a CDN, to pass all data to the same centralized mega-corporations, which break SSL through the fundamental nature of CDNs. So as an end-user, you have to accept snail speeds, or totalitarian privacy-invasion.
But what if it wasn't a stable connection? What if there was no Cloudflare? Most of our users are using Tor, plus a base-layer VPN, with crappy internet to begin with. But they still expect fast performance, so what can they do?
Even worse, the Tor developers kill adoption with their own policies. Their STEM library is garbage for receiving errors on bootstrap. It's a blackbox that gives no feedback, yet they’ve created pointless permission problems by restricting third party apps from creating Tor sessions on a given config, by default on most Linux distros. Yet when Tor browser itself is open, it can start the config, and then you can bind to it. So what is the purpose of restricting it, if when the primary use-case is open, that restriction is often gone.
Then Tor dev negligence is compounded by PySocks dev negligence, where even after decades of IPv6 being around, PySocks doesn't support it. And the STEM library docs don’t want to mention how to disable IPv6, their attitude is go read it on your own.
This combo is lethal, of black box swallowed errors, pointless permission problems, IPv6 errors, all combined with crappy library support. How can any privacy project succeed? Most don't, and that's why you see Cloudflare used even for Monero wallet APIs. Each party points the finger at the other, nobody takes responsibility for anything.
Now you have context to understand this 2-7-7 upgrade. I've been digging away for months to learn this, and today we are proud to roll out the upgrade:
Today's upgrade:
-Ditching HTTP1 for HTTP2
-Ditching Python requests for HTTPx
-HTTPx client re-use throughout the project. Way beyond simple for loops, but an entire infrastructure for persistent proxied connections.
-Ditched STEM for a Custom Tor Bootstrap with error detection for a variety of issues.
-It creates a custom HTTPx client to resolve DNS and verify SSL when Tor node DNS is blocked.
-Solved async over Tor. Now it grinds out concurrent requests
-Transitioned the database endpoints to reduce the quantity of API calls made
-Elaborate sync tracker to reduce API calls when nothing changed
With all these changes combined, we've smashed sync time from over 15 seconds, to under 5 seconds (depending on your connection.)
Although this may seem like a lot of technical complexity, I am on a simple mission. To make privacy so convenient, that you say "why not".
version 2.7.7 sha256sum:
3302a8a736141f2ca7322f16003c59640d2932db8bad530aae9b328f9c70c680
hydraveil.net
64❤️2🤙3❤️2👀2🔥2