Créer un masternode pour la cryptomonnaie BEAR - voytek

Posté le Sun 24 February 2019 dans cryptomonnaie

Préparation du serveur

Pré-requis

On commence avec un serveur VPS fraîchement installé sous CentOS 7 minimal.

Installation du serveur

On met à jour le système :

yum update

On installe EPEL :

yum install epel-release
yum update

On installe les dépendances requisent par voytek :

yum install zeromq boost libdb4-cxx miniupnpc openssl net-tools

On récupère les 3 fichiers voytek compilés sous CentOS (voir l'article https://david.durieux.family/fr/compiler_cryptomonnaie_bear_voytek_centos7_masternode.html)

Vous pouvez récupérer les fichiers pour CentOS 7 (version 1.1.1) sur mon serveur via les commandes :

wget "https://david.durieux.family/voytek-cli"
wget "https://david.durieux.family/voytek-tx"
wget "https://david.durieux.family/voytekd"

Vérifier que les checksum de chacun des 3 fichiers sont les même :

# sha512sum voytek-cli 
81508fa95d31b41975569aa9adc71b10ae33252d009248ce99a7b8f89162ed54f14d62910bd9549bed698e3018c05a867603a04cac60ed400f8f8052ce6f8225  voytek-cli
# sha512sum voytek-tx  
bc204aca93179edb7fe00ad495973cbcabe010e674fe6cc710d1a81a03303b3fe706b4859e903324ba8a163a0bf248189316fa4f2c4efe74b17d71f796b805fc  voytek-tx
# sha512sum voytekd  
ace5d9dccab5e0cd5d6b2644afacf14a73bf473b93187ec7f815e515f9720b5ce71b393ecb7823123a9ae7173df6756fcc9637564a864f11426c6831cea71f60  voytekd

On lance le daemon voytekd qui va créer l'arborescence de base dans ~/.voytek/ :

./voytekd

Cette commande nous renvoi un message du type :

/root/.voytek/voytek.conf
It is recommended you use the following random password:
rpcuser=voytekrpc
rpcpassword=9sSfNL1ofXcyHdujb8JKSG86nkz2SzyfQeLWvbkePic1
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s "Voytek Alert" admin@foo.com

On ouvre le fichier ~/.voytek/voytek.conf et on met dedans :

server=1
listen=1
daemon=1
#masternode=1
rpcuser=voytekrpc
rpcpassword=9sSfNL1ofXcyHdujb8JKSG86nkz2SzyfQeLWvbkePic1
rpcallowip=127.0.0.1
#externalip=
#masternodeaddr=:17171
#masternodeprivkey=

Puis on redémarre voytekd :

./voytekd

Si tout va bien, on a le message suivant :

Voytek server starting

Maintenant, on attend que la blockchain soit à jour, pour cela on doit avoir le champ verificationprogress qui doit être > 0.99990000 avec la commande :

./voytek-cli getblockchaininfo

Démarrer voytekd quand le serveur VPS démarre

Afin que voytekd démarre avec le démarage du serveur, on va créer un fichier /etc/systemd/system/voytekd.service et y mettre :

[Unit]
Description=Voytek crypto currency daemon
After=network.target

[Service]
User=root
Group=root
ExecStart=/root/voytekd -conf=/root/.voytek/voytek.conf -pid=/run/voytekd/voytekd.pid
Type=forking
PIDFile=/run/voytekd/voytekd.pid
#Restart=on-failure

# Provide a private /tmp and /var/tmp.
PrivateTmp=true

# Mount /usr, /boot/ and /etc read-only for the process.
ProtectSystem=full

# Disallow the process and all of its children to gain
# new privileges through execve().
NoNewPrivileges=true

# Use a new /dev namespace only populated with API pseudo devices
# such as /dev/null, /dev/zero and /dev/random.
PrivateDevices=true

# Deny the creation of writable and executable memory mappings.
MemoryDenyWriteExecute=true


[Install]
WantedBy=multi-user.target

Puis on recharge systemd :

systemctl daemon-reload

Et pour finir on active le service au démarrage :

systemctl enable voytekd

Le serveur est prêt.

Création et configuration d'un masternode

Pré-requis

On a 2 instances qui seront nommées :

  • vpsmns : masternode voytek sur le VPS
  • mywallet : wallet voytek sur votre ordinateur

Configuration sur le wallet

On va configurer notre masternode sur mywallet.

On génère une clé masternode :

./voytek-cli masternode genkey

On génère une adresse de wallet pour notre masternode (avec le nom du masternode souhaité, ici on utilisera mn1) :

./voytek-cli getaccountaddress "mn1"

On sauvegarde les outputs actuels :

./voytek-cli masternode outputs > out1

On transfère 10000 BEARs à cette addresse de masternode créée ci-dessus :

./voytek-cli sendtoaddress xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 10000

On sauvegarde les outputs actuels :

./voytek-cli masternode outputs > out2

On récupère l'output de notre masternode :

diff -u out1 out2

ce qui nous donne quelquechose de ce genre :

+        "txhash" : "hpz6pou8pyqiq2h3ty5mefxtxs2aub47o2vixtznz2ryrsnd6c6pukfdhijtpady",
+        "outputidx" : 0
+    },
+    {

On ouvre le fichier ~/.voytek/masternode.conf et on ajoute la ligne :

mn1 54.37.124.23:17171 32pi9pjf4qe6v6rh4gmurmgmajqmbefvgz89urwd6hc72een832 hpz6pou8pyqiq2h3ty5mefxtxs2aub47o2vixtznz2ryrsnd6c6pukfdhijtpady 0

soit :

masternodename ipaddress:17171 masternodekey txhash outputidx

On arrête voytekd :

./voytek-cli stop

Puis après quelques secondes, on relance :

./voytekd

Configuration du masternode

On va configurer notre masternode sur vpsmns.

On modifie dans le fichier ~/.voytek/voytek.conf les lignes :

#masternode=1
#externalip=
#masternodeaddr=:17171
#masternodeprivkey=

par (remplacer l'IP 4.5.6.7 par l'IP publique du serveur VPS)

masternode=1
externalip=4.5.6.7
masternodeaddr=4.5.6.7:17171
masternodeprivkey=32pi9pjf4qe6v6rh4gmurmgmajqmbefvgz89urwd6hc72een832

On arrête voytekd :

./voytek-cli stop

Puis après quelques secondes, on relance :

./voytekd

Activation du masternode à partir du wallet

On va activer notre masternode sur mywallet.

./voytek-cli startmasternode alias false "mn1"

Démarrage final du masternode

On démarre notre masternode sur vpsmns.

Il peut s'écouler plusieurs minute pour que la commande fonctionne :

./voytek-cli startmasternode local false

Pour voir si notre masternode est bien démarré :

./voytek-cli masternode status

Besoin d'une second masternode?

Si vous avez besoin de monter un second masternode (ou plus), il faut refaire la manipulation depuis le début de cet article pour chaque masternode tout en changeant le nom du masternode.