CROAT "Node" – Compilació i sincronització ràpida

A CONTINUACIÓ DETALLEM UN SEGUIT DE PASSOS PER TENIR EL CROAT COM A NODE DINS LA XARXA, NO ÉS NECESSARI SER UN USUARI EXPERT PER ACONSEGUIR-HO PERÒ SI QUE EN ALGUN PUNT SIGUI INTERESSANT PODER TENIR UNS CONEIXEMENTS BÀSICS DE LINUX… COMENCEM?

Primer de tot cal saber que un servidor que actua com a node de la xarxa CROAT acostuma a ser un equip que esta operatiu les 24 hores del dia, per tant “tot i que fem servir una màquina virtual en un pc per ensenyar com s’instal·la”, recomanem llogar un servidor al “núvol”.

La xarxa CROAT utilitza el que se'n diu una cadena de blocs "Blockchain", i necessita un programari per permetre treballar contra ella, llegir les transaccions que hi ha escrites, escriurem de noves i replicar una copia de tota la cadena a altres nodes de la xarxa CROAT. Pròpiament els moneders que utilitzem d'escriptori, com el CROAT Desktop Wallet, o els que utilitzem via web, com el CROAT Light Wallet, es connecten automàticament a un d'aquests nodes per fer les gestions i pagaments amb els nostres CROATS.

Podeu consultar l'estat dels nodes administrats per la comunitat CROAT des de http://network.croat.community/

Utilitzarem un Sistema Operatiu Ubuntu 20.04 server i realitzarem els següents passos.

REQUISITS

Tot el codi font dels nodes croat està publicat dins https://github.com/croatapps/croat. Aquest codi font genera un programa, el node CROAT, per generar aquest programa hem de fer un procés de compilació que un cop acabat ens proporcioni un arxiu executable.

Aquest procés de compilació però demana uns requisits, uns altres programes necessaris per poder generar aquest arxiu, en el cas del CROAT els requisits o dependències mínims són:

  • GCC 4.7.3
  • CMake 2.8.6
  • Boost 1.55
  • Libcurl4-openssl-dev

Per instal·lar fácilment tots els requisits en un Ubuntu 20.04 podem executar la següent instrucció:

sudo apt install -y cmake build-essential libboost-all-dev libcurl4-openssl-dev

El procés pot trigar uns minuts a finalitzar, un cop finalitzat podrem ja engegar la compilació.

COMPILAR

Ara que ja tenim tots els requisits podem ja descarregar el codi font i procedir amb la compilació.

git clone https://github.com/CroatApps/Croat.git CroatGit
cd CroatGit/
make all

El procés de compilació pot ser lent en alguns casos, un cop finalitzat tindrem els arxius executables dins la carpeta build/release/src.

cd build/release/src/
ll

L'arxiu en concret que executa el node és el croatd

En aquest moment ja som capaços d'executar el croatd com a node, prepararem una carpeta amb l'arxiu a executar dins l'arrel i l'executarem, ho podem fer amb les següents instruccions:

cd ..
mkdir croat
cd croat
cp ../CroatGit/build/release/src/croatd .
cp ../CroatGit/build/release/src/simplewallet .
./croatd

Aquest el que intentarà es sincronitzar-se amb la xarxa i començarà a descarregar la cadena de blocs, aquest procés pot trigar més d'un dia, un cop executat el croatd per primer cop prem les tecles [CTRL+c] per aturar la sincronització i continua amb el següent punt (FastSync) si vols una sincronització ràpida.

FastSync

Tal com dèiem, hi ha un procés per fer una sincronització ràpida de la cadena de blocs "FastSync", aquest procés és bàsicament descarregar una cadena recent d'un dels servidor de la comunitat CROAT.

Periòdicament es fan còpies dins un arxiu .zip de la cadena de blocs "blockchain", podriem dir que és com fer una copia de l'arxiu de base de dades on hi ha tota la informació, un node trigarà molt menys a actualitzar-se si ja té una còpia mes o menys recent (10/15 dies), en lloc de començar a sincronitzar tots els moviments des de l'inici que va arrencar la "blockchain" de CROAT (Agost del 2017).

Podeu trobar còpies recents de la blockchain de CROAT dins http://blockchain.croat.community/

Per utilizarles en el nostre node la podem descarregar i descomprimir dins la carpeta ".croat" que s'ha creat a l'executar per primer cop el croatd

Els passos serien els següents, cal que utilitzeu el vostre usuari, en el nostre exemple l'usuari és (ubuntu)

cd /home/ubuntu/.croat/
rm * -r
wget http://blockchain.croat.community/CROAT-BlockChain-LAST.tar.gz
tar -xvf CROAT-BlockChain-LAST.tar.gz
rm CROAT-BlockChain-LAST.tar.gz

Tal com heu suposat, aquest procés ens fa entrar dins la carpeta on hi ha la nostre còpia local de la cadena de blocs CROAT, l'esborra, descarrega la còpia mes recent del servidor de la comunitat CROAT i el descomprimeix.

Ara ja podem tornar dins el directori on tenim el nostre croatd i mirar de executar novament:

cd /home/ubuntu/croat/
./croatd

En pocs minuts tindrem el node propi node actualitzat i operatiu.

També podem utilitzar instruccions com  (status) per saber l'estat de la sincronització.

Amb un (help) podem veure altres instruccions. Amb un (exit) tanquem correctament.

CROAT NODE – UBUNTU 20.04
(VÍDEO 1)

Revisa el següent vídeo si vols veure els punts tractats fins aquí.

SCRIPT arranc "Croatd"

En aquest punt ja sabem com arrencar manualment el croatd, per tant a continuació generarem un "script" per si ens interessa poder-ho fer automàticament, o simplament perquè sigui més facil arrencar el node.

Començarem instal·lant unes èines per poder veure fàcilment l'estat dels serveis que hi han actius dins el nostre servidor.

sudo apt install -y net-tools

Un cop fet, ja poder utilitzar la instrucció "netstat".

netstat -ntlp

Ara generarem unes carpetes dins la nostre carpeta arrel "croat" per guardar la configuració i els logs.

cd /croat
mkdir logs
mkdirconfig
mkdir scripts

Per tant tindrem:

/home/ubuntu/croat/
/home/ubuntu/croat/logs/
/home/ubuntu/croat/config/

Entrem a la carpeta config i generem un arxiu de configuació:

cd config
nano croat.conf

Dins posem la següent configuració:

p2p-bind-port=46347
p2p-bind-ip=0.0.0.0
rpc-bind-port=46348
rpc-bind-ip=0.0.0.0
log-level=2
restricted-rpc=true

Amb (CTRL+X) i després (Enter) sortim per guardar l'arxiu.

Tornem al directori (croat) i creem un "script" d'arranc.

cd ..
nano start_croatd.sh

Copiem dins el contingut d'arrencada.

#!/bin/bash
HOMEDIR=/home/ubuntu
cd $HOMEDIR

echo -#### INICIADOR DE CROAT NODE DAEMON
pkill -f '/home/ubuntu/croat/croatd'
echo
echo -## INICIANT CROAT NODE DAEMON...
/home/ubuntu/croat/croatd --config-file=/home/ubuntu/croat/config/croat.conf --log-file /home/ubuntu/croat/logs/croatd.log  &
echo sudo tail -f /home/ubuntu/croat/logs/croatd.log
echo -## CROAT NODE DAEMON INICIAT...

Amb (CTRL+X) i després (Enter) sortim per guardar l'arxiu.

També creem un arxiu per aturar el node.

nano stop_croatd.sh

Copiem dins el contingut d'aturada.

#!/bin/bash

HOMEDIR=/home/ubuntu
CROATCOREDIR=/home/ubuntu/croat

echo -## INICIANT ATURADA...
echo
echo -## ATURANT CROAT NODE DAEMON...
pkill -f '/home/ubuntu/croat/croatd'
sleep 10
echo -## FINALITZAT ##-

Amb (CTRL+X) i després (Enter) sortim per guardar l'arxiu.

Finalment hem de donar permisos als "scripts" per poder ser executats.

chmod +x *.sh

Ara només cal arrencar i revisar l'estat dels ports un cop estigui sincronitzat.

./start_croatd.sh

Per parar també podem executar l'altre "script"

./stop_croatd.sh

CROAT NODE – UBUNTU 20.04 SCRIPT ARRANC
(VÍDEO 2)

Revisa el següent vídeo si vols veure els punts tractats fins aquí.