Configuration

Mettre en place un masternode demande une compréhension de base de Linux et de la technologie blockchain, ainsi qu’une capacité à suivre des instructions de près. Cela demande également une régularité de gestion et une sécurité pointilleuse, en particulier si vous ne stockez pas vos dashs sur un portefeuille matériel. Il y aura quelques choix à faire lors de la procédure, et quelques étapes supplémentaires facultatives à suivre pour une meilleure sécurité.

Des services commerciaux d’hébergement de masternode sont disponibles si vous préférez déléguer la gestion au jour le jour de votre masternode à un opérateur professionnel. En utilisant ces services d’hébergement, vous conservez un contrôle total sur la caution de 1000 dashs et vous payez un pourcentage convenu d’avance à l’opérateur, à titre de rétribution. Il est également possible de déléguer vos clés de vote à un représentant, veuillez consulter la documentation sur la gouvernance pour en savoir plus.

Avant de commencer

Ce guide présuppose que vous mettez en place un seul masternode pour la première fois. Si vous mettez à jour un masternode déjà existant, veuillez plutôt aller ici. Si le Spork 15 n’est pas encore activé, il n’est pas encore possible d’installer directement un masternode DIP003. Vous devrez d’abord installer le masternode en suivant l’ancienne procédure puis en appliquant la procédure de mise à jour. Vous aurez besoin de :

  • 1000 dashs
  • un portefeuille pour stocker vos dashs, de préférence un portefeuille matériel, bien que le portefeuille logiciel Dash Core soit aussi envisageable
  • un serveur Linux, de préférence un serveur privé virtuel (VPS)

Dash 0.13.0 met en œuvre la DIP003, qui introduit certains changements dans la façon d’installer et de gérer un masternode. Veuillez trouver ci-dessous une liste de la documentation disponible :

Il est hautement recommandé, avant de continuer, de lire d’abord la liste des changements, afin de se familiariser avec les nouveaux concepts de la DIP003. Les commandes indiquées ci-dessous peuvent être saisies dans la console Dash Core ouverte par le menu Outils > Console de débogage, mais le même résultat peut être obtenu sur un masternode en entrant les mêmes commandes, chacune précédée par ``~/.dashcore/dash-cli ``.

Configuration de votre VPS

Un VPS, plus connu sous le nom de « serveur dans le nuage », est une installation entièrement fonctionnelle d’un système d’exploitation (Linux, en général) exécutée dans une machine virtuelle. La machine virtuelle permet au fournisseur de VPS de faire tourner de nombreux systèmes sur un seul serveur physique, rendant l’ensemble plus efficace et beaucoup moins cher que de faire tourner un unique système d’exploitation sur le « métal nu » de chaque serveur. Un VPS est idéal pour héberger un masternode Dash car les VPS proposent en général une garantie sur la disponibilité, une redondance dans le cas de problèmes matériels et une adresse IP statique qui est indispensable pour que votre masternode ne soit pas éjecté de la file d’attente des paiements. Bien que faire tourner un masternode depuis son domicile, sur un ordinateur de bureau, soit techniquement possible, cela ne marchera certainement pas de manière fiable car la plupart des fournisseurs d’accès allouent des adresses IP dynamiques aux utilisateurs domestiques.

Nous utiliserons l’hébergeur Vultr comme VPS pour notre exemple, bien que DigitalOcean, Amazon EC2, Google Cloud, Choopa ou encore OVH soient également des choix reconnus. Tout d’abord, créez un compte et créditez-le. Puis allez sur le menu Serveurs sur la gauche et cliquez sur + pour ajouter un nouveau serveur. Choisissez un endroit pour votre nouveau serveur, sur l’écran suivant :

../_images/setup-server-location.png

Page Vultr de choix d’emplacement de serveur

Choisissez Ubuntu 18.04 x64 comme type de serveur. Nous utilisons cette version LTS d’Ubuntu plutôt que la version la plus récente, car les versions LTS d’Ubuntu se voient fournir des mises à jour de sécurité pendant 5 ans, plutôt que pendant les 9 mois habituels.

../_images/setup-server-type.png

Page Vultr de choix du type de serveur

Choisissez une taille de serveur avec au moins 2 Go de mémoire vive.

../_images/setup-server-size.png

Page Vultr de choix de taille de serveur

Tapez un nom d’hôte et une étiquette pour votre serveur. Dans cet exemple, nous utiliserons « dashmn1 » comme nom d’hôte.

../_images/setup-server-hostname.png

Page Vultr de choix du nom d’hôte et de l’étiquette du serveur

Vultr installe à présent votre serveur. Cette étape peut prendre quelques minutes.

../_images/setup-server-installing.png

Page Vultr d’installation du serveur

Cliquez sur Gérer quand l’installation est terminée et prenez note de l’adresse IP, du nom d’utilisateur et du mot de passe.

../_images/setup-server-manage.png

Page Vultr de gestion du serveur

Configuration de votre système d’exploitation

Nous commencerons par nous connecter à votre serveur fraîchement créé. Sous Windows, vous devrez d’abord télécharger une application appelée PuTTY pour vous connecter au serveur. Allez sur la page de téléchargement de PuTTY et choisissez l’installeur MSI approprié à votre ordinateur. Sur Mac ou Linux, vous pouvez vous connecter directement par ssh depuis le Terminal — tapez simplement ssh root@<server_ip> puis votre mot de passe quand il vous est demandé.

../_images/setup-putty-download.png

Page de téléchargement de PuTTY

Double-cliquez sur le fichier téléchargé pour installer PuTTY, puis lancez l’application depuis votre menu Démarrer. Tapez l’adresse IP du serveur dans le champ Nom d’hôte puis cliquez sur Ouvrir. Il est possible qu’un avertissement sur le certificat vous soit affiché, puisque c’est votre première connexion à ce serveur. Vous pouvez sans risque cliquer sur Oui pour faire confiance à ce serveur à l’avenir.

../_images/setup-putty-alert.png

Alerte de sécurité de PuTTY à la connexion à un nouveau serveur

Vous êtes maintenant connecté à votre serveur et vous devriez voir une fenêtre de terminal. Commencez par vous identifier sur votre serveur avec l’utilisateur « root » et le mot de passe fourni par votre hébergeur.

../_images/setup-putty-connect.png

Demande de mot de passe à la première connexion à votre VPS

Il vous est fortement conseillé de modifier sans attendre le mot de passe de « root » et de le garder dans un endroit sûr. Vous pouvez copier et coller chacune des commandes suivantes en les sélectionnant dans votre navigateur, en faisant la combinaison de touches Ctrl-C puis en revenant sur le fenêtre PuTTY pour y faire un clic-droit. Le texte se collera à la position actuelle du curseur

passwd root

Tapez et confirmez un nouveau mot de passe (de préférence long et généré aléatoirement). Ensuite, nous allons créer un nouvel utilisateur avec la commande suivante, en remplaçant <username> par le nom d’utilisateur de votre choix

adduser <username>

Un mot de passe vous sera demandé. Tapez un nouveau mot de passe (différent de votre mot de passe « root ») puis confirmez-le. Conservez-le ensuite dans un endroit sûr. Il vous sera aussi demandé différentes informations sur l’utilisateur, mais vous pouvez les laisser vides. Une fois l’utilisateur créé, nous allons l’ajouter au groupe « sudo » de manière à ce qu’il puisse passer des commandes en tant que « root »

usermod -aG sudo <username>

Maintenant, toujours en tant que « root », nous allons mettre à jour le système directement depuis le dépôt logiciel Ubuntu

apt update
apt upgrade

Le système affiche une liste de paquets prêts à être mis à jour. Appuyez sur O et Entrée pour installer les paquets. Nous allons maintenant installer un pare-feu (et quelques autres paquets qui nous seront utiles plus tard), ajouter de la mémoire virtuelle et redémarrer le serveur pour que soit appliquée toute mise à jour nécessaire du noyau. Puis nous nous connecterons en tant que nouvel utilisateur à notre environnement fraîchement sécurisé

apt install ufw python virtualenv git unzip pv

(appuyez sur O et Entrée pour confirmer)

ufw allow ssh/tcp
ufw limit ssh/tcp
ufw allow 9999/tcp
ufw logging on
ufw enable

(appuyez sur O et Entrée pour confirmer)

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
nano /etc/fstab

Ajoutez la ligne suivante à la fin du fichier (appuyez sur Tabulation pour séparer chaque mot ou nombre), puis faites la combinaison de touches Ctrl-X pour fermer l’éditeur de texte, puis appuyez sur O et Entrée pour enregistrer le fichier.

/swapfile none swap sw 0 0

Enfin, pour empêcher les attaques par force brute sur les mots de passe, ouvrez le fichier de configuration SSH pour désactiver le login root par SSH

nano /etc/ssh/sshd_config

Repérez la ligne PermitRootLogin yes et changez-la en PermitRootLogin no. Juste en-dessous, ajoutez une ligne AllowUsers <username>, en remplaçant <username> avec le nom d’utilisateur que vous avez choisi plus haut. Puis faites la combinaison de touches Ctrl-X pour fermer l’éditeur de texte, puis Y et Entrée pour enregistrer le fichier.

Puis redémarrez le serveur :

reboot now

PuTTY se déconnectera au redémarrage du serveur.

Ce guide comprend les étapes de base pour protéger votre serveur des attaques, mais on peut faire beaucoup plus. En particulier, on peut s’authentifier avec une clé publique plutôt qu’avec une combinaison nom d’utilisateur/mot de passe, installer fail2ban pour bloquer les attaques de connexion par force brute et activer les mises à jour automatiques de sécurité. Plus d’astuces sont disponibles ici. Cependant, puisque le masternode ne stocke pas les clés de fonds Dash, ces étapes sont considérées comme en dehors de la portée de ce guide.

Envoi de la caution

Une adresse Dash avec une unique transaction de sortie non dépensée (UTXO) d’un montant exact de 1000 dashs est obligatoire pour mettre en place un masternode. Une fois cette transaction exécutée, différentes clés qui lui sont relatives doivent être collectées pour être, plus tard, saisies dans un fichier de configuration et dans une transaction d’enregistrement, en tant que preuve permettant d’enregistrer la configuration sur la blockchain et d’inclure le masternode dans la liste déterministe. Un masternode peut être démarré depuis un portefeuille matériel ou depuis le portefeuille logiciel officiel Dash Core, bien qu’un portefeuille matériel soit hautement recommandé pour améliorer la sécurité et vous protéger du piratage. Ce guide décrit toutes les étapes aussi bien pour les portefeuilles matériels que pour le portefeuille logiciel Dash Core.

Option 1 : Envoi depuis un portefeuille matériel

Configurez votre Trezor en utilisant le portefeuille Trezor à l’adresse https://wallet.trezor.io/ et envoyez-lui une transaction d’essai pour vérifier que tout fonctionne bien. Pour obtenir de l’aide sur cette étape, voir ce guide. Vous pouvez aussi (avec prudence !) ajouter une phrase de passe à votre Trezor pour protéger encore mieux votre caution. Créez un nouveau compte dans votre portefeuille Trezor en cliquant sur Ajouter un compte. Puis cliquez sur l’onglet Recevoir et envoyez exactement 1000 dashs à l’adresse affichée. Si vous mettez en place plusieurs masternodes, envoyez 1000 dashs aux adresses consécutives du même compte. Vous devriez voir la transaction arriver dès les premières confirmations, en général sous quelques minutes.

../_images/setup-collateral-trezor.png

Onglet Recevoir du portefeuille Trezor, montrant une caution de 1000 dashs bien reçue

Une fois la transaction apparue, cliquez sur le QR-code à droite pour afficher la transaction dans la blockchain. Gardez cette fenêtre ouverte le temps des étapes suivantes, car nous aurons bientôt à vérifier que les 15 confirmations ont bien eu lieu, comme dans la capture d’écran suivante.

../_images/setup-collateral-blocks.png

Explorateur de blocs de Trezor montrant 15 confirmations pour le transfert de la caution

Pendant que nous attendons les 15 confirmations, téléchargez la plus récente version de DashMasternodeTool (DMT) depuis la page GitHub ici. Décompressez le fichier et lancez l’exécutable. La fenêtre suivante s’affiche.

../_images/setup-collateral-dmt-start.png

Écran de démarrage de DashMasternodeTool

Cliquez sur le troisième bouton depuis la gauche, Vérifier la connexion au réseau Dash, dans le coin supérieur gauche de la fenêtre principale, pour vérifier que la connexion fonctionne. Puis connectez votre appareil Trezor et cliquez sur Tester la connexion au portefeuille matériel pour vérifier que la connexion au Trezor fonctionne.

../_images/setup-collateral-connection.png
../_images/setup-collateral-hardware.png

Confirmations de connexion réussie dans DashMasternodeTool

Nous allons maintenant nous servir de DMT pour extraire l’identifiant de transaction et l’ancienne clé de masternode (nécessaire pour le démarrer pendant la période de transition vers DIP003). Suivez les étapes ci-dessous, telles que montrées dans cette capture d’écran :

../_images/setup-collateral-dmt-steps.png

Étapes de configuration de DashMasternodeTool

  1. Cliquez sur le bouton Nouveau.
  2. Assurez-vous d’être sur la page de réglages d’un masternode non déterministe, puis cliquez sur Generate new pour générer une ancienne clé de masternode. Copiez-collez cette clé dans un éditeur de texte.
  3. Cliquez sur Alter configuration to deterministic (Convertir la configuration en mode déterministe)
  4. Tapez un nom pour votre masternode. Le nom d’hôte que vous avez indiqué précédemment pour votre VPS est un bon choix.
  5. Tapez l’adresse IP de votre masternode. Elle vous a été donnée par l’hébergeur de VPS, à la mise en place de votre serveur.
  6. Saisissez le numéro de port TCP. Ce devrait être 9999.
  7. Cliquez sur Locate collateral (Trouver la caution) pour afficher les transactions de caution inutilisées qui sont disponibles sur le portefeuille matériel. Les champs Collateral address (Adresse de caution), index et Collateral TX hash (Empreinte de la transaction de caution) devraient être remplis automatiquement
../_images/setup-collateral-dmt-ready.png

DashMasternodeTool avec sa configuration, prêt à démarrer le masternode

Laissez DMT ouvert puis passez à l’étape suivante : installer Dash Core sur votre VPS.

Option 2 : Envoi depuis le portefeuille logiciel Dash Core

Lancez le portefeuille logiciel Dash Core et attendez qu’il se synchronise avec le réseau. Il devrait ressembler à ça, une fois prêt :

../_images/setup-collateral-dashcore.png

Portefeuille logiciel Dash Core entièrement synchronisé

Cliquez sur Outils > Console de débogage pour ouvrir la console. Tapez les deux commandes suivantes dans la console pour générer une ancienne clé de masternode (nécessaire pour le démarrage durant la période de transition DIP003) et obtenir une nouvelle adresse Dash pour la caution

masternode genkey
93PAqQsDjcVdYJHRfQPjsSt5338GCswMnUaSxoCD8J6fiLk4NHL

getnewaddress
yiFfzbwiN9oneftd7cEfr3kQLRwQ4kp7ue

Take note of the legacy masternode private key and collateral address, since we will need it later. The next step is to secure your wallet (if you have not already done so). First, encrypt the wallet by selecting Settings > Encrypt wallet. You should use a strong, new password that you have never used somewhere else. Take note of your password and store it somewhere safe or you will be permanently locked out of your wallet and lose access to your funds. Next, back up your wallet file by selecting File > Backup Wallet. Save the file to a secure location physically separate to your computer, since this will be the only way you can access our funds if anything happens to your computer. For more details on these steps, see here.

Now send exactly 1000 DASH in a single transaction to the new address you generated in the previous step. This may be sent from another wallet, or from funds already held in your current wallet. Once the transaction is complete, view the transaction in a blockchain explorer by searching for the address. You will need 15 confirmations before you can start the masternode, but you can continue with the next step at this point already: installing Dash Core on your VPS.

../_images/setup-collateral-blocks.png

Explorateur de blocs de Trezor montrant 15 confirmations pour le transfert de la caution

Installation de Dash Core sur votre VPS

Dash Core est le logiciel formant le socle, à la fois, du portefeuille logiciel Dash Core à interface graphique et des masternodes Dash. Lorsqu’il tourne sans interface graphique, il fonctionne en tant que daemon sur votre VPS (dashd) et il peut être contrôlé par une ligne de commande (dash-cli).

Lancez une nouvelle fois PuTTY ou une console de terminal, et connectez-vous à votre VPS avec le nom d’utilisateur et le mot de passe que vous venez de créer pour votre nouvel utilisateur non-root. Il existe deux manières d’installer Dash Core sur votre VPS : une option automatisée qui utilise un utilitaire nommé Dashman, créé par Moocowmoo, membre de l’équipe de développement, et une option plus compliquée qui vous permettra de comprendre toutes les étapes clés de la préparation d’un masternode.

Option 1 : Installation automatisée avec Dashman

Pour installer Dash Core avec Dashman, saisissez les commandes suivantes après vous être connecté

cd ~
git clone https://github.com/moocowmoo/dashman
~/dashman/dashman install

(appuyez sur O et Entrée pour confirmer)

dashman will download the latest version of Dash Core for your system, as well as an initial snapshot of the blockchain to speed up the bootstrapping process. Next download and install Sentinel, which is required for masternodes at version 0.12.1 or higher:

~/dashman/dashman install sentinel

Your system is now running as a standard Dash node, and is busy completing synchronisation with the blockchain. Since dashman does not automatically restart your masternode in the event of a system error, add a check function to crontab to make sure it checks every minute to ensure your masternode is still running:

crontab -e

Choisissez Nano comme éditeur de texte puis saisissez la ligne suivante à la fin du fichier, après la ligne concernant Sentinel

* * * * * pidof dashd || ~/.dashcore/dashd

Press enter to make sure there is a blank line at the end of the file, then press Ctrl + X to close the editor and Y and Enter save the file. Check the sync status and wait until all blockchain synchronisation and the 15 confirmations for the collateral transaction are complete:

~/dashman/dashman status
../_images/setup-dashman-done.png

Affichage de Dashman montrant un masternode prêt à être démarré

Continue with the next step to register your masternode.

Option 2 : Installation manuelle

To manually download and install the components of your Dash masternode, visit the GitHub releases page and copy the link to the latest x86_64-linux-gnu version. Go back to your terminal window and enter the following command, pasting in the address to the latest version of Dash Core by right clicking or pressing Ctrl + V:

cd /tmp
wget https://github.com/dashpay/dash/releases/download/v0.13.0.0-rc10/dashcore-0.13.0.0-rc10-x86_64-linux-gnu.tar.gz

Vérifiez l’intégrité de votre téléchargement en lançant la commande suivante et en comparant sa valeur de sortie à la valeur donnée par le fichier SHA256SUMS.asc

wget https://github.com/dashpay/dash/releases/download/v0.13.0.0-rc10/SHA256SUMS.asc
sha256sum dashcore-0.13.0.0-rc10-x86_64-linux-gnu.tar.gz
cat SHA256SUMS.asc

Vous pouvez aussi, de manière facultative mais conseillée, vérifier l’authenticité de votre téléchargement et son caractère officiel de logiciel de l’équipe Dash Core. Tous les logiciels Dash ont une signature GPG émise par UdjinM6 avec la clé 8359 2BD1 400D 58D9, qu’on peut vérifier ici sur Keybase. Importez la clé, téléchargez le fichier ASC pour la version la plus récente de Dash et vérifiez la signature comme ceci

curl https://keybase.io/udjinm6/pgp_keys.asc | gpg --import
gpg --verify SHA256SUMS.asc
../_images/setup-manual-gpg.png

Téléchargement de la clé PGP et vérification de l’exécutable signé

Create a working directory for Dash, extract the compressed archive and copy the necessary files to the directory:

mkdir ~/.dashcore
tar xfv dashcore-0.13.0.0-rc10-x86_64-linux-gnu.tar.gz
cp -f dashcore-0.13.0/bin/dashd ~/.dashcore/
cp -f dashcore-0.13.0/bin/dash-cli ~/.dashcore/

Créez un fichier de configuration avec la commande suivante

nano ~/.dashcore/dash.conf

Une fenêtre d’éditeur de texte apparaîtra. Nous devons à présent créer un fichier de configuration définissant plusieurs variables. Copiez et collez le texte suivant pour démarrer, puis remplacez les variables propres à votre configuration, comme suit

#----
rpcuser=XXXXXXXXXXXXX
rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXX
rpcallowip=127.0.0.1
#----
listen=1
server=1
daemon=1
maxconnections=64
#----
masternode=1
masternodeprivkey=XXXXXXXXXXXXXXXXXXXXXXX
externalip=XXX.XXX.XXX.XXX
#----

Remplacez les champs marqués XXXXXXX comme suit :

  • rpcuser : saisissez une chaîne alphanumérique aléatoire, sans caractères spéciaux
  • rpcpassword : saisissez une chaîne alphanumérique aléatoire, sans caractères spéciaux
  • masternodeprivkey: this is the legacy masternode private key you generated in the previous step
  • externalip : il s’agit de l’adresse IP de votre VPS

Le résultat devrait ressembler à ça :

../_images/setup-manual-conf.png

Saisie de données clés dans le fichier « dash.conf » sur le VPS du masternode

Faites la combinaison de touches Ctrl-X pour fermer l’éditeur de texte, puis O et Entrée pour enregistrer le fichier. Vous pouvez à présent lancer Dash sur le masternode pour commencer la synchronisation avec la blockchain

~/.dashcore/dashd

Un message Démarrage du serveur Dash Core vous sera affiché. Nous allons maintenant installer Sentinel, un logiciel de surveillance qui renseigne le réseau sur le bon fonctionnement de votre nœud

cd ~/.dashcore
git clone https://github.com/dashpay/sentinel.git
cd sentinel
virtualenv venv
venv/bin/pip install -r requirements.txt
venv/bin/python bin/sentinel.py

Un message vous sera affiché, disant dashd non synchronisé avec le réseau ! En attente de la synchronisation complète avant de lancer Sentinel. Ajoutez dashd et Sentinel au fichier crontab pour vous assurer qu’il soit lancé chaque minute pour surveiller votre masternode

crontab -e

Choisissez Nano comme éditeur de texte puis saisissez les lignes suivantes à la fin du fichier

* * * * * cd ~/.dashcore/sentinel && ./venv/bin/python bin/sentinel.py 2>&1 >> sentinel-cron.log
* * * * * pidof dashd || ~/.dashcore/dashd

Appuyez sur Entrée pour vous assurer qu’il y ait une ligne vide à la fin du fichier, puis faites la combinaison de touches Ctrl-X pour fermer l’éditeur de texte et O et Entrée pour enregistrer le fichier. Nous devons maintenant attendre les 15 confirmations de la transaction de caution, ainsi que la fin de la synchronisation du masternode avec la blockchain. Vous pouvez vous servir des commandes suivantes pour suivre la progression

~/.dashcore/dash-cli mnsync status

Quand la synchronisation est terminée, vous devriez voir le message suivant

{
 "AssetID": 999,
 "AssetName": "MASTERNODE_SYNC_FINISHED",
 "Attempt": 0,
 "IsBlockchainSynced": true,
 "IsMasternodeListSynced": true,
 "IsWinnersListSynced": true,
 "IsSynced": true,
 "IsFailed": false
}

Continue with the next step to construct the ProTx transaction required to enable your masternode.

Register your masternode

DIP003 introduces several changes to how a masternode is set up and operated. These are described briefly under DIP003 Masternode Changes in this documentation, or in full detail in DIP003 itself. It is highly recommended to first read at least the brief documentation before continuing in order to familiarize yourself with the new concepts in DIP003.

Option 1: Registering from a hardware wallet

Go back to DMT and ensure that all fields from the previous step are still filled out correctly. Click Generate new for the three private keys required for a DIP003 deterministic masternode:

  • Owner private key
  • Operator private key
  • Voting private key
../_images/setup-dmt-full.png

Dash Masternode Tool ready to register a new masternode

Then click Send ProRegTx and confirm the following two messages:

../_images/setup-dmt-send.png
../_images/setup-dmt-sent.png

Dash Masternode Tool confirmation dialogs to register a masternode

The BLS secret key must be entered in the dash.conf file on the masternode. This allows the masternode to watch the blockchain for relevant Pro*Tx transactions, and will cause it to start serving as a masternode when the signed ProRegTx is broadcast by the owner, as we just did above. Edit the configuration file on your masternode as follows:

nano ~/.dashcore/dash.conf

L’éditeur s’affiche avec la configuration existante du masternode. Ajoutez cette ligne en fin de fichier, en remplaçant la clé avec votre clé secrète BLS générée plus tôt

masternodeblsprivkey=21e27edbabf70a677303d527d750b502628e1c51d66d3bfd2b4583f690fbd14e

Appuyez sur Entrée pour vous assurer qu’il y ait une ligne vide à la fin du fichier, puis faites la combinaison de touches Ctrl-X pour fermer l’éditeur de texte et O et Entrée pour enregistrer le fichier. Nous devons maintenant redémarrer le masternode pour que ce changement prenne effet. Saisissez les commandes suivantes en laissant passer quelques secondes après chacune, pour laisser à Dash Core le temps de se fermer

~/.dashcore/dash-cli stop
~/.dashcore/dashd

At this point you can monitor your masternode using dashman/dashman status, by entering ~/.dashcore/dash-cli masternode status or using the Get status function in DMT. The final result should appear as follows:

../_images/setup-dash-cli-start.png

dash-cli masternode status output showing successfully started masternode

À cette étape, vous pouvez vous déconnecter de votre serveur en tapant exit. Félicitations ! Votre masternode est désormais fonctionnel.

Option 2: Registering from Dash Core wallet

Identify the funding transaction

Si vous avez utilisé une adresse de votre portefeuille logiciel Dash Core pour votre transaction de caution, vous devez à présent trouver l’identifiant de la transaction. Cliquez sur Outils > Console de débogage et tapez la commande suivante

masternode outputs

Cela devrait vous renvoyer une chaîne de caractères analogue à celle-ci

{
"ad308ec104bdf113444be609eb3dce9474a5550424204c6538843e3ccd3d4e78" : "1",
}

The first long string is your transaction hash, while the last number is the index.

Générer une paire de clés BLS

A public/private BLS key pair is required for the operator of the masternode. If you are using a hosting service, they may provide you with their public key, and you can skip this step. If you are hosting your own masternode or have agreed to provide your host with the BLS private key, generate a BLS public/private keypair as follows:

bls generate

{
  "secret": "28a85abb5aa8e820f65e33974cef0ab0bf06195f61454d2feb7fa578612d2228",
  "public": "144cbf4d472716b9504a54c7ca26906a3346253b787ffeb1a4999325049f5b2c51ef2e7c215d85f0a9142ec1c78db99b"
}

Ces clés ne sont PAS stockées par le portefeuille et doivent être conservées dans un lieu sûr, à l’image de la valeur que retournait, par le passé, la commande masternode genkey.

Ajouter la clé privée à la configuration de votre masternode

The public key will be used in following steps. The private key must be entered in the dash.conf file on the masternode. This allows the masternode to watch the network for relevant Pro*Tx transactions, and will cause it to start serving as a masternode when the signed ProRegTx is broadcast by the owner (final step below). Log in to your masternode using ssh or PuTTY and edit the configuration file on your masternode as follows:

nano ~/.dashcore/dash.conf

L’éditeur s’affiche avec la configuration existante du masternode. Ajoutez cette ligne en fin de fichier, en remplaçant la clé avec votre clé secrète BLS générée plus tôt

masternodeblsprivkey=28a85abb5aa8e820f65e33974cef0ab0bf06195f61454d2feb7fa578612d2228

Appuyez sur Entrée pour vous assurer qu’il y ait une ligne vide à la fin du fichier, puis faites la combinaison de touches Ctrl-X pour fermer l’éditeur de texte et O et Entrée pour enregistrer le fichier. Nous devons maintenant redémarrer le masternode pour que ce changement prenne effet. Saisissez les commandes suivantes en laissant passer quelques secondes après chacune, pour laisser à Dash Core le temps de se fermer

~/.dashcore/dash-cli stop
~/.dashcore/dashd

Nous allons maintenant préparer la transaction qui sera utilisée pour enregistrer le masternode DIP003 sur le réseau.

Préparer une transaction ProRegTx

D’abord, nous devons obtenir du portefeuille une adresse neuve et inutilisée, qui servira comme adresse du propriétaire. Elle est différente de l’adresse de la caution. Elle doit également être utilisée comme adresse de vote tant que le Spork 15 n’est pas encore activé. Générez une nouvelle adresse comme suit

getnewaddress

yMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5

Ensuite, générez une seconde adresse ou choisissez une adresse déjà existante, qui servira au propriétaire pour recevoir les paiements du masternode

getnewaddress

yLqyR8PHEB7Fp1ue8nSuLfuxQhrj5PSTDv

Vous pouvez aussi, de manière facultative, générer et alimenter une troisième adresse qui servira à payer les frais de la transaction. La clé privée de cette adresse doit être accessible par le portefeuille qui soumettra la transaction au réseau. Nous allons maintenant préparer une transaction spéciale ProRegTx non signée, en utilisant la commande protx register_prepare. Cette commande a la syntaxe suivante

protx register_prepare collateralHash collateralIndex ipAndPort ownerKeyAddr
  operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress)

Ouvrez un éditeur de texte, tel que Notepad, pour préparer cette commande. Remplacez chaque argument de la commande comme suit :

  • collateralHash : l’identifiant de la transaction (txid) de la caution de 1000 dashs
  • collateralIndex : l’index de sortie de la transaction de la caution de 1000 dashs
  • ipAndPort : l’adresse IP et le port du masternode, suivant le format x.x.x.x:yyyy
  • ownerKeyAddr : l’adresse Dash nouvellement générée ci-dessus, pour l’adresse du propriétaire et de vote
  • operatorPubKey : la clé publique BLS générée ci-dessus (ou fournie par votre service d’hébergement de masternode)
  • votingKeyAddr : l’adresse Dash nouvellement générée ci-dessus, ou bien l’adresse d’un délégué, utilisée pour le vote des propositions budgétaires
  • operatorReward : le pourcentage de la récompense de bloc à allouer à l’opérateur en tant que paiement
  • payoutAddress : une adresse Dash nouvelle ou déjà existante, où le propriétaire recevra les paiements de masternode
  • feeSourceAddress : une adresse (facultative) d’où seront prélevés les frais de la transaction ProTx. Si elle n’est pas spécifiée, c’est l’adresse payoutAddress qui sera utilisée.

Veuillez noter qu’il revient à l’opérateur de spécifier sa propre adresse de paiement avec une transaction update_service distincte, dans le cas où vous définissez une operatorReward différente de zéro. Le propriétaire de la caution du masternode ne spécifie pas lui-même l’adresse de paiement de l’opérateur.

Exemple (effacez les sauts de ligne si vous le copiez)

protx register_prepare
  ad308ec104bdf113444be609eb3dce9474a5550424204c6538843e3ccd3d4e78
  1
  140.82.59.51:10004
  yMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5
  144cbf4d472716b9504a54c7ca26906a3346253b787ffeb1a4999325049f5b2c51ef2e7c215d85f0a9142ec1c78db99b
  yMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5
  0
  yLqyR8PHEB7Fp1ue8nSuLfuxQhrj5PSTDv

Sortie

{
   "tx": "0300010001784e3dcd3c3e8438654c20240455a57494ce3deb09e64b4413f1bd04c18e30ad0000000000feffffff01cccfa204000000001976a9141ea44ced396667eb7d1c5b3699e04b5b3046ecfb88ac00000000d1010000000000784e3dcd3c3e8438654c20240455a57494ce3deb09e64b4413f1bd04c18e30ad0100000000000000000000000000ffff8c523b33271411c59262c9633a1bb810a7fc2b833c43cfa852ab144cbf4d472716b9504a54c7ca26906a3346253b787ffeb1a4999325049f5b2c51ef2e7c215d85f0a9142ec1c78db99b11c59262c9633a1bb810a7fc2b833c43cfa852ab00001976a91405c5fed6a3eb0b92ea5119039efae7a8dee5456488ac4e6cc5451440a6044dbd04d33a11f4cddc9021532ede3012ebbc31c0bb4ceb9c00",
  "collateralAddress": "yiFfzbwiN9oneftd7cEfr3kQLRwQ4kp7ue",
  "signMessage": "yLqyR8PHEB7Fp1ue8nSuLfuxQhrj5PSTDv|0|yMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5|yMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5|4e00de34ee03d28adb4e1fdaec966ae239c11da7e6115f566fc4b3f75c8a5503"
}

Ensuite, nous allons utiliser les champs collateralAddress et signMessage pour signer la transaction, et la sortie du champ tx pour soumettre la transaction au réseau.

Signer la transaction ProRegTx

We will now sign the content of the signMessage field using the private key for the collateral address as specified in collateralAddress. Note that no internet connection is required for this step, meaning that the wallet can remain disconnected from the internet in cold storage to sign the message. In this example we will again use Dash Core, but it is equally possible to use the signing function of a hardware wallet. The command takes the following syntax:

signmessage address message

Exemple

signmessage yiFfzbwiN9oneftd7cEfr3kQLRwQ4kp7ue yLqyR8PHEB7Fp1ue8nSuLfuxQhrj5PSTDv|0|yMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5|yMwR1zf2Cv9gcMdHULRVbTTMGw7arvpbM5|4e00de34ee03d28adb4e1fdaec966ae239c11da7e6115f566fc4b3f75c8a5503

Sortie

H3ub9BATtvuV+zDGdkUQNoUGpaYFr/O1FypmrSmH5WJ0KFRi8T10FSew0EJO/+Ij+OLv4r0rt+HS9pQFsZgc2dE=

Soumettre le message signé

We will now submit the ProRegTx special transaction to the blockchain to register the masternode. This command must be sent from a Dash Core wallet holding a balance, since a standard transaction fee is involved. The command takes the following syntax:

protx register_submit tx sig

Où :

  • tx: The serialized transaction previously returned in the tx output field from the protx register_prepare command
  • sig: The message signed with the collateral key from the signmessage command

Exemple

protx register_submit 0300010001784e3dcd3c3e8438654c20240455a57494ce3deb09e64b4413f1bd04c18e30ad0000000000feffffff01cccfa204000000001976a9141ea44ced396667eb7d1c5b3699e04b5b3046ecfb88ac00000000d1010000000000784e3dcd3c3e8438654c20240455a57494ce3deb09e64b4413f1bd04c18e30ad0100000000000000000000000000ffff8c523b33271411c59262c9633a1bb810a7fc2b833c43cfa852ab144cbf4d472716b9504a54c7ca26906a3346253b787ffeb1a4999325049f5b2c51ef2e7c215d85f0a9142ec1c78db99b11c59262c9633a1bb810a7fc2b833c43cfa852ab00001976a91405c5fed6a3eb0b92ea5119039efae7a8dee5456488ac4e6cc5451440a6044dbd04d33a11f4cddc9021532ede3012ebbc31c0bb4ceb9c00 H3ub9BATtvuV+zDGdkUQNoUGpaYFr/O1FypmrSmH5WJ0KFRi8T10FSew0EJO/+Ij+OLv4r0rt+HS9pQFsZgc2dE=

Sortie

b823338301e47875493c20361a23aef034578030c639480203b394669ab05e09

Your masternode is now registered and will appear on the Deterministic Masternode List after the transaction is mined to a block. You can view this list on the Masternodes -> DIP3 Masternodes tab of the Dash Core wallet, or in the console using the command protx list valid, where the txid of the final protx register_submit transaction identifies your DIP003 masternode. Note again that all functions related to DIP003 will only take effect once Spork 15 is enabled on the network. You can view the spork status using the spork active command.

At this point you can go back to your terminal window and monitor your masternode using dashman/dashman status, by entering ~/.dashcore/dash-cli masternode status or using the Get status function in DMT. The final result should appear as follows:

../_images/setup-dashman-started.png

Message d’état de Dashman pour un masternode bien démarré

À cette étape, vous pouvez vous déconnecter de votre serveur en tapant exit. Félicitations ! Votre masternode est désormais fonctionnel.