Part 1 - Tor and nyx
N.B. This guide will enable the user to effectively run 2 versions of Tor on a single Linux desktop i.e. the Tor expert bundle (for Zcash) and the Tor Browser Bundle for browsing!
First we will install Tor (the expert bundle) and nyx.
EDIT: Arm is now nyx ! See: https://nyx.torproject.org/
Open a new Terminal
Ctrl + alt + T
sudo apt-get update
sudo apt-get dist-upgrade
Restart your system if necessary.
Add the correct package repository before you can fetch Tor. N.B. The provided example is for Ubuntu Trusty Tahr. You must add the correct package for your distribution from here:
echo 'deb http://deb.torproject.org/torproject.org trusty main' | sudo tee -a /etc/apt/sources.list.d/torproject.list
Then add the gpg key used to sign the packages by running the following commands at your command prompt:
gpg --keyserver keys.gnupg.net --recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
gpg --keyserver keyserver.ubuntu.com --recv 886DDD89
Export and add the key:
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
Now update (again). However, this time you will see deb.torproject.org get ‘pinged’ a few times.
sudo apt-get update
sudo apt-get install tor
We need to stop Tor to configure our torrc correctly.
sudo service tor stop
The Tor Project provides a keyring to ensure that everything is kept up-to-date. Lets install it.
sudo apt-get install deb.torproject.org-keyring
Now lets install nyx (our Tor cli controller) and confirm some extra Tor (related) packages for Zcash use.
sudo apt-get install tor-geoipdb apparmor-utils torsocks
EDIT: See (updated post below) :
We can now edit our torrc file for Zcash client use.
sudo nano /etc/tor/torrc
If you have never read the ‘default’ torrc then this would be a good opportunity to do just that. However, lets delete the example torrc by pressing and holding;
Ctrl + K
Now we can copy/paste our new Zcash on Tor (torrc) settings;
ClientOnly 1 SOCKSPort 9050 SOCKSPolicy accept 127.0.0.1/8 Log notice file /var/log/tor/notices.log ControlPort 9051 HiddenServiceStatistics 0 ORPort 9001 LongLivedPorts 21,22,706,1863,5050,5190,5222,5223,6523,6667,6697,8300,8233 ExitPolicy reject *:* DisableDebuggerAttachment 0
Note that LongLivedPorts are the ‘default’ Tor settings + the Zcash P2P port. This is because not having the default ports listed might make our client stand out!
To save the new torrc;
Ctrl + X
and press the enter key i.e. File Name to Write: /etc/tor/torrc - is correct.
Now we can start Tor and run nyx (cli):
sudo service tor start
sudo -H -u debian-tor nyx
We can navigate nyx with our arrow keys. Pressing M will show the menu. Q Q to quit. R to reconnect etc., Note that Tor can also be stopped or restarted via the nyx menu.
At this juncture you can download and run the Tor Browser Bundle (for browsing separately)
You effectively have 2 versions of Tor running, again one for Zcash P2P and the other for secure Tor browsing. Note that;
TBB uses SOCKSPort = 9150 and ControlPort = 9151 (technically)
Tor Expert Bundle uses SOCKSPort = 9050 and ControlPort = 9051
Thus, Zcash on Tor will be configured to use port 9050 - keeping all of your Zcash on Tor P2P traffic entirely separate from your Tor browsing activities.
Is this really necessary? Yes … https://youtu.be/xGIE7KTJiBY?t=1h1m42s