This is based off discussion here: #86 (comment)
Essentially, we have icons that are indicators of current node connections (Proxy, Tor), but no switch/checkbox in the GUI saying “set up and keep my connections secured this way permanently”.
We have some settings exposed to the GUI, and I think we should expose more, but I also think we should offer sort of ‘bundled’ options. For example:
There’s no onlynet=onion
button. And there’s only a Allow incoming connections
button. IMO, there should be something that says, Set all Connections Through Tor
. And sets onlynet=onion
listen=0
listenonion=1
. However, a user needs to set up a HS first to be able to do this, so if getnetworkinfo
doesn’t detect a local address, this should be unable to be selected. And there can be a ’learn more’ or ‘help’ button, which directs to the Tor docs (which I know people are working on) (https://github.com/bitcoin/bitcoin/pull/19961).
So, this would still allow any user to set up any configuration they like, but allows for users to properly configure more popular/usual configurations.
We might need to have a security discussion, on the risks of encouraging large parts of the userbase to only have Tor connections, and if that increases risks to partitioning the network.
But there are other setups as well I can think of.
If there is no HS, a user might want to set up a Proxy. Right now, setting up a proxy is a bit buggy through the GUI.
Checking “Connect through SOCKS5 proxy” doesn’t uncheck “Allow incoming connections”. But I know setting proxy
in bitcoin.conf by default sets listen=0
. So is listening not actually being disabled when set through the GUI, or is this just a GUI bug?
If a user has a HS, and wants to turn on the proxy, currently clearnet incoming connections would be made, IIUC. This is because with proxy=127.0.0.1:9050
and listen=1
, outgoing connections will be made to HS’s and through the proxy to all node types. Incoming connections will be to the HS and clearnet. This could be, of course, what the user wants. But only withbind=127.0.0.1
will there be no clearnet incoming connections. I could see a user trying to set up as private a node as possible, setting up a HS, and clicking ‘Proxy’ in the settings, not knowing what they are doing - which would actually open up clearnet connections. Should there be another ‘bundled’ setting option? - Maybe something like “Tor & Proxy; No Clearnet”?
All these options are definitely complicated from a user interaction POV, and hopefully there’s a way to integrate it all that makes it more digestible. Maybe a ‘Default Connections Settings’ section with the checkboxes “Tor Only”, “Proxy”, etc, and then below you can see what it is doing when it is checking/filling in the more detailed individual settings (Like how checking ‘default proxy’ works now).
Or perhaps it can be of a future version on the Onboarding Wizard (#81 ) Bosch is working on (something like, what kind of outgoing connections would you like to have? What kind of incoming connections)?
Open to suggestions!