A continuació detallem un seguit de passos per prepar un Grup de Mineria, no és necessari ser un usuari expert per acconseguir-ho però si que en algun punt sigui interessant poder tenir uns coneixaments bàsics de Linux… Comencem?

Primer de tot cal saber que un grup de mineria, o Pool, ha de ser un equip que estigui 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”, recomenem llogar un servidor al “núvol”.

Utilizarem un Sistema Operatiu Ubuntu 16.04 server, la imatge en concret que utilitzem en aquest cas és (ubuntu-16.04.3-server-amd64). El nostre usuari es diu (administrador), utilitzeu el vostre usuari o (root) en el seu lloc segons la ruta que us mostrem…

ENTREM AL SERVER

Si ens validem amb el nostre usuari podem revisar el directori d’inici que serà (/home/usuari/), només començar estarà buit.

administrador@ubuntuserver01:~$ cd /home/administrador/
administrador@ubuntuserver01:~$ ls
administrador@ubuntuserver01:~$

DESCARREGAR I SINCRONITZAR CROATCORE

Descarreguem el CROATCore, versió Linux, de la web http://croat.cat/#downloads, i el deixem dins una carpeta “croatcore

mkdir croatcore; cd croatcore; wget https://croat.cat/apps/CroatCore_v1_55_ubuntu_16.04.tar.gz

Descomprimim l’arxiu “CroatCore_v1_55_ubuntu_16.04.tar.gz” descarregat i l’esborrem

tar -zxvf CroatCore_v1_55_ubuntu_16.04.tar.gz

rm CroatCore_v1_55_ubuntu_16.04.tar.gz

Sincronitzem des de consola el “croatd” amb la cadena de blocs “blockchain“, mes endavant executarem el mateix procés de fons

./croatd --config-file configs/croat.conf

El procés pot trigar una estona (4 hores en el nostre cas…), hem d’esperar un missatge que diu “SYNCHRONIZED OK“.

A continuació detallem 3 punts importants

  1. Port P2P del programa: 46347
  2. Port RPC del programa: 46348
  3. Estat de la sincronizació amb la cadena de blocks

Finalment veiem el missatge per consola “SYNCHRONIZED OK“, això vol dir que ja tenim la cadena de blocs sincronitzada.

Ara hem de sortir per poder executar el “croatd” com un procés de fons, per sortir escrivim “exit

Executem la següent instrucció

nohup /home/administrador/croatcore/croatd --config-file /home/administrador/croatcore/configs/croat.conf --log-file /home/administrador/croatcore/croatd.log > /dev/null 2>&1 &

Ara ja tindrem el procés del “croatd” corrent de fons, en aquest punt podem practicar diferents coses

a) Mirar el log

Per mirar el log podem utilitzar la següent instrucció

tail -f croatd.log

Per finalitzar cal premer “Ctrl+C

b) Finalitzar el procés “croatd”

Primer hem de saber l’id de procés

ps -ef | grep croatd

Ara el podem finalitzar amb un “kill id“, en el nostre cas és 1256

kill 1256

Per continuar hem de tenir el “croatd” corrent de fons, el deixem engegat i continuem

nohup /home/administrador/croatcore/croatd --config-file /home/administrador/croatcore/configs/croat.conf --log-file /home/administrador/croatcore/croatd.log > /dev/null 2>&1 &

CREAR MONEDER I PERMETRE CONEXIONS RPC

Ara necessitem crear el nostre moneder “wallet” amb el programa “simplewallet” i deixar obert també aquest programa de tal manera que accepti conexións RPC per poder operar. Estant situats a la carpeta “croatcore” l’executem (Recordeu que hem de tenir el “SYNCHRONIZED OK” del “croatd“)

./simplewallet --config-file configs/croat.conf --data-dir=/home/administrador/.croat

Tenim 4 opcions amb les lletres (O, G, I, E)

  • O – Obrir un moneder ja creat anteriorment
  • G – Generar un moneder nou
  • I – Importar un moneder
  • E – Sortir

En el nostre cas farem “G” per generar un moneder nou

Posem un nom “poolwallet” per exemple, una contrasenya, un cop fet tindrem 2 valors molt importants a guardar, la direcció del nostre moneder i la clau d’importació.

Els següents valors són d’exemple, no els utilitzeu per vosaltres!

2017-Dec-17 23:23:12.222929 INFO Generated new wallet: CkYi7bbqaxi4RrKfgmGC7tJtWwu9GgJpqV7k46nUKRVK48U239Vrdn3cQoW5pErKPGioh3jXba6Ja3SABK3sE7Jk2PEDdJV
2017-Dec-17 23:23:12.222929 INFO view key: 8ca6bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf6510e

Esperem uns instants i després amb “exit” sortim del “simplewallet” , també tenim altres instruccions si posem “help” . Aprofiteu per guardar les claus del wallet, ja que si el voleu recuperar mai us feran falta, per fer-ho cal utilitzar la instrucció “export_keys”.

Per arrancar correctament de fons el “simplewallet” tindrem abans d’editar l’arxiu “configs/croat.conf

nano configs/croat.conf

Dins afegim 6 valors al final, tant “wallet-file” com “password” han de ser els que hem triat al crear el moneder, també cal definir el nostre “data-dir” correctament

 data-dir=/home/administrador/.croat 
 wallet-file=/home/administrador/croatcore/poolwallet.wallet
 password=1234567890
 wallet-rpc-bind-ip=127.0.0.1
 wallet-rpc-bind-port=46349
 daemon-port=46348

Finalment premem “Ctrl+X“, diem “S” i premem “Intro” per guardar.

Ara executem la següent instrucció per fer corre el moneder de fons

nohup /home/administrador/croatcore/simplewallet --config-file /home/administrador/croatcore/configs/croat.conf > /home/administrador/croatcore/simplewallet.log 2>&1 &

A l’igual que amb el “croatd“, podem ara mirar si s’executa, tancar el programa amb un “kill id“, mirar el “log” i fins i tot els “ports” que està escoltant

ps -ef | grep simplewallet
tail -f simplewallet.log
netstat -ntlp
kill id

  1. ID del procés, podem així fer un “kill 1343” per tancar
  2. RPC Server, el moneder esta preparat
  3. Ports, tenim Croatd (P2P = 46347 / RPC = 46348) i Simplewallet ( RPC = 46349 )

INSTAL·LAR POOL (DEPENDENCIES)

Amb els programes “croatd” i “simplewallet” corrent de fons, ja podem començar a preparar el programa que gestionarà tot el procés de minat amb els diferents usuaris. Dins GitHub hi ha diferents versions de “pool cryptonote”, en aques cas nosaltres utilitzem el repositori de Github https://github.com/forknote/forknote-pool

  • INSTAL·LAR DEPENDENCIES POOL

Necessitem instal·lar tot un seguit de components per tal de fer funcionar correctament el “pool”, ho farem amb la següent instrucció

sudo apt-get install -y git build-essential redis-server libboost-all-dev cmake libssl-dev
  • INSTAL·LAR NodeJS

Per instal·lar NodeJS ens situem al directori de l’usuari, descarreguem el programa, l’extraiem i l’instal·lem…

cd /home/administrador/
wget https://nodejs.org/dist/v0.10.48/node-v0.10.48.tar.gz
tar -zxvf node-v0.10.48.tar.gz
rm node-v0.10.48.tar.gz
cd node-v0.10.48
./configure
make
sudo make install

Abans de continuar fem una petita comprovació de les versions “npm” i “node”

administrador@ubuntuserver01:~/node-v0.10.48$ npm -v
2.15.1
administrador@ubuntuserver01:~/node-v0.10.48$ node -v
v0.10.48

  • INSTAL·LAR Base de dades Redis

El “pool” guarda l’estat de tots els pagaments, accions, etc,.. dins un arxiu de base de dades. Descarreguem i instal·lem la Redis per gestionar-ho.

cd /home/administrador/
wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
rm redis-stable.tar.gz
cd redis-stable
make
sudo make install
sudo apt-get install -y tcl
  • INSTAL·LAR Servidor WEB

Hi ha diferents servidos web possibles a utilizar, a continuació fem l’instal·lació simple d’un servidor web APACHE

sudo apt-get install apache2 -y

Si tot ha anat bé, podem mirar d’obrir la pàgina web “http://ipserver“, on “ipserver” es la direcció ip del nostre servidor

INSTAL·LAR POOL (SERVEI)

 Ara ja tenim tot el necessari per instal·lar el servei del “pool”, ens situem al directori arrel de l’usuari i el descarreguem de Github. Tenim diferents opcions, el repositori original el tenim dins (https://github.com/forknote/forknote-pool). De totes maneres podem utilitzar aquest altre que ja porta configuracions per CROAT (https://github.com/CroatApps/croat-pool) per a versions node>=0.10 o aquesta altre (https://github.com/CroatApps/cryptonote-nodejs-pool) per a versions node >=4.0.

cd /home/administrador/
git clone https://github.com/CroatApps/croat-pool.git
cd croat-pool
npm update

Un cop situats dins la carpeta pool, podem revisar el contingut, ens interessa modificar l’arxiu “config.json

nano config.json

Arxiu de configuració d’exemple per CROAT: config

Cal modificar alguns paràmetres amb els vostres valors, a part podeu llegir en general l’arxiu per modificar altres opcions que no comentem.

"poolAddress": "La direcció del vostre moneder/wallet"
"poolFee": Posem la "taxa", per exemple si volem un 1% de comisió posem 1.0
"password": "your_password"  Posem una contrasenya, serà necessaria per administrar el "pool" via web

Finalment premem “Ctrl+X“, diem “S” i premem “Intro” per guardar.

Reiniciem abans de continuar

sudo reboot

Un cop reiniciat el servidor, hem d’engegar el “croatd” i el “simplewallet“, revisem els logs en cada cas per mirar que tot funcioni correctament! (Recordeu que hem de tenir el “SYNCHRONIZED OK” del “croatd“)

Entrem a la carpeta “croat-pool” i iniciem el servei, de moment per consola, més endavant ja el deixarem de fons

cd /home/administrador/croat-pool/
node init.js

Veiem que el port API és “8117“, també que tenim 3 ports per minar “3333“, “5555” i “7777“. Amb “Ctrl+C” sortim.

Si no surt cap error, podem iniciar ja el servei de fons

cd /home/administrador/croat-pool/
nohup node /home/administrador/croat-pool/init.js > /dev/null 2>&1 &

Recordem que podem revisar el “procés” i els “ports” en aquest moment per si fa falta tancar amb “kill id

ps -ef | grep node
netstat -ntlp
kill 5204

INSTAL·LAR POOL (WEB)

 Ara ja tenim tot el servei engegat, ja podriem començar a “minar” però hem de tenir la pàgina web per els usuaris, ja que si no no podran saber com fer-ho ni mirar l’estat del seu treball. Dins la carpeta “pool” tenim una carpeta “website“, el contingut l’agafem com exemple i el publiquem.

Ens situem al directori web del servidor i des dell copiem el contingut de “pool/website

cd /var/www/html/
sudo cp /home/administrador/croat-pool/website/. . -r

Ara hem d’editar l’arxiu “config.js” amb els nostres valors

sudo nano config.js

Especifiquem diferents valors perquè funcioni, poden ser per IP o NOM de domini:

var api = "http://192.168.1.42:8117"; 

var poolHost = "192.168.1.42";  

var blockchainExplorer = "http://explorer.croat.cat/?hash={id}#blockchain_block";

var transactionExplorer = "http://explorer.croat.cat/?hash={id}#blockchain_transaction";

Ja podem guardar “Ctrl+X“, “S” i “Intro

Si tot va bé, la web ja funciona!!!

Recordeu que podeu veure l’estat, errors i altres opcions des de la pàgina (/admin.html) amb la contrasenya definida dins (/home/administrador/pool/config.json)