Gridcoin wallet 3.7.8 status & compiling on Raspberry Pi

in #gridcoin2 years ago (edited)

Hello all!

I decided to write a small post about my new 3.7.8 experiences, because I've been waiting this update for a long time. :)

All of the below mentioned versions are the headless daemons, not the GUI wallets.

TL;DR - Most of this post is about compiling the daemon on Raspberry Pi, and some extra unuseful infos :D

First I installed the new freshy daemon from PPA on my Ubuntu 14.04 server, which was (magically) working fine during the whole forksplosion with 3.7.7.
Nothing special happened, it worked as expected.

Then came the interesting part. I was curious what will the new version do with my Ubuntu 16.04 server, which already had 3.7.7 installed...

I've tried to fix its forking issues several times before. Syncing from block 0, syncing from snapshot, copying the whole blockchain from the 14.04 machine, add the 14.04 as a node in config...
And after a day it was on a fork again... And again... :D

Finally I gave up, and decided to stop playing with this, because I didn't want to become a fulltime forkaholic. :)

And then, the magic happened! I've upgraded it to 3.7.8 and it resynced my blockchain to the right fork in minutes!!!

WOW! Nice!

It worked like a charm ^_^

I was excited, so I've decided to upgrade my working, synced 3.7.7 Raspberry Pi wallet too...

Hmm... It wasn't a good idea, because meanwhile I've forgotten that I had issues with the PPA version previously.
This Pi is running Ubuntu Mate 16.04 and I absolutely don't know why it doesn't like the version downloaded from PPA...

The daemon crashes when it tries to load the wallet.

I had no more options than compiling it from source. Previously it wasn't an easy ride, because my OS was missing some required dependent libraries. (Of course now I don't remember which ones were missing...)
But as we know Google is our friend, so searching for the error messages always gives some directions to those who are as noobs as me :D

But finally I've got a gridcoinresearchd binary! I've started it, aaaaaand...

Crashed again... OMG :/

After some googling I've found the ultimate solution which fixed it.

Let's see the instructions from http://wiki.gridcoin.us/Linux_guide :
(Please check first the dependencies section there)

cd ~
git clone https://github.com/gridcoin/Gridcoin-Research
cd ~/Gridcoin-Research
git fetch --all
git reset --hard origin/master
cd ~/Gridcoin-Research/src
mkdir -p obj/zerocoin && chmod +x leveldb/build_detect_platform
make -f makefile.unix clean

And then, stop here for a moment.

Let's change the makefile.unix file:

nano makefile.unix

And search this row:

xCXXFLAGS = -O2 $(EXT_OPTIONS) -std=c++11 -pthread -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter \
    $(DEBUGFLAGS) $(DEFS) $(HARDENING) $(CXXFLAGS)

Delete the -O2 from there then save the file with CTRL-O, and exit from editor with CTRL-X.

Now you can compile your new Gridcoin daemon:

make -f makefile.unix USE_UPNP=-

If you still have some weird errors during complie, it's possible you don't have enough RAM. To free up some, I must terminate the whole graphical interface, with this command: (Xubuntu Mate with Xfce)

sudo service lightdm stop

And if everything is fine, then install the compiled binary:

strip gridcoinresearchd
sudo install -m 755 gridcoinresearchd /usr/bin/gridcoinresearchd

Aaaand... Finally it works well. Synced, stable, everything is fine.

I absolutely don't know what does this -O2 mean, because I'm not a C++ expert, and of course I was too lazy to google it. I've found this on some forum, where a guy suggested it. And it worked. :)

\o/

I hope this post can help those Pi guys out there who are so enthusiastic to use it as a Gridcoin wallet.

Sort:  

This post was upvoted by Steemgridcoin with the aim of promoting discussions surrounding Gridcoin and scientific endeavors.

This service is free. If you want to help the initiative, feel free to upvote this comment.

Have a nice day.

Disclaimer: This account was created by @Ragnarokdel and is not associated in any shape or form with the official gridcoin devs team.

-O2 is optimization level. For nano you can quickly replace it wit ^W^R-O2^M-O0 -g^Ma, the fact that it does not work with -O2 is a bug in gridcoin, by turning off optimizations, the bug was not triggered. See and please post your findings to Wallet crash on raspberry pi Issue.

Thank you very much @tomasbrod ! This was the discussion what I mentioned in my post :)