First
sudo apt-get remove libdb5.1++-dev
Or whatever is needed to remove libdb5.1.
Then follow the guide to compile libdb4.8.
Then compile Nu wallet using libdb4.8.
I followed your guide all the way up to
make -f makefile.unix
and it gives me this error:
root@amnesia:/home/amnesia/Persistent/nubits/src# make -f makefile.unix
make: makefile.unix: No such file or directory
make: *** No rule to make target `makefile.unix’. Stop.
But i had to skip the nubits download section because i already downloaded it and did alot of editing to all the files to get it to work in the first place. I did try to make it with the makefile i previously had but it threw an error so i deleted it figuring it was based off the old dependecies. Then i tried using
qmake “RELEASE=1”
but it says command not found.
That’s strange.
https://bitbucket.org/JordanLeePeershares/nubit/src/6fe88883f316b1ff3448d52438e9d122f808da51/src/?at=master clearly contains makefile.unix
:
https://bitbucket.org/JordanLeePeershares/nubit/src/6fe88883f316b1ff3448d52438e9d122f808da51/src/makefile.unix?at=master
i do have a makefile but its in /src/src, im trying to build from the /src directory and its looking for it in there i guess, thats how i had to do it before. Should i move it?
That’s strange. The repo has no src/src directory…
I guess downloading a fresh version from https://bitbucket.org/JordanLeePeershares/nubit/get/6fe88883f316.zip doesn’t sound very well, because of the extensive editing you had to do.
Moving makefile.unix from src/src to src shouldn’t hurt. I hope that’s all then…
I wonder how you compiled the version you currently have.
In the official 2.0.3 wallet there is a source folder which has nubit.tar.gz which extracts to the source files which also have another src folder in it.
I copied makefile.unix in the main directory, now it gives
root@amnesia:/home/amnesia/Persistent/nubits/src# make -f makefile.unix
make: *** No rule to make targetobj/scanbalance.o', needed by
nud’. Stop.
Maybe if there was an equivalent of qmake that your listed dependencies would allow me to run it would resolve itself?
Ok. If you use the source code that comes along with a compiled version of the wallet software, then you have to do the compiling in that folder.
Please move makrfile.unix to src/src, change into that directory and compile in there with the same command you compiled the wallet the first time.
Compiling libdb4.8 worked according to the guide?
Ouch, ok that worked and it hijacked my computer and gave me this error:
error writing to /tmp/ccDo6Y3g.s: No space left on device
compilation terminated.
Yes the lib4.8 compile worked just fine, the only thing that didnt work was creating a swapfile which is probably why this didnt work. Tails is a live OS, it doesnt have a swapfile, everything is done in ram, it has persistence but no tmp-like swap files are written to it, this is done for security reasons and because its usually run on a flash drive and swap would destroy it.
Is there some way to get this to compile in ram?
I looked into setting up a ramdisk but i dont think tails would allow that. There arent any options in make to change where the tmp files are stored else i could create a tmp swap in my persistent drive, and the mkswap command doesnt list any options to relocate the swap directory, at least when i try it i get “amensia/home is a directory” and it doesnt create anything, ‘Swapon’ doesnt show anything either and despite issuing those commands it still tries to create files in the locked /tmp directory.
So unless you know how to change the directory from /tmp to somewhere else during compiling short of downloading and installing an entirely new OS i dont see how to make this work, which is absurd as i just compiled it successfully without it trying to store files in locked directories.
Why again cant i use the command qmake with these dependecies?
Do you think an alternative tmpdir can be set via environment variables?
I’ve never used qmake as I always only compiled nud (command line only daemon) on my RaspberrPi. That was possible with 512 MB RAM. With the RaspberryPi2 I’ve successfully compiled nud 2.0.3 using make with 1 GB RAM.
But I have no experience with qmake. Maybe that needs more RAM to build an executable.
Can you limit the number of threads when compiling with qmake (in case qmake uses more than one thread - I don’t know how to do that, though)?
Have you considered using make instead of qmake to compile nud instead of nu-qt?
I’m still not sure that it’s really related to the libdb version, although that is my best bet.
Wanna try compiling nud (make -f makefile.unix using the correct libdb version) just to find out whether the dat files I’ve uploaded work?
The original libraries were:
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 libboost-all-dev libqrencode-dev libminiupnpc-dev
and your libraries are
sudo apt-get install checkinstall subversion git git-core build-essential libssl-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libcurl4-openssl-dev libminiupnpc-dev
Looking closer i saw that qmake was an additional library so i retried it with that and it allowed me to generate my own build files, however this time it would not make, throwing some error about something missing, which i suppose is better than complaing about not having enough space and not giving me the option to give it that space.
I dont know what to do now, none of this stuff works. The code i have i know works but you say i need an older database so suddenly trying to use that older database breaks everything else.
edit: removed reundant code posted in other thread
Maybe your code only works on the raspberry pi, since the original code worked just fine except for having the wrong db version i went ahead and tried it but with your db install code, however during it i found that the db did not install correctly. After using your first block of code for it:
cd ~/
wget http://download.oracle.com/berkeley-db/db-4.8.30.tar.gz
tar xvf db-4.8.30.tar.gz
cd ~/db-4.8.30/build_unix
…/dist/configure --enable-cxx
make
I did the next block
root@amnesia:~/db-4.8.30/build_unix# sudo make install
Installing DB include files: /usr/local/BerkeleyDB.4.8/include …
Installing DB library: /usr/local/BerkeleyDB.4.8/lib …
libtool: install: cp -p .libs/libdb-4.8.so /usr/local/BerkeleyDB.4.8/lib/libdb-4.8.so
libtool: install: cp -p .libs/libdb-4.8.lai /usr/local/BerkeleyDB.4.8/lib/libdb-4.8.la
libtool: install: cp -p .libs/libdb_cxx-4.8.so /usr/local/BerkeleyDB.4.8/lib/libdb_cxx-4.8.so
libtool: install: cp -p .libs/libdb_cxx-4.8.lai /usr/local/BerkeleyDB.4.8/lib/libdb_cxx-4.8.la
libtool: install: cp -p .libs/libdb-4.8.a /usr/local/BerkeleyDB.4.8/lib/libdb-4.8.a
libtool: install: chmod 644 /usr/local/BerkeleyDB.4.8/lib/libdb-4.8.a
libtool: install: ranlib /usr/local/BerkeleyDB.4.8/lib/libdb-4.8.a
ranlib: /usr/local/BerkeleyDB.4.8/lib/libdb-4.8.a: No space left on device
make: *** [install_lib] Error 1
edit: nevermind the error is true, all this crud ive been downloading has eaten up all my space, maybe this will work…
edit; nope. Tails system partition is only large enough to fit its own files. This berkekly package, because its not part of the apt-get repo it wants to install itself elsewhere where theres no room. So in short the old db that nubits client requires wont install on tails therefore the only way to proceed is to download and install linux and try it on there. Wonderful.
I’m sorry for that.
AHA! figured it out, the problem was that i downloaded some brokenass blockchain files from some rando off the internet and they didnt work!
Same exact hashes so cant blame it on bad download
blk0001.dat
MD5 Checksum: FEF394794F9FCF99A7BEFFB508BC7331
SHA-1 Checksum: F40A076234E7B842FD5FFFB2CCCA7DA8C644DF9D
SHA-256 Checksum: 8178F18F736E6D89DE3929A69321D3A940A1DF506AC922C86936085DE70834B4
SHA-512 Checksum: 5FFC82AC4399A5416DF05D535E7A947C707D8DC2A7BFB00A39658D61082498300AC255F62DAF67808717E1525978C65B06A1F22365E399DC8EBCBA89BB7EF83C
blkindex.dat
MD5 Checksum: E5E31048E9E92246625920766C977982
SHA-1 Checksum: 49660D1054644CDF5CEAAE4D7A2984561124125F
SHA-256 Checksum: 7AEDD4101D332D3235A3124AA19AEFC76383553BF0B874544A28BCABE69A166D
SHA-512 Checksum: 24B61961313E75E3486E89FAA91D1BA677A8D976F5798000ECAACCA09B32B13E2C045C5B17C01F9700D357AD1A769583BC357C919B339E678AFE83F772BC6549
I took my original painfully downloaded blockchain files and dropped it into my running version of windows nubits, works! Then i took the blockchain files that i had started on windows and dropped them into my compiled nubits data folder, worked!
So the trick then is because nubits hates anonymity networks and secure OS’s, to download over clearnet using windows then mount your windows drive and pull the blockchain files into Tails.
So the blockchain files I uploaded didn’t work?
I replaced the windows ones with your blockchain and the windows client threw the same error. It must be specific to your db version but apparently 5.1 is what the reference version uses. Thanks for helping anyways but its apparent that nuclient’s networking functions are poorly coded and cant handle tor connections so the only way to do this is to download with a static ip over clearnet. I suppose if windows users still want privacy they can replace the wallet.dat files and turn on tor proxying after updating the blockchain but that is easy to screw up.
Nope, nevermind that didnt work, i imported the windows blockchain at 50% and it worked and then i tried it again at 100% and it gave the same error. So its not a version to version error. I really dont know, but i bet if i spend a month downloading the entire thing on tails once it gets to a certain size it will give the error.
Its a shame the client for nubits is so poorly coded i really wanted to use this but theres no way to use it except on insecure OS’s.
It seems to be connected to my issue last year. Nu 2.0 qt won't boot up
I wish we could hire another developer to fix this kind of issue.