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
- Port P2P del programa: 46347
- Port RPC del programa: 46348
- 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
- ID del procés, podem així fer un “kill 1343” per tancar
- RPC Server, el moneder esta preparat
- 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)