Provide an isolate-all-streams convenience API.
On https://forum.zcashcommunity.com/t/arti-a-pure-rust-tor-implementation-for-zcash-and-beyond/38776/55 , Teor says:
A TorClient config that makes sure all connections are isolated
In Zebra, we don’t plan on sending blockchain blocks over Tor, because it’s all public information. So we’ll just be occasionally sending new user-generated transactions over Tor.
So it would be helpful to have a
TorClient
config that guarantees all connections are isolated. It might also save some preemptive circuit load on the network. (Unless all preemptive circuits are guaranteed to be isolated already - I can’t remember.)But I can understand if you don’t want to expose this as a configurable client mode. Because it will place more load on the network.
They're right to be concerned that this is a risky API: turning it on will result in a much higher number of circuits than running without it, and put more load onto the network. When we design this, we should make sure that we explain when you would want to use it, and why you typically wouldn't want to use it. (Maybe it should go behind a feature? Maybe not.)