Difference between revisions of "Compile the Cloakcoin Client"

From CloakCoin Wiki
Jump to: navigation, search
(29 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages />
+
<languages/>
 
<translate>
 
<translate>
'''This guides cover the compilation of CloakCoin on Linux and raspberry Pi, it as been tested by Cloak team members on Ubuntu 16.04, Xubuntu 16.04 LTS and raspberry Pi3, diferent Linux distributions may need additional tweeking.'''
+
<!--T:23-->
 +
'''This guides cover the compilation of CloakCoin on Linux and raspberry Pi, it as been tested by Cloak team members on Ubuntu 16.04, Xubuntu 16.04 LTS and raspberry Pi3, diferent Linux distributions may need additional tweeking.'''</translate>
  
 +
<!--T:2-->
 
{| align="left"
 
{| align="left"
 
| __TOC__
 
| __TOC__
Line 24: Line 26:
  
  
= '''Build instructions for Ubuntu Linux QT GUI edition''' = <!--T:1-->
+
<translate>
 +
= '''Build instructions for Ubuntu Linux QT GUI edition''' = <!--T:24--></translate>
 +
 
  
 
<ol>
 
<ol>
<li>Install git if you don't already have it</li>
+
<li><translate><!--T:25--> Install git if you don't already have it</translate></li>
 
::<code>sudo apt install git</code>
 
::<code>sudo apt install git</code>
<li>Clone the CloakCoin repository from GitHub</li>
+
<li><translate><!--T:26--> Clone the CloakCoin repository from GitHub</translate></li>
 
::<code>git clone https://github.com/CloakProject/CloakCoin</code>
 
::<code>git clone https://github.com/CloakProject/CloakCoin</code>
 
::<code>cd CloakCoin/src</code>
 
::<code>cd CloakCoin/src</code>
<li>Install the dependencies</li>
+
<li><translate><!--T:27--> Install the dependencies</translate></li>
 
::<code>sudo apt install -y \  build-essential \ qt5-default \ qt5-qmake \ libleveldb-dev \ libboost1.58-dev \ libcurl4-openssl-dev \ openssl \ libssl-dev \ libdb++-dev \ libevent-dev \ libboost-dev \ libboost-system-dev \ libboost-filesystem-dev \ libboost-program-options-dev \ libboost-thread-dev \ libminiupnpc-dev</code>
 
::<code>sudo apt install -y \  build-essential \ qt5-default \ qt5-qmake \ libleveldb-dev \ libboost1.58-dev \ libcurl4-openssl-dev \ openssl \ libssl-dev \ libdb++-dev \ libevent-dev \ libboost-dev \ libboost-system-dev \ libboost-filesystem-dev \ libboost-program-options-dev \ libboost-thread-dev \ libminiupnpc-dev</code>
<li>Build from source</li>
+
<li><translate><!--T:28--> Build from source</translate></li>
 
::<code>qmake && make</code>
 
::<code>qmake && make</code>
<li>If all went well you cloakcoin-qt should now have been created in the root of the repository folder</li>
+
<li><translate><!--T:29--> If all went well you cloakcoin-qt should now have been created in the root of the repository folder</translate></li>
<li>The first time you launch the wallet, it will have to sync with the network. This takes forever if you don't already have a lot of the blockchain downloaded. You can download it before hand like this:</li>
+
<li><translate><!--T:30--> The first time you launch the wallet, it will have to sync with the network. This takes forever if you don't already have a lot of the blockchain downloaded. You can download it before hand like this:</translate></li>
 
::<code>mkdir ~/.CloakCoin && cd ~/.CloakCoin</code>
 
::<code>mkdir ~/.CloakCoin && cd ~/.CloakCoin</code>
<li>Download ~1.1 GB of blockchain data</li>
+
<li><translate><!--T:31--> Download ~1.1 GB of blockchain data</translate></li>
 
::<code>wget https://backend.cloakcoin.com/wallet/v2/cloak_ldb.zip</code>
 
::<code>wget https://backend.cloakcoin.com/wallet/v2/cloak_ldb.zip</code>
 
::<code>unzip cloak_ldb.zip</code>
 
::<code>unzip cloak_ldb.zip</code>
 
::<code>rm cloak_ldb.zip</code>
 
::<code>rm cloak_ldb.zip</code>
<li>Now you are ready to launch the wallet</li>
+
<li><translate><!--T:32--> Now you are ready to launch the wallet</translate></li>
 
::<code>./cloakcoin-qt</code>
 
::<code>./cloakcoin-qt</code>
<li>You can optionally copy cloakcoin-qt to a directory in your $PATH so that you can open it from anywhere like</li>
+
<li><translate><!--T:33--> You can optionally copy cloakcoin-qt to a directory in your $PATH so that you can open it from anywhere like</translate></li>
 
::<code>sudo cp ./cloakcoin-qt /usr/local/bin</code>
 
::<code>sudo cp ./cloakcoin-qt /usr/local/bin</code>
 
</ol>
 
</ol>
 +
<translate>
 +
= '''Build instructions for Linux headless edition''' = <!--T:34--> </translate>
  
= '''Build instructions for Linux headless edition''' = <!--T:2-->
 
  
 
<ol>
 
<ol>
<li>Install git if you don't already have it</li>
+
<li><translate><!--T:35--> Install git if you don't already have it</translate></li>
 
::<code>sudo apt install git</code>
 
::<code>sudo apt install git</code>
<li>Clone the CloakCoin repository from GitHub</li>
+
<li><translate><!--T:36--> Clone the CloakCoin repository from GitHub</translate></li>
 
::<code>git clone https://github.com/CloakProject/CloakCoin</code>
 
::<code>git clone https://github.com/CloakProject/CloakCoin</code>
 
::<code>cd CloakCoin/src</code>
 
::<code>cd CloakCoin/src</code>
Line 60: Line 65:
 
</ol>
 
</ol>
  
 +
<translate>
 +
= '''Build instructions for the Raspberry Pi 3 headless edition''' = <!--T:39-->
 +
</translate>
  
= '''Build instructions for the Raspberry Pi 3 headless edition''' = <!--T:3-->
+
<translate>
 +
<!--T:40-->
 +
This guide covers everything you need to know to setup a portable staking wallet and enigma anonymous transactions node.
  
This guide covers everything you need to know to setup a portable staking wallet and enigma anonymous transactions node.
 
  
 +
<!--T:41-->
 
If you follow  the steps by order you should end up with a working CloakCoin wallet and have at the palm of your hand  the power to support the cloakcoin network.
 
If you follow  the steps by order you should end up with a working CloakCoin wallet and have at the palm of your hand  the power to support the cloakcoin network.
  
 +
<!--T:42-->
 
'''Prerequisites:'''
 
'''Prerequisites:'''
 +
</translate>
 
<ol>
 
<ol>
<li> Raspberry Pi 3</li>
+
<li> <translate><!--T:43--> Raspberry Pi 3</translate></li>
<li> 8Gb SD card (class 10 recomended)</li>
+
<li> <translate><!--T:44--> 8Gb SD card (class 10 recomended)</translate></li>
<li> Power supply 5v 2A</li>
+
<li> <translate><!--T:45--> Power supply 5v 2A</translate></li>
<li> 2Gb USB stick for swap drive ( USB 3.0 recommended)</li>
+
<li> <translate><!--T:46--> 2Gb USB stick for swap drive ( USB 3.0 recommended)</translate></li>
<li> LAN internet connection</li>
+
<li> <translate><!--T:47--> LAN internet connection</translate></li>
<li> Coffee</li>
+
<li> <translate><!--T:48--> Coffee</translate></li>
 
</ol>
 
</ol>
  
== Install a arm64 OS on the Raspberry Pi and setup a SWAP partition on a USB drive. ==
 
  
 +
 +
== <translate><!--T:49--> Install a arm64 OS on the Raspberry Pi and setup a SWAP partition on a USB drive.</translate> ==
 +
 +
 +
<translate>
 +
<!--T:51-->
 
Pi64 is an 64-bit OS for the Raspberry Pi 3. It is based on Debian Stretch and backed by a 4.11 Linux kernel.
 
Pi64 is an 64-bit OS for the Raspberry Pi 3. It is based on Debian Stretch and backed by a 4.11 Linux kernel.
 +
</translate>
 
<ol>
 
<ol>
<li>Download pi64 lite from:
+
<li><translate><!--T:52--> Download pi64 lite from:</translate>
 
<br>
 
<br>
 
::https://github.com/bamarni/pi64/releases/download/2017-07-31/pi64-lite.zip
 
::https://github.com/bamarni/pi64/releases/download/2017-07-31/pi64-lite.zip
<li>To write the Pi64 image into the SD card, we are going to use Etcher, download etcher for your platform here:
+
<li><translate><!--T:53--> To write the Pi64 image into the SD card, we are going to use Etcher, download etcher for your platform here:</translate>
 
<br>
 
<br>
 
::https://etcher.io/
 
::https://etcher.io/
<li>Execute Etcher, then click on ''''select image'''' and select the Pi64 image you donwloaded earlier, then ''''select drive'''' for the SD card you are going to use on the Pi, then click ''''Flash'''!'. Wait for the ''''flash completed!'''' message and then you have the SD card ready  to use on the Raspberry Pi.
+
<li><translate><!--T:54--> Execute Etcher, then click on ''''select image'''' and select the Pi64 image you donwloaded earlier, then ''''select drive'''' for the SD card you are going to use on the Pi, then click ''''Flash'''!'. Wait for the ''''flash completed!'''' message and then you have the SD card ready  to use on the Raspberry Pi.</translate>
<li>Insert the SD card on the Raspberry Pi and power it up.
+
<li><translate><!--T:55-->
 +
Insert the SD card on the Raspberry Pi and power it up.
 
During first boot the installation process will continue for a few minutes, then the Raspberry Pi will reboot and you'll be ready to go.
 
During first boot the installation process will continue for a few minutes, then the Raspberry Pi will reboot and you'll be ready to go.
 
The default user is pi and its password raspberry, it has passwordless root privileges escalation through sudo.
 
The default user is pi and its password raspberry, it has passwordless root privileges escalation through sudo.
On the lite version, SSH is enabled by default.
+
On the lite version, SSH is enabled by default.</translate>
<li>Change the pi user password by issuing the command:  
+
<li><translate><!--T:56--> Change the pi user password by issuing the command: </translate>
 
::<code>passwd</code>
 
::<code>passwd</code>
<li>Update Pi64 packages lists by typing:
+
<li><translate><!--T:57--> Update Pi64 packages lists by typing:</translate>
 
::<code>sudo apt-get update</code>
 
::<code>sudo apt-get update</code>
 
<li>Install a text editor:
 
<li>Install a text editor:
 
::<code>sudo apt-get install nano</code>
 
::<code>sudo apt-get install nano</code>
<li>To create a swap partition on the USB drive, create an empty partition that should have no holes. You can then format this partition with:
+
<li><translate><!--T:58--> To create a swap partition on the USB drive, create an empty partition that should have no holes. You can then format this partition with:</translate>
 
::<code>sudo mkswap /dev/sdX</code>
 
::<code>sudo mkswap /dev/sdX</code>
replacing /dev/sdX with your partition (type the command <code>dmesg</code> to identify your USB drive, on my case it is sda1).  
+
<translate><!--T:59--> replacing /dev/sdX with your partition (type the command <code>dmesg</code> to identify your USB drive, on my case it is sda1).</translate>
<li>Mount this partition as swap with:
+
<li><translate><!--T:60--> Mount this partition as swap with:</translate>
 
::<code>sudo swapon -U UUID</code>
 
::<code>sudo swapon -U UUID</code>
where UUID is that of your /dev/sdX as read from this:
+
<translate><!--T:61--> where UUID is that of your /dev/sdX as read from this:</translate>
 
::<code>sudo blkid /dev/sdX</code>
 
::<code>sudo blkid /dev/sdX</code>
Bind your new swap in /etc/fstab by editing fstab with:
+
<translate><!--T:62--> Bind your new swap in /etc/fstab by editing fstab with:</translate>
 
::<code>sudo nano /etc/fstab</code>
 
::<code>sudo nano /etc/fstab</code>
Adding this line (replace xxx with the UUID of your sdX):
+
<translate><!--T:63--> Adding this line (replace xxx with the UUID of your sdX):</translate>
 
::<code>UUID=xxx    none    swap    sw      0  0</code>
 
::<code>UUID=xxx    none    swap    sw      0  0</code>
<li>Reboot the system with:
+
<li><translate><!--T:64--> Reboot the system with:</translate>
 
::<code>sudo reboot</code>
 
::<code>sudo reboot</code>
<li>To vizualize the newly added swap partition type:
+
<li><translate><!--T:65--> To vizualize the newly added swap partition type:</translate>
 
::<code>free -h</code>
 
::<code>free -h</code>
 
</ol>
 
</ol>
  
==  Setup the building enviroment ==
+
 
 +
 
 +
 
 +
==  <translate><!--T:66--> Setup the building enviroment </translate>==
 +
 
  
 
<ol>
 
<ol>
<li>Install the dependencies and required apps by issuing the following commands:</li>
+
<li><translate><!--T:67--> Install the dependencies and required apps by issuing the following commands:</translate></li>
 
::<code>sudo apt-get update</code>
 
::<code>sudo apt-get update</code>
 
::<code>sudo apt-get install g++</code>
 
::<code>sudo apt-get install g++</code>
Line 127: Line 150:
 
::<code>sudo apt-get install libboost-all-dev</code>
 
::<code>sudo apt-get install libboost-all-dev</code>
 
::<code>sudo apt-get install git</code>
 
::<code>sudo apt-get install git</code>
<li>Get the CloakCoin source:</li>
+
<li><translate><!--T:68--> Get the CloakCoin source:</translate></li>
 
::<code>git clone https://github.com/CloakProject/CloakCoin</code>
 
::<code>git clone https://github.com/CloakProject/CloakCoin</code>
This will clone the CloakCoin Project source to your machine. If you are in your home directory (by default /home/pi) it will  clone to: /home/pi/CloakCoin
+
<translate><!--T:69--> This will clone the CloakCoin Project source to your machine. If you are in your home directory (by default /home/pi) it will  clone to: /home/pi/CloakCoin</translate>
<li>Get and compile libevent</li>
+
<li><translate><!--T:70--> Get and compile libevent</translate></li>
 
::<code>sudo wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz</code>
 
::<code>sudo wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz</code>
 
::<code>tar -zxf libevent-2.0.21-stable.tar.gz</code>
 
::<code>tar -zxf libevent-2.0.21-stable.tar.gz</code>
Line 137: Line 160:
 
::<code>make</code>
 
::<code>make</code>
 
::<code>sudo make install</code>
 
::<code>sudo make install</code>
<li>Get and compile libssl from source</li>
+
<li><translate><!--T:71--> Get and compile libssl from source</translate></li>
 
::<code>wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz</code>
 
::<code>wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz</code>
 
::<code>tar -zxf openssl-1.0.2k.tar.gz</code>
 
::<code>tar -zxf openssl-1.0.2k.tar.gz</code>
Line 145: Line 168:
 
::<code>sudo make install_sw</code> (no docs/manpages)
 
::<code>sudo make install_sw</code> (no docs/manpages)
 
::<code>echo libssl-dev hold | sudo dpkg --set-selections</code> (keeps from updating)
 
::<code>echo libssl-dev hold | sudo dpkg --set-selections</code> (keeps from updating)
<li>Get and compile Berkeley db 4.8</li>
+
<li><translate><!--T:72--> Get and compile Berkeley db 4.8</translate></li>
 
::<code>wget http://ftpmirror.your.org/pub/misc/Berkeley-DB/db-4.8.30.zip</code>
 
::<code>wget http://ftpmirror.your.org/pub/misc/Berkeley-DB/db-4.8.30.zip</code>
 
::<code>unzip db-4.8.30.zip</code>
 
::<code>unzip db-4.8.30.zip</code>
Line 152: Line 175:
 
::<code>make</code>
 
::<code>make</code>
 
::<code>sudo make install</code>
 
::<code>sudo make install</code>
<li>Compile levedb</li>
+
<li><translate><!--T:73--> Compile levedb</translate></li>
 
::<code>cd /home/pi/CloakCoin/src/leveldb</code>
 
::<code>cd /home/pi/CloakCoin/src/leveldb</code>
 
::<code>chmod 755 build_detect_platform</code>
 
::<code>chmod 755 build_detect_platform</code>
Line 158: Line 181:
 
::<code>make</code> (ignore compile error, the *.a files have already been created)
 
::<code>make</code> (ignore compile error, the *.a files have already been created)
 
::<code>cp out-static/*.a .</code>
 
::<code>cp out-static/*.a .</code>
<li>Get and compile miniupnpc 1.9</li>
+
<li><translate><!--T:74--> Get and compile miniupnpc 1.9</translate></li>
 
::<code>wget http://miniupnp.tuxfamily.org/files/download.php?file=miniupnpc-1.9.20160209.tar.gz</code>
 
::<code>wget http://miniupnp.tuxfamily.org/files/download.php?file=miniupnpc-1.9.20160209.tar.gz</code>
 
::<code>tar -zxf miniupnpc-1.9.20160209.tar.gz</code>
 
::<code>tar -zxf miniupnpc-1.9.20160209.tar.gz</code>
 
::<code>cd miniupnpc-1.9.20160209</code>
 
::<code>cd miniupnpc-1.9.20160209</code>
 
::<code>make</code>
 
::<code>make</code>
copy libminiupnpc.a to (cloaksource)/src/miniupnpc with:
+
<translate><!--T:75--> copy libminiupnpc.a to (cloaksource)/src/miniupnpc with:</translate>
 
::<code>cp libminupnpc.a  /home/pi/CloakCoin/src/miniupnpc</code>
 
::<code>cp libminupnpc.a  /home/pi/CloakCoin/src/miniupnpc</code>
 
</ol>
 
</ol>
  
==  Compile the wallet ==
+
 
 +
 
 +
 
 +
==  <translate><!--T:76--> Compile the wallet</translate> ==
 +
 
 +
 
 
<ol>
 
<ol>
<li>Change to CloakCoin source directory and compile:</li>
+
<li><translate><!--T:77--> Change to CloakCoin source directory and compile:</translate></li>
 
::<code>cd /home/pi/CloakCoin/src</code>
 
::<code>cd /home/pi/CloakCoin/src</code>
 
::<code>export CXXFLAG=" -DBOOST_NO_CXX11_SCOPED_ENUMS"</code>
 
::<code>export CXXFLAG=" -DBOOST_NO_CXX11_SCOPED_ENUMS"</code>
 
::<code>make -f makefile.unix</code>
 
::<code>make -f makefile.unix</code>
You should end up with cloakcoind in /home/pi/CloakCoin/src (grab a cup of coffee, it will take over an hour to complete). On completion do:
+
<translate><!--T:78--> You should end up with cloakcoind in /home/pi/CloakCoin/src (grab a cup of coffee, it will take over an hour to complete). On completion do:</translate>
 
::<code>cp ./cloakcoind /usr/local/bin</code>
 
::<code>cp ./cloakcoind /usr/local/bin</code>
 
</ol>
 
</ol>
  
==  Inicialization, testing and first commands ==
+
 
 +
 
 +
 
 +
==  <translate><!--T:79--> Inicialization, Testing and First Commands</translate>==
 +
 
 +
 
 
<ol>
 
<ol>
<li>Before you start the wallet you need to open a text editor and create CloakCoin's rpc configuraion file with:
+
<li><translate><!--T:80-->
</li>
+
Before you start the wallet you need to open a text editor and create CloakCoin's rpc configuraion file with:
 +
</translate></li>
 
::<code>nano /home/pi/.CloakCoin/CloakCoin.conf</code>
 
::<code>nano /home/pi/.CloakCoin/CloakCoin.conf</code>
<li>Write the following info:</li>
+
<li><translate><!--T:81--> Write the following info:</translate></li>
 
::<code>rpcuser=bitcoinrpc</code>
 
::<code>rpcuser=bitcoinrpc</code>
 
::<code>rpcpassword= <type some ramdom password that you dont need to remember></code>
 
::<code>rpcpassword= <type some ramdom password that you dont need to remember></code>
press '''Ctrl + O''' then '''Enter''' to save then '''Ctrl + X''' to exit the text editor.
+
<translate><!--T:82--> press '''Ctrl + O''' then '''Enter''' to save then '''Ctrl + X''' to exit the text editor.</translate>
<li>Set it to owner-readable-only with:</li>
+
<li><translate><!--T:83--> Set it to owner-readable-only with:</translate></li>
 
::<code>chmod 400 /home/pi/.CloakCoin/CloakCoin.conf</code>
 
::<code>chmod 400 /home/pi/.CloakCoin/CloakCoin.conf</code>
(If you fail to create the above CloakCoin.conf  file,  when starting the wallet with the command cloakcoind you will receive the following ''''error: you must set rpcpassword=<password> in the configuration file: ...'''')
+
<translate><!--T:84--> (If you fail to create the above CloakCoin.conf  file,  when starting the wallet with the command cloakcoind you will receive the following</translate> ''''<translate><!--T:85--> error: you must set rpcpassword=<password> in the configuration file: ...</translate>'''')
 
<br>
 
<br>
<li>To start the wallet with the database cache limited to 100Mb type:</li>
+
<li><translate><!--T:86--> To start the wallet with the database cache limited to 100Mb type:</translate></li>
 
::<code>cloakcoind -dbcache=100</code>
 
::<code>cloakcoind -dbcache=100</code>
<li>Open another console by pressing '''Alt + F2''' and type:</li>
+
<li><translate><!--T:87--> Open another console by pressing '''Alt + F2''' and type:</translate></li>
 
::<code>cloakcoind getinfo</code>
 
::<code>cloakcoind getinfo</code>
if you get the response:
+
<translate><!--T:88--> if you get the response:</translate>
'''error: couldnt connect to server'''
+
'''<translate><!--T:89--> error: couldnt connect to server</translate>'''
Wait a few minutes and try again, as soon as you get a response your CloakCoin Pi wallet is up and running, and its a matter of waiting for the connections to come up and the syncing to start.
+
<translate><!--T:90--> Wait a few minutes and try again, as soon as you get a response your CloakCoin Pi wallet is up and running, and its a matter of waiting for the connections to come up and the syncing to start.</translate>
<li>Sinchronizing with the blockchain can take several days, its faster if you download the blockchain data manually:</li>
+
<li><translate><!--T:91--> Sinchronizing with the blockchain can take several days, its faster if you download the blockchain data manually:</translate></li>
 
::<code>cd /home/pi/.CloakCoin</code>
 
::<code>cd /home/pi/.CloakCoin</code>
 
::<code>wget https://backend.cloakcoin.com/wallet/v2/cloak_ldb.zip</code>
 
::<code>wget https://backend.cloakcoin.com/wallet/v2/cloak_ldb.zip</code>
 
::<code>unzip cloak_ldb.zip</code>
 
::<code>unzip cloak_ldb.zip</code>
 
::<code>rm cloak_ldb.zip</code>
 
::<code>rm cloak_ldb.zip</code>
<li>Reboot:</li>
+
<li><translate><!--T:92--> Reboot:</translate></li>
 
::<code>sudo reboot</code>
 
::<code>sudo reboot</code>
<li>Start wallet again:</li>
+
<li><translate><!--T:93--> Start wallet again:</translate></li>
 
::<code>cloakcoind -dbcache=100</code>
 
::<code>cloakcoind -dbcache=100</code>
<li>To get  the full list of rpc commands type:</li>
+
<li><translate><!--T:94--> To get  the full list of rpc commands type:</translate></li>
 
::<code>cloakcoind help</code>
 
::<code>cloakcoind help</code>
 
</ol>
 
</ol>
==  Backup SD card image ==
 
It's sensible to keep a copy of the entire SD card image, so you can restore the card if you lose it or it becomes corrupt.
 
  
Of course make sure your wallet is encrypted, before making the backup.
+
 
 +
 
 +
==  <translate><!--T:95--> Backup SD card image</translate> ==
 +
 
 +
 
 +
<translate><!--T:96--> It's sensible to keep a copy of the entire SD card image, so you can restore the card if you lose it or it becomes corrupt.</translate>
 +
 
 +
<translate>
 +
<!--T:97-->
 +
Of course make sure your wallet is encrypted, before making the backup.</translate>
 
<ol>
 
<ol>
<li>To create a backup image file on your computer type:</li>
+
<li><translate><!--T:98--> To create a backup image file on your computer type:</translate></li>
 
::<code>sudo dd bs=4M if=/dev/sdb of=cloakpi.img</code>
 
::<code>sudo dd bs=4M if=/dev/sdb of=cloakpi.img</code>
<li> To restore the image file to another SD card type:</li>
+
<li><translate> <!--T:99--> To restore the image file to another SD card type:</translate></li>
 
::<code>sudo dd bs=4M if=cloakpi.img of=/dev/sdb</code>
 
::<code>sudo dd bs=4M if=cloakpi.img of=/dev/sdb</code>
 
</ol>
 
</ol>
  
  
 +
<translate>
 +
<!--T:100-->
 
That's it, have fun!
 
That's it, have fun!
 
</translate>
 
</translate>
 +
 +
 +
[[File:C0.png|center]]
 +
<div style="text-align: center;"><translate><!--T:101--> Free of Copyright Restrictions. </translate></div>

Revision as of 21:57, 27 December 2018

Other languages:
English • ‎Tiếng Việt • ‎Türkçe • ‎español • ‎português • ‎中文(中国大陆)‎

This guides cover the compilation of CloakCoin on Linux and raspberry Pi, it as been tested by Cloak team members on Ubuntu 16.04, Xubuntu 16.04 LTS and raspberry Pi3, diferent Linux distributions may need additional tweeking.










Build instructions for Ubuntu Linux QT GUI edition

  1. Install git if you don't already have it
  2. sudo apt install git
  3. Clone the CloakCoin repository from GitHub
  4. git clone https://github.com/CloakProject/CloakCoin
    cd CloakCoin/src
  5. Install the dependencies
  6. sudo apt install -y \ build-essential \ qt5-default \ qt5-qmake \ libleveldb-dev \ libboost1.58-dev \ libcurl4-openssl-dev \ openssl \ libssl-dev \ libdb++-dev \ libevent-dev \ libboost-dev \ libboost-system-dev \ libboost-filesystem-dev \ libboost-program-options-dev \ libboost-thread-dev \ libminiupnpc-dev
  7. Build from source
  8. qmake && make
  9. If all went well you cloakcoin-qt should now have been created in the root of the repository folder
  10. The first time you launch the wallet, it will have to sync with the network. This takes forever if you don't already have a lot of the blockchain downloaded. You can download it before hand like this:
  11. mkdir ~/.CloakCoin && cd ~/.CloakCoin
  12. Download ~1.1 GB of blockchain data
  13. wget https://backend.cloakcoin.com/wallet/v2/cloak_ldb.zip
    unzip cloak_ldb.zip
    rm cloak_ldb.zip
  14. Now you are ready to launch the wallet
  15. ./cloakcoin-qt
  16. You can optionally copy cloakcoin-qt to a directory in your $PATH so that you can open it from anywhere like
  17. sudo cp ./cloakcoin-qt /usr/local/bin

Build instructions for Linux headless edition

  1. Install git if you don't already have it
  2. sudo apt install git
  3. Clone the CloakCoin repository from GitHub
  4. git clone https://github.com/CloakProject/CloakCoin
    cd CloakCoin/src
    make -f makefile.unix

Build instructions for the Raspberry Pi 3 headless edition

This guide covers everything you need to know to setup a portable staking wallet and enigma anonymous transactions node.


If you follow the steps by order you should end up with a working CloakCoin wallet and have at the palm of your hand the power to support the cloakcoin network.

Prerequisites:

  1. Raspberry Pi 3
  2. 8Gb SD card (class 10 recomended)
  3. Power supply 5v 2A
  4. 2Gb USB stick for swap drive ( USB 3.0 recommended)
  5. LAN internet connection
  6. Coffee


Install a arm64 OS on the Raspberry Pi and setup a SWAP partition on a USB drive.

Pi64 is an 64-bit OS for the Raspberry Pi 3. It is based on Debian Stretch and backed by a 4.11 Linux kernel.

  1. Download pi64 lite from:
    https://github.com/bamarni/pi64/releases/download/2017-07-31/pi64-lite.zip
  2. To write the Pi64 image into the SD card, we are going to use Etcher, download etcher for your platform here:
    https://etcher.io/
  3. Execute Etcher, then click on 'select image' and select the Pi64 image you donwloaded earlier, then 'select drive' for the SD card you are going to use on the Pi, then click 'Flash!'. Wait for the 'flash completed!' message and then you have the SD card ready to use on the Raspberry Pi.
  4. Insert the SD card on the Raspberry Pi and power it up. During first boot the installation process will continue for a few minutes, then the Raspberry Pi will reboot and you'll be ready to go. The default user is pi and its password raspberry, it has passwordless root privileges escalation through sudo. On the lite version, SSH is enabled by default.
  5. Change the pi user password by issuing the command:
    passwd
  6. Update Pi64 packages lists by typing:
    sudo apt-get update
  7. Install a text editor:
    sudo apt-get install nano
  8. To create a swap partition on the USB drive, create an empty partition that should have no holes. You can then format this partition with:
    sudo mkswap /dev/sdX
    replacing /dev/sdX with your partition (type the command dmesg to identify your USB drive, on my case it is sda1).
  9. Mount this partition as swap with:
    sudo swapon -U UUID
    where UUID is that of your /dev/sdX as read from this:
    sudo blkid /dev/sdX
    Bind your new swap in /etc/fstab by editing fstab with:
    sudo nano /etc/fstab
    Adding this line (replace xxx with the UUID of your sdX):
    UUID=xxx none swap sw 0 0
  10. Reboot the system with:
    sudo reboot
  11. To vizualize the newly added swap partition type:
    free -h



Setup the building enviroment

  1. Install the dependencies and required apps by issuing the following commands:
  2. sudo apt-get update
    sudo apt-get install g++
    sudo apt-get install zlib1g-dev
    sudo apt-get install wget
    sudo apt-get install unzip
    sudo apt-get install make
    sudo apt-get install libboost-all-dev
    sudo apt-get install git
  3. Get the CloakCoin source:
  4. git clone https://github.com/CloakProject/CloakCoin

    This will clone the CloakCoin Project source to your machine. If you are in your home directory (by default /home/pi) it will clone to: /home/pi/CloakCoin

  5. Get and compile libevent
  6. sudo wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
    tar -zxf libevent-2.0.21-stable.tar.gz
    cd libevent-2.0.21-stable
    ./configure
    make
    sudo make install
  7. Get and compile libssl from source
  8. wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
    tar -zxf openssl-1.0.2k.tar.gz
    cd openssl-1.0.2k
    ./config
    make
    sudo make install_sw (no docs/manpages)
    echo libssl-dev hold | sudo dpkg --set-selections (keeps from updating)
  9. Get and compile Berkeley db 4.8
  10. wget http://ftpmirror.your.org/pub/misc/Berkeley-DB/db-4.8.30.zip
    unzip db-4.8.30.zip
    cd db-4.8.30/build_unix
    ../dist/configure --build=aarch64-unknown-linux-gnu --enable-cxx
    make
    sudo make install
  11. Compile levedb
  12. cd /home/pi/CloakCoin/src/leveldb
    chmod 755 build_detect_platform
    make clean
    make (ignore compile error, the *.a files have already been created)
    cp out-static/*.a .
  13. Get and compile miniupnpc 1.9
  14. wget http://miniupnp.tuxfamily.org/files/download.php?file=miniupnpc-1.9.20160209.tar.gz
    tar -zxf miniupnpc-1.9.20160209.tar.gz
    cd miniupnpc-1.9.20160209
    make

    copy libminiupnpc.a to (cloaksource)/src/miniupnpc with:

    cp libminupnpc.a /home/pi/CloakCoin/src/miniupnpc



Compile the wallet

  1. Change to CloakCoin source directory and compile:
  2. cd /home/pi/CloakCoin/src
    export CXXFLAG=" -DBOOST_NO_CXX11_SCOPED_ENUMS"
    make -f makefile.unix

    You should end up with cloakcoind in /home/pi/CloakCoin/src (grab a cup of coffee, it will take over an hour to complete). On completion do:

    cp ./cloakcoind /usr/local/bin



Inicialization, Testing and First Commands

  1. Before you start the wallet you need to open a text editor and create CloakCoin's rpc configuraion file with:
  2. nano /home/pi/.CloakCoin/CloakCoin.conf
  3. Write the following info:
  4. rpcuser=bitcoinrpc
    rpcpassword= <type some ramdom password that you dont need to remember>

    press Ctrl + O then Enter to save then Ctrl + X to exit the text editor.

  5. Set it to owner-readable-only with:
  6. chmod 400 /home/pi/.CloakCoin/CloakCoin.conf

    (If you fail to create the above CloakCoin.conf file, when starting the wallet with the command cloakcoind you will receive the following 'error: you must set rpcpassword=<password> in the configuration file: ...')

  7. To start the wallet with the database cache limited to 100Mb type:
  8. cloakcoind -dbcache=100
  9. Open another console by pressing Alt + F2 and type:
  10. cloakcoind getinfo

    if you get the response: error: couldnt connect to server Wait a few minutes and try again, as soon as you get a response your CloakCoin Pi wallet is up and running, and its a matter of waiting for the connections to come up and the syncing to start.

  11. Sinchronizing with the blockchain can take several days, its faster if you download the blockchain data manually:
  12. cd /home/pi/.CloakCoin
    wget https://backend.cloakcoin.com/wallet/v2/cloak_ldb.zip
    unzip cloak_ldb.zip
    rm cloak_ldb.zip
  13. Reboot:
  14. sudo reboot
  15. Start wallet again:
  16. cloakcoind -dbcache=100
  17. To get the full list of rpc commands type:
  18. cloakcoind help


Backup SD card image

It's sensible to keep a copy of the entire SD card image, so you can restore the card if you lose it or it becomes corrupt.

Of course make sure your wallet is encrypted, before making the backup.

  1. To create a backup image file on your computer type:
  2. sudo dd bs=4M if=/dev/sdb of=cloakpi.img
  3. To restore the image file to another SD card type:
  4. sudo dd bs=4M if=cloakpi.img of=/dev/sdb


That's it, have fun!


C0.png
Free of Copyright Restrictions.