Let's build a Freedom Node
Recently, I decided to support some of the open-source distributed projects such as Tor, IPFS and Bitcoin. One way of supporting them would be to send some money as a donation, but because I am a hacker with a good Internet connection I decided to build a computer node that will directly contribute to their networks and make them bigger and more robust.
I call it a “Freedom Node”.
I evaluated lot of options and ended up buying the following components from my local computer hardware supplier:
|Barebone PC by Gigabyte||GB-BXBT-1900||$139.99|
|8 GB RAM by Kingston||KVR16LS11/8||$35.38|
|240 GB SSD by Crucial||CT240BX200SSD1||$64.99|
I have decided to go for a solid-state drive option, but you can replace the suggested hard drive with a cheaper rotating disk (option A) or even bigger more expensive solid-state disk (option B):
|A) 750 GB HDD by Western Digital||WD7500BPKX||$58.99|
|B) 480 GB SSD by Crucial||CT480BX200SSD1||$129.99|
The cheapest option is around $235, while the most expensive is around $305.
And this is how it looks! Nice, isn’t it?
It is really small and quiet and it fits anywhere in your appartment or office, so you will completely forget about it.
Now for the software part. I am going to use CentOS, because I am used to RPM distributions, but the process should be similar if you use Debian or Ubuntu.
Let’s download CentOS from https://www.centos.org/download/ and copy the ISO to a USB flash drive.
Follow the installation instructions and install the system.
Add EPEL (Extra Packages) repository by running:
yum install epel-release
- Add Ringing Liberty Bitcoin repository by running:
yum install https://linux.ringingliberty.com/bitcoin/el7/x86_64/bitcoin-release-2-1.noarch.rpm
- Install Tor, Bitcoin and Go language:
yum install tor bitcoin-server golang
(If you want to use Bitcoin XT instead of Bitcoin Core just use
bitcoinxt-server package instead of
bitcoin-server in the line above.)
- Edit the Tor configuration file
/etc/tor/torrcand uncomment the following lines (the first line opens the relay port, the second one enables the directory service, the third one disables the exit node):
ORPort 9001 DirPort 9030 ExitPolicy reject *:*
Also fill in the details on lines with
If you are more adventurous you might skip uncommenting the
ExitPolicy reject line, but I recommend reading something about running an Exit Node first.
- Edit the Bitcoin configuration file
/etc/bitcoin/bitcoin.confand change RPC password to something random:
- Add the following files to your
~/.bashrcfile and relogin:
- Install IPFS and make a symlink to
go get -u github.com/ipfs/go-ipfs/cmd/ipfs ln -s /root/.go/bin/ipfs /usr/bin/ipfs
- Initialize IPFS node:
- Create IPFS systemd service file
/usr/lib/systemd/system/ipfs.serviceand put the following contents in it:
[Unit] Description=IPFS daemon After=network.target [Service] ExecStart=/usr/bin/ipfs daemon Restart=on-failure [Install] WantedBy=multiuser.target
- Run and enable start at boot for all three services using the following commands:
systemctl enable bitcoin systemctl start bitcoin systemctl enable tor systemctl start tor systemctl enable ipfs systemctl start ipfs
- Enjoy and big THANK YOU for your important contribution to these networks!