- Welcome
- Reminder
- Installation
- Install Oracle VM VirtualBox and create and setup a Virtual Machine
- Install RPi OS on the Virtual Machine
- Installation of the Full Node Wallet on Raspberry Pi under a Virtual Machine
- Install Boost Libraries ver.1.57
- Install Required Dependencies
- Install a working libssl
- Compile and Install libsodium
- Compile and Install ZeroMQ
- Compile and Install Berkeley DB 4.8
- Install the missing Boost Libraries packages
- Compile and Install the BitCanna Full Node Wallet
- Setting up the BitCanna Wallet for the 1st time
- Run the BitCanna Full Node Wallet on RPi VM
- Running the BitCanna Full Node Wallet on the RPi VM
- Disclosure
- Buy BCNA
- Feedback
- Support and Donating
Welcome to the Community Guide on how to install and run a BitCanna Full Node Wallet on a Raspberry Pi using a Virtual Machine.
The following Guide follow a strict order of steps, commands and files editions that must be followed to have a successful result in compiling and installing the BitCanna Full Node Wallet on a Raspberry Pi OS environment using a Virtual Machine.
To begin you will need to have a Virtual Machine (VM) setup with the Raspberry Pi (RPi) OS.
If you do not know how to do it follow the steps below:
-
Download and Install the Oracle VM VirtualBox using the official installation files, as well as the Extension Pack:
-
Download the RPi OS disc image
-
Open Oracle VM VirtualBox Manger
-
Click on New
-
Give it a Name, for example RPi BitCanna Wallet
- Select Linux as the OS Type
- Select Debian (32-bit) as Version
- Click Next
-
Select Memory size (choose either 1024 or 2048, there isn’t any requirement for any of them) and click Next
-
Select the option Create a virtual hard disk now and click Create
-
Select the option VDI (VirtualBox Disk Image) and click Next
-
Select the option Fixed size and click Next
-
Select the disk size, I recommend at least 32GB, and click Create
## Wait for the creation process to finish (this can take a bit)
Now that you have your VM created let’s make a few adjustments to it before we boot it up
-
Left click over you newly created VM and select Settings
- In the General menu go the Advanced tab
- Change both Shared Clipboard and Drag’n’Drop to Bidirectional
- In the System menu Enable I/O APIC on the Motherboard tab
- Add a second processor in the Processor tab
- Turn on the Network Adapters 1 (where the Name of the adapter will be your PC in-built network adaptor) and 2 (where you turn on the VM network adapter)
-
Now you are all set to start your VM and install the RPi OS.
-
Start your VM
-
Choose the previous downloaded RPi OS disk image file and then click Start
-
Choose either Graphical install or Install (despite their names there are both remarkably similar looking, the major difference is the possibility to use the mouse on the Graphical install option).
-
Choose your keyboard language setup
-
When prompt about the Disk Partition select the option Guided – use entire disk and click Continue
-
Select the Disk to Partition and click Continue
-
Select the type of Partition scheme, usually recommended the default option and click Continue
-
Confirm the disk writing option and then confirm to write to disk
-
When prompt about the GRUB installation select Yes and Continue
-
Select the disk to install GRUB
-
Wait for the OS Installation to finish and boot into your RPi
-
Once you are logged into your RPi do the initial setup (country, language and time zone), enter a password
-
SKIP THE UPDATE and select RESTART LATER
Now we need to make the RPi VM a bit more user friendly in terms of usage by installing the Guest Additions
-
Go to the Devices menu and select the last option Insert Guest Additions CD image
-
Right-click on the VBox_GAs_6.1.12 and select Open in Terminal
-
Login as root
sudo su -
Install the Guest Additions
sh VBoxLinuxAdditions.run
Once it finishes installing you can resize the VM window and copy and paste between your PC and the VM environment.
After the initial setup of your RPi you will need to tweak it a little bit by following the steps:
-
Access Raspberry Pi Software Configuration Tool
sudo raspi-config -
Change System Locales
- Go to Localisation Options
- Select Change Locale
- Select the option en_US.UTF-8 UTF-8 and confirm with OK
- Select the option en_US.UTF-8 and confirm with OK
(You can go back to the and configure the other remaining options to your needs if you want.)
- Activate the SSH (if you want to use it) and Update the raspi-config
- Exit raspi-config by selecting Finish
Now it’s time to increase the swap size of the RPi.
-
Edit the swapfile with
sudo nano /etc/dphys-swapfile- Locate the line (in white) that says CONF_SWAPSIZE=100
- Change the 100 value to 2048 to look like this
- Exit the file with ctrl+x
- Confirm the changes saving with Y
- And confirm with Enter
-
Enable the new swap size with (it will also change the permissions on the entire pi folder)
sudo dphys-swapfile setup && sudo dphys-swapfile swapon && sudo chmod -R a+rwx ./ -
Update and Upgrade the RPi VM
sudo apt-get update && sudo apt-get full-upgrade -y && sudo apt-get clean && sudo reboot now
Now wait for the update and upgrade processes to finish and you will have your RPi VM all ready to start the installations process of all the required programs to compile and install the BitCanna Wallet on your RPi VM.
From now on in the chain of commands that downloads any files it will also include the commands that remove the downloaded file after being extracted and change the permissions of the extracted folder and all its content, which is something that will be done on all the downloadable files of the various software’s that will be installed along this guide so I won’t describe them all the time.
To begin we will start to install the Boost Libraries ver.1.57 https://www.boost.org/users/history/version_1_57_0.html
-
Download the Boost Libraries from the sourceforge download page, uncompress it, and enter the uncompressed folder with:
wget https://sourceforge.net/projects/boost/files/boost/1.57.0/boost_1_57_0.tar.gz && tar -xzvf boost_1_57_0.tar.gz && rm boost_1_57_0.tar.gz && sudo chmod -R a+rwx boost_1_57_0/ && cd boost_1_57_0/ -
After that configure the system for the compiling process, compile it and install it with:
sudo ./bootstrap.sh && sudo ./b2 install -
If the installation ended up like the image below you are good to continue, if not retrace your steps and check if you did not miss anything.
-
Once it is finished exit the folder with:
cd
Now it is time to install some of the dependencies that we will need to install the remaining software.
-
Install the dependencies with:
sudo apt-get install build-essential autoconf automake libtool libbz2-dev libssl-dev qt4-qmake libqt4-dev libminiupnpc-dev libdb++-dev libdb-dev libcrypto++-dev ufw git software-properties-common autotools-dev pkg-config libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev automake g++-mingw-w64-x86-64 libevent-dev libgmp-dev devscripts libsodium-dev qt5-default -y
To continue we will need to remove the currently installed libssl and force install a specific version from the old Raspian OS versions
-
Start by removing the current libssl version and edit the sources file with:
sudo apt-get remove libssl-dev -y && sudo nano /etc/apt/sources.list- Change the distribution version from "buster" to "jessie"
- Exit the file with ctrl+x
- Confirm the changes saving with Y
- And confirm with Enter
-
Update and Install libssl-dev, mark and hold it, and edit RPi sources file again with:
sudo apt-get update && sudo apt-get install -y libssl-dev && sudo apt-mark hold libssl-dev && sudo apt-mark hold libssl1.0.0 && sudo nano /etc/apt/sources.list- A Change the distribution version from "jessie" to "stretch"
- Exit the file with ctrl+x
- Confirm the changes saving with Y
- And confirm with Enter
-
Update and Upgrade RPi VM with:
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get clean
-
Download libsodium, uncompress it, and enter the uncompressed folder with:
wget https://github.com/jedisct1/libsodium/releases/download/1.0.3/libsodium-1.0.3.tar.gz && tar -zxvf libsodium-1.0.3.tar.gz && rm libsodium-1.0.3.tar.gz && sudo chmod -R a+rwx libsodium-1.0.3/ && cd libsodium-1.0.3/ -
Configure the system for the compiling process, run the compiler, and then install libsodium with:
./configure && make -j4 && sudo make install -
Once it is finished exit the folder with:
cd
-
Download ZeroMQ, uncompress it, and enter the uncompressed folder with:
wget https://github.com/zeromq/libzmq/releases/download/v4.3.2/zeromq-4.3.2.tar.gz && tar -zxvf zeromq-4.3.2.tar.gz && rm zeromq-4.3.2.tar.gz && sudo chmod -R a+rwx zeromq-4.3.2/ && cd zeromq-4.3.2/ -
Configure the system for the compiling process, run the compiler, and then install ZeroMQ with:
./configure && make -j4 && sudo make install && sudo ldconfig -
Once it is finished exit the folder with:
cd
-
Download Berkeley DB 4.8, uncompress it, and enter the uncompressed folder with:
wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz && tar -xzvf db-4.8.30.NC.tar.gz && rm db-4.8.30.NC.tar.gz && sudo chmod -R a+rwx db-4.8.30.NC/ && sed -i 's/__atomic_compare_exchange/__atomic_compare_exchange_db/g' db-4.8.30.NC/dbinc/atomic.h && cd db-4.8.30.NC/build_unix/ -
Configure the system for the compiling process, run the compiler, and then install Berkeley DB 4.8 with:
sudo ../dist/configure --enable-cxx && make -j4 && sudo make install -
Once it is finished exit the folder with:
cd
Run the Boost Libraries installation again to install the packages that were skipped and missed from the initial installation.
-
Run the following chain of commands:
cd boost_1_57_0/ && sudo ./bootstrap.sh && sudo ./b2 install
If you remember you had previously ended the installation with a final message saying:
Which makes 8 target that were not initially updated, and if you now received a message like following one, means that the previous 8 missing targets have now been successfully updated:
-
Once it is finished exit the folder with:
cd
Now comes the fun part where you will do the magic trick of compiling and installing the latest version of the BitCanna Full Node Wallet on your RPi VM
-
Start by cloning the BitCanna GitHub repository, change the downloaded folder and files permissions and enter it with:
git clone https://github.com/BitCannaGlobal/BCNA.git && sudo chmod -R a+rwx BCNA/ && cd BCNA/ -
Open and edit the following file with:
sudo nano /home/pi/BCNA/src/net.h- Add #include at the end of the 1st include group
- Exit the file with ctrl+x
- Confirm the changes saving with Y
- And confirm with Enter
-
Configure the system for the compiling process, run the compiler, and then install the BitCanna Full Node Wallet with:
./autogen.sh && ./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768" CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include -O2" LDFLAGS="-L/usr/local/BerkeleyDB.4.8/lib" --disable-tests --with-miniupnpc --enable-upnp-default && make -j4 && sudo make install
(note: this will take a while to complete even with the -j4 input so feel free to roll one (or more) and enjoy it/them)
-
Once it is finished exit the folder with:
cd
Now that you have successfully installed the BitCanna Wallet on your RPi VM it’s time to start it up, but before that lets make a few preparations upfront, before you fully run it.
-
Start by changing the permissions of the following folders and their content:
sudo chmod -R a+rwx /usr/local/bin/ && sudo mkdir /home/pi/.bitcanna && sudo chmod -R a+rwx /home/pi/.bitcanna/ -
Create the bitcanna.conf file with:
sudo nano /home/pi/.bitcanna/bitcanna.conf-
Copy and paste the following lines into it:
rpcuser=bitcannarpc rpcpassword= listen=1 server=1 daemon=1 txindex=1 maxconnections=1000 enablezeromint=0 banscore=50 staking=1 -
Exit the file with ctrl+x
-
Confirm the changes saving with Y
-
And confirm with Enter
-
-
Run the wallet for the 1st time to get the information needed for the rpcpassword= in the bitcann.conf file
-
For the CLI Wallet mode use the following chain of commands:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/BerkeleyDB.4.8/lib" && bitcannad
-
For the GUI Wallet mode use the following chain of commands:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/BerkeleyDB.4.8/lib" && bitcanna-qt
-
-
The Wallet will crash and give out a warning message with some information.
- CLI version
- GUI version
-
Locate where it says the following:
rpcpassword=SOME_WEIRD_LOOKING_PASSWORD_YOU_WILL_NEVER_NEED_TO_REMEMBER -
Select and copy the given password information and edit the bitcanna.conf file again with:
sudo nano /home/pi/.bitcanna/bitcanna.conf- Add the password to its respective field
- Exit the file with ctrl+x
- Confirm the changes saving with Y
- And confirm with Enter
-
Download and "install" bootstrap to speed up initial synchronization of the wallet with:
cd .bitcanna/ && wget https://github.com/BitCannaCommunity/Bootstrap/releases/download/v5/Bootstrap.05-10-2020.zip && unzip Bootstrap.05-10-2020.zip && rm Bootstrap.05-10-2020.zip && sudo chmod -R a+rwx /home/pi/.bitcanna/ -
Once it is finished exit the folder with:
cd
After the bootstrap finishes download you can now run your wallet and start its synchronization process.
Note that even with the bootstrap it may take a while for the wallet to fully sync with the chain and seems that running the initial synchronization using the CLI is faster that with the GUI environment.
I will leave the instructions for both, so it is entirely up to you to decide which to follow.
-
For the GUI environment synchronization simply use the following chain of commands and leave it running.
bitcanna-qt -dbcache=50
(To be sure that is running the synchronization from the bootstrap you will see a message on the synchronization bar saying Importing blocks from disk…)
-
For the CLI environment synchronization start by using the following chain of commands to start the wallet:
bitcannad
(You should see a message saying BCNA server starting)
-
Check the syncing process with the command:
bitcanna-cli getinfo
Look for the blocks information part to see it synchronizing:
-
If you want, you can create a loop routine of the getinfo command to see an “auto-update” of the synchronization process while in the CLI environment:
while true; do bitcanna-cli getinfo; sleep 3; done
- Now simply wait for the synchronization process to finish.
When running the wallet for the 1st time, either after starting the VM or rebooting it, or opening up a new terminal window/tab to start the wallet will require the use of the chain of command in order for the wallet to start:
-
For the CLI Wallet mode use the following chain of commands:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/BerkeleyDB.4.8/lib" && bitcannad -
For the GUI Wallet mode use the following chain of commands:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/BerkeleyDB.4.8/lib" && bitcanna-qt -dbcache=50
Keep in mind that these guides are a community made project, and there for no member of the BitCanna Team, and/or the author, are responsible for any funds lost by its usage.
If you plan to use this as a working PoS Wallet do not forget to follow all the recommended safety and backup precautions of setting up a PoS Crypto Wallet.
If you need or want to buy BCNA you can do it using the links below:
- CoinDeal Exchange -> https://coindeal.com/ref/AVQU
- STEX Exchange -> https://coindeal.com/ref/AVQU
- Directly with Credit Card -> https://www.bitcanna.io/buy-bitcanna-with-credit-card/
Any improvements or suggestions to be added feel free to do it either through here or by telegram using the link -> https://t.me/Johnny_X89
If you found these guides useful and you fell like it feel free to donate any tips to support and improve it:
- BCNA -> BFJt7ETtucGmifwtmspf1LeJ75Cw6tG3YY
- BTC -> bc1qv8xvnf7376sv3qnxemh0y6hjkz7vcsgzhr5aln





























