CROAT "Node" – Compilació i sincronització ràpida
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.
TAULA DE CONTINGUTS
rev.02/04/2021
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í.