This guide is going to be aim, for people who are not very well versed on Linux, so those of who you are coming from windows. So it will be guide, how to compile your own wallet in AARCH64 platform. ARM64 name was stolen by Apple, but it's basically same architecture, but with uprising of Single Board Computers, like for example Raspberry PI there is way bigger incentive to make your own stake box at fraction of the price and that one which you are going to have full control. This tutorial is not going to look over, how you make your own Rpi more secure, because if you are interested as you should there are far more articles, about that on the internet for actually knowledgable people. So I will skip this and go straight into tutorial. If you guys going to want to know more about how to maybe your Rpi more secure, if it this get enough tracking, I will post it after I consulted it with my friend, who has a job as security architect on Linux based machines.
Again if you are wanted just a deamon and client, this guide is still legit, but you have to use your own expertise when it comes to Linux.
When it comes to consumed electricity, power draw of RPI is negligible and it's way better than to invest in VPS type of services, especially when security is concerned.
Staking also could bring you, in later stage enough coins for masternode and here you are going to have to use static IP, which could be from ISP or by some tunneling network approach, which comes way about this guide.
Everything surrounds this guide revolves around RPI 4B 4GB (at this points is better to get 8GB), RPI 4 still supports in native for 32GB of cards, so buying bigger card only gives you headache and it's not mandator, since you can plug it in your external HW (watch the power consumption and for this type of application, I would suggest self powered ext-HDD.
For those who are in infancy when it comes to linux, I would strongly suggest sticking with "NOOBS" labeled SD cards and Raspbian and to lesser extend Ubuntu, but that's more demanding system and also not everything could work as intended. So buy your RPI 4B kit, with board, power supply (5V 2amp is going to suffice, but better to invest in 5V and 3amp, due to peripherals. Also I recommend some case with good ventilation, because Rpi4B can get pretty hot.
For this project to work as intended you need to choose coins which has at least Proof-of-Stake consensus or one of the hybrid opens like PoW/PoS or PoS/MN. For this example I chose News24 coins, because this coins fit the criteria.
This guide can be used from any QT wallet on the market
So let's beginning working on it. I am so far in transition period between Linux and Windows so I am only going to be using tools I trust. One tool. AnyDesk. You can just go ahead with custom VNC server or just plain old text SSH, in that case you can kiss the GUI part of the wallet goodbye, but since you have daemon and client as final product of the compiling process, there is not reason why not use it, if you are well versed with command line type of interacting with electronics.
Bear in mind that everything in Linux is case sensitive!
So first one of the most important thing is to obtain Berkeley 4.3db. this piece of code make sure that wallet.dat is going to be portable across the devices and you are not limited to wallet, which can also be use. If you want extra layer of security, you can use any version of Berkeley db but if you are lost access to the running system or executable of wallet shit the bed, you are all out of luck, because this stuff is configured when compiling the wallet. And you don't want that. I will naively assumed that you are using latest version of raspbian with many security holes being fixed.
This you can easily do like this by running Terminal (CRTL + ALT + T) and that wrote stuff in code brackets below this point :
sudo apt-get update
sudo-apt get upgrade -y
So for that Berkeley 3.4db installation to the system, this component cannot not longer be obtained, by sudo apt-get, because it's old package. Worry not, it's a way how to solve it!
I would suggest to cd yourself into Downloads folder, which can easily be done by:
cd
cd Downloads
Now for the Berkeley DB 3.4 installation:
wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
tar -xzvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
../dist/configure --enable-cxx
make
sudo make install
And let it run, if you don't receive any errors, than you don't need those files, so stay in the folder and type:
sudo rm db-4.8.30.NC.tar.gz
sudo rm -r db-4.8.30.NC
We need to keep the junk which we don't need to a minimum.
Seem easy, right? Well we are now prepared to do actually work. It's advisable to create folder for Wallets, so you know where you have them. So easily done :
ls
cd /folder/subfolder or /drive/folder wherever you want to have your wallet, could be on Raspbian SD card or somewhere else, like on external HDD that's up to you
No time for require libraries which needed to be installed:
sudo apt-get install git build-essential libtool autotools-dev autoconf
pkg-config libssl-dev libcrypto++-dev libevent-dev libminiupnpc-dev
libgmp-dev libboost-all-dev devscripts libdb++-dev libsodium-dev
Another set:
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev
qttools5-dev-tools libprotobuf-dev protobuf-compiler libcrypto++-
dev libminiupnpc-dev qt5-default
(after prompt, press y and let it run)
Another additional files:
sudo apt-get install libzmq3-dev -y
Some wallet's are using older version of libssl1.0-dev so:
sudo apt-get install libssl1.0-dev - y
After this step DON'T RUN sudo-apt get autoremove because it would wipe this old package!
Next thing we are going to obtain Bitcoin PPA files, which can be done like this.
cd /etc/apt/sources.list.d/
sudo nano bitcoin.list
Paste this text in there:
deb-src http://ppa.launchpad.net/bitcoin/bitcoin/ubuntu artful mai
Then CTRL+X and then y.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv C70EF1F0305A1ADB9986DBD8D46F45428842CE5E
sudo apt-get update
////So finally onto the fun stuff and since we choose News24Coin, there are few steps which are exclusive to this coin, which start here////
mkdir News24
cd News24
So now we have a folder and we need to clone files from git. Go to github of any project you want and click on that Clone/Download button and copy to clipboard that lip, which is in the pop-up. For News24 it's https://github.com/News24coin/news24coin.git
So to obtain the files it's simply:
git clone https://github.com/News24coin/news24coin.git
\\\\And here difference between News24Coin and other project ends here\\\\
Not alway created folder from matches the name of the project, so:
ls
There are going to be listed folders created by git, highlight that folder by cursor and press CRTL + ALT + C
cd CTRL + SHIFT + V and press enter, now we are at working directory
Sometimes project contains *.sh scripts which are not runnable by default, worry not, there is handy way around it:
find . -type f -iname "*.sh" -exec chmod +x {} \;
Warning, you have to be in working director, it this case that git created folder
So not to actually compiling.
./autogen.sh
./configure CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include -O2" LDFLAGS="-L/usr/local/BerkeleyDB.4.8/lib"
If you already know where you want to put your compiled binaries, do this:
./configure CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include -O2" LDFLAGS="-L/usr/local/BerkeleyDB.4.8/lib" --prefix=/path/to/install
(also in both case watch work warnings, errors, they can occur, if wallet is using some non standard libraries, but worry not, just copy name of what's missing into google, find that package and then: sudo apt-get install
sudo make
sudo make install
Now if you in configure step mention --prefix, you know where your files are, if you did not, your files are in here:
cd /usr/local/bin
ls
And then they are. If that folder only contains files of your crypto wallet, move then is easy:
sudo mv *
If you have there unrelate files, you are going to have to do that one by one:
ls
No you can see, what files you want to move and what are you don't want to. Most likely their names is going to have to do with the name of the project.
In terminal list of files in terminal is going to be visible, so copy them by highlighting each file and wrote:
sudo mv
And do it one by one, till there is not going to be any file linked to the crypto project (it's 4-5 files most often, so not much work)
Go back to folder, when you moved the files and since most of the executable from crypto project is shared library, so double clicking does nothing, we wrote simple script to run then. Be sure that you are in the folder, where are executable:
sudo nano run.sh
#!/bin/bash
./news24-qt
Then CRTL + X and y
We make sure that script is runnable just like that:
sudo chmod +x run.sh
Just double click on run.sh press "execute"
And now you done, you can copy your wallet.dat from other machine, copy the bootstrap and basically from now on it works with standard gui, like you are used to.
--------
Obviously many project have many issues, if you can across one or more of them, let me know by PM or here in thread. I never came across, something which could not be dealt with. Don't be shy. If this lift off, I will write script which do things for you, even for updating wallets with future releases. Cheers and have fun!