Merry Christmas Eve, everyone! I wanted to run the Nu client in Tails – the privacy centered OS that routes all traffic through Tor. There was an earlier post pointing out that it doesn’t work:
The bad news: this is still the case: the binary executable won’t work. Trying to compile it myself also didn’t work at first. The good news? After deleting code related to datafeeds, it does compile and produce an executable that can be run under Tails. I’ll describe how I did it in case someone else wants to do this too.
You’ll need to have root access to install what’s needed to build it. After building it, you can reboot in Tails without root access to run it. For now I’ll assume you can sudo.
Step 1. Download the linux Nu 2.0.3 and extract the source code.
Step 2. Install the packages you need.
sudo apt-get update
sudo apt-get install qt4-qmake libqt4-dev build-essential libboost-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libssl-dev libdb5.1++-dev build-essential libssl-dev libboost-all-dev libqrencode-dev libminiupnpc-dev qt4-qmake libqt4-dev build-essential libboost-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libssl-dev
Step 3. Delete datafeeds related code.
In Makefile just search for any dependency or target that has the phrase “datafeed” as part of the name and delete it.
The following files in src and src/qt must be modified:
init.cpp : delete lines with “curl” in them.
main.cpp : delete the four lines starting with "if (strDataFeedError != “”)"
bitcoinrpc.cpp : delete all code related to “setvote” “setdatafeed” and "getdatafeed"
net.cpp : delete the line "StartUpdateFromDataFeed();"
bitcoingui.cpp : delete code related to votePage and gotoVotePage
bitcoingui.h : delete code related to votePage and gotoVotePage
votepage.cpp : delete code mentioning "datafeed"
votepage.h : delete line "void on_dataFeedButton_clicked();"
walletmodel.cpp : delete code mentioning “datafeed”
Step 4. Compile a version that doesn’t need the dependencies.
qmake "RELEASE=1"
make
This should make an executable called “nu” which can be run in the future with a fresh Tails. You should copy this somewhere, like a flash drive at /media/nuflash. Later you can start it in a fresh Tails like:
/media/nuflash/nu -datadir=/media/nuflash/.nu -proxy=127.0.0.1:9050
Hope this helps someone. I’m not sure what effect deleting the datafeed related code has, but it is able to keep up with the block chain and send transactions. That’s good enough for me.
Someone might advise that there’s an easier way, but until then at least there is some way.