Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

“Use Direct Connection” Always be 5% #94

Open
rrn21833 opened this issue Oct 5, 2024 · 1 comment
Open

“Use Direct Connection” Always be 5% #94

rrn21833 opened this issue Oct 5, 2024 · 1 comment

Comments

@rrn21833
Copy link

rrn21833 commented Oct 5, 2024

“Use Direct Connection”As the default? It‘s not good.

@tladesignz
Copy link
Collaborator

Unfortunately, it's not just the default, it's the only option now.

Recent developments have forced us to remove all pluggable transports support from Orbot iOS. (The macOS version still has it!)

Why?

  • Apple limits "Network Extensions" (the part of a "VPN" app, where the networking functionality is implemented) to 50 MB of RAM usage. If you use more accidentally, the extension is stopped immediately. This is a ridiculous limit, considering that all devices this app runs on have at least 3 GB (Gigabytes! compared to megabytes!) of RAM, but until now, we where unfortunately unsuccessful in negotiating a higher limit.

  • Tor recently had an update, where they now allow more nodes in one "family". (Nodes are marked with a family to improve the routing algorithm: So it doesn't accidentally choose 3 nodes of the same family, hence keeping the onion routing inside one datacenter and one supplier of nodes.)

  • Since then, nodes almost doubled, hence increasing the amount of data to process about the complete Tor network. (Every client tries to discover the complete network to avoid the need for an intermediary which would then make it easy to attack the network.)

  • This increases RAM usage, hence driving Tor to use too much RAM inside the Network Extension and therefore crashing it.

  • Too much memory usage of Tor alone leads to no room left for Pluggable Transports (aka. bridge type implementations).

  • Since Pluggable Transports are all implemented in Go, and Go has a runtime which always runs, as soon as the Network Extension process is started, they had to be removed completely. Otherwise not enough RAM left...

=> To give users a minimal chance at all and not render this product utterly useless, the only option now is using Tor directly.

This sucks completely, but unfortunately there's no other way besides improving Tor.

And that won't happen, since Tor Project is now in the process of moving to their new implementation called "Arti" (A Rust Tor Implementation).
But Arti currently uses even more RAM than the original Tor written in C. And it will take many more moons until this eventually changes.

In other words: I'm deeply sorry.

You might want to look into Onion Browser, which contains its own Tor now again and doesn't have these problems, but, of course, is only a browser, not a full device traffic sink:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants