Procédure de mise à jour Dash 0.13

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. La présente documentation décrit la procédure de mise à jour en deux étapes :

  1. Mise à jour du logiciel du masternode
  2. Enregistrement du masternode DIP003

La première étape doit être exécutée dès la sortie de Dash 0.13.0. Une fois que les mineurs auront fait la mise à jour et que la DIP003 aura été activée sur le réseau, il sera possible d’exécuter la seconde étape et d’enregistrer un masternode DIP003. Après qu’un nombre suffisant de masternodes auront accompli cette étape, le Spork 15 sera activé et toutes les nouvelles fonctions du réseau prendront effet.

Mise à jour du logiciel du masternode

Commencez par mettre à jour le logiciel Dash sur votre masternode. Selon la manière dont vous aviez installé ce logiciel, manuellement ou avec Dashman, vous devez suivre la procédure appropriée pour votre masternode, telle que décrite ci-dessous.

Option 1 : Mise à jour avec Dashman

Pour faire une mise à jour en utilisant Dashman, connectez-vous à votre serveur et saisissez les commandes suivantes

~/dashman/dashman sync
~/dashman/dashman update

Vérifiez l’état de votre masternode

~/dashman/dashman status

Le logiciel Dash sur le masternode est désormais mis à jour. Puisque Dash 0.13 met également à jour la version du protocole, il est nécessaire d’émettre une commande masternode start depuis DashMasternodeTool ou depuis votre portefeuille logiciel Dash Core, afin de conserver votre masternode dans la liste des paiements pendant la période de transition. Veuillez consulter la documentation 0.12.3 pour en savoir plus.

Option 2 : Mise à jour manuelle

Pour mettre à jour manuellement le logiciel Dash sur votre masternode, veuillez vous connecter à votre server avec ssh ou PuTTY. Si votre fichier crontab comporte une entrée pour redémarrer automatiquement dashd, saisissez la commande crontab -e et commentez la ligne appropriée en ajoutant le caractère ``#`` à son début. Cela doit ressembler à ceci

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

Puis interrompez l’exécution de Dash

~/.dashcore/dash-cli stop

Allez sur la page GitHub des publications et copiez le lien vers la version x86_64-linux-gnu la plus récente. Revenez à votre fenêtre de terminal et saisissez la commande suivante, en y collant l’adresse de la plus récente version de Dash Core par un clic-droit, ou par la combinaison de touches 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

sha256sum dashcore-0.13.0.0-rc10-x86_64-linux-gnu.tar.gz

Décompressez l’archive et copiez les nouveaux fichiers dans le répertoire

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/

Redémarrez Dash

~/.dashcore/dashd

Vous verrez un message disant « Démarrage du serveur Dash Core ». Nous allons maintenant mettre à jour Sentinel

cd ~/.dashcore/sentinel/
git checkout master
git pull

Enfin, dans votre fichier crontab, décommentez la ligne permettant de redémarrer automatiquement Dash. Faites à nouveau la commande crontab -e et effacez le caractère #.

Le logiciel Dash sur le masternode est désormais mis à jour. Puisque Dash 0.13 met également à jour la version du protocole, il est nécessaire d’émettre une commande masternode start depuis DashMasternodeTool ou depuis votre portefeuille logiciel Dash Core, afin de conserver votre masternode dans la liste des paiements pendant la période de transition. Veuillez consulter la documentation 0.12.3 pour en savoir plus.

Enregistrement du masternode avec DashMasternodeTool (DMT)

La présente documentation explique comment enregistrer un masternode déjà existant dans la liste des masternodes DIP003 si la caution est détenue sur un portefeuille matériel. La DIP003 doit être activée et DashMasternodeTool (DMT) version 0.9.21 ou supérieure est indispensable. Vous pouvez mettre à jour DMT en téléchargeant la version appropriée à votre système sur la page des publications DMT. Lancez DMT et vérifiez que la configuration de votre masternode déjà existant apparaît bel et bien.

Configuration

Cliquez sur le bouton Send ProRegTx (Envoyer ProRegTx) pour commencer. L”assistant de migration de masternode apparaît.

../_images/dmt-dip3-wizard.png

L’assistant de migration de masternode dans DashMasternodeTool

Tous les champs sont pré-remplis avec des valeurs suggérées.

  • Il ne devrait pas être nécessaire de modifier les champs Collateral Tx (Transaction de caution) ou IP/Port si vous utilisez toujours la même caution et le même serveur.
  • Vous pouvez facultativement modifier la Payout address (Adresse de paiement) et y indiquer toute adresse Dash valide, nouvelle ou déjà existante, car les paiements ne sont plus obligatoirement versés à l’adresse de la caution.
  • Si votre masternode est hébergé par un opérateur externe, vous pouvez indiquer un pourcentage de la récompense à allouer à cet opérateur, dans le champ Operator reward (Récompense de l’opérateur).
  • Les trois clés du masternode (propriétaire, opérateur, vote) sont nouvellement générées et n’ont pas besoin d’être modifiées.

Cliquez sur Next (Suivant) quand vous êtes prêt à continuer. DMT vérifiera que la caution est à la bonne adresse, et se préparera à créer la transaction spéciale ProRegTx qui permettra d’enregistrer le masternode sur la blockchain. Cette commande devra être envoyée depuis un portefeuille logiciel Dash Core contenant des fonds, car les frais d’une transaction standard seront consommés. Vous pouvez choisir d’envoyer cette commande depuis le nœud distant RPC mis à disposition par le développeur de DMT (automatic method, méthode automatique), ou bien d’utiliser votre propre portefeuille logiciel Dash Core pour exécuter la transaction et indiquer la source de ses frais (manual method, méthode manuelle). Cliquez sur Continue quand vous être prêt.

Option 1 : Méthode automatique

Veuillez noter que, puisque Trezor n’est pas encore compatible avec les transactions spéciales Dash, il est nécessaire de transmettre votre clé privée de propriétaire (et NON la clé privée de la caution) au serveur distant afin de signer la transaction d’enregistrement. Utilisez la méthode automatique uniquement si vous êtes connecté à votre propre client RPC Dash, ou si vous avez confiance dans l’opérateur du serveur. Le nom du serveur auquel vous êtes connecté est affiché dans le coin inférieur droit de la fenêtre principale de DMT. Les serveurs par défaut dans DMT (nommés alice, luna et suzy) sont opérés par l’auteur de DMT, qui s’est aimablement proposé pour régler les frais de transaction dans le cadre de la mise à jour DIP003.

DMT va préparer un message ProTX, puis vous demandera de confirmer en signant le message sur votre portefeuille matériel. Le message signé sera immédiatement enregistré sur la blockchain. Une fenêtre s’affiche avec les informations de configuration définitives. Cliquez sur Save to a file (Enregistrer dans un fichier) et saisissez un nom pour le nouveau fichier. Ce fichier contient diverses clés privées et publiques du masternode relatives au propriétaire, à l’opérateur et au vote, veuillez donc le conserver dans un endroit sûr. Poursuivez ci-dessous avec la dernière étape consistant à entrer la clé BLS sur le masternode.

Option 2 : méthode manuelle

La fenêtre suivante s’affiche :

../_images/dmt-dip3-manual.png

Commandes d’enregistrement manuel dans l’assistant de migration de masternode de DashMasternodeTool

Lancez le portefeuille logiciel Dash Core et attendez que la blockchain se synchronise. Suivez les étapes ci-dessous :

  1. Dans votre portefeuille logiciel Dash Core, choisissez une adresse à utiliser comme source des frais de transaction, et collez-la dans le champ 1.
  2. Ouvrez la Console de débogage par le menu Outils > Console de débogage.
  3. Copiez la commande dans le champ 2 de DMT, collez-la dans la console de débogage de Dash Core, puis appuyez sur la touche Entrée.
  4. Copiez le résultat donné par la console, collez-le dans le champ 3 de l’assistant de migration de masternode de DMT.
  5. Cliquez sur Sign message with hardware wallet (Signer le message avec le portefeuille matériel) et confirmez la signature du message sur votre portefeuille matériel.
  6. Copiez la commande du champ 4 de DMT, puis collez-la dans la console de débogage de Dash Core et appuyez sur la touche Entrée. Dash Core créera une transaction d’enregistrement sur la blockchain.
  7. Copiez-collez l’empreinte de transaction dans le champ 5 de l’assistant de migration de masternode de DMT, puis cliquez sur Continue.

Une fenêtre s’affiche avec les informations de configuration définitives. Cliquez sur Save to a file (Enregistrer dans un fichier) et saisissez un nom pour le nouveau fichier. Ce fichier contient diverses clés privées et publiques du masternode relatives au propriétaire, à l’opérateur et au vote, veuillez donc le conserver dans un endroit sûr.

Saisissez la clé BLS sur la masternode

Enfin, il est nécessaire de saisir la clé privée BLS générée par DMT sur le masternode lui-même, ou de l’envoyer à votre hébergeur de masternode. Si vous hébergez vous-même le masternode, veuillez vous y connecter avec ssh ou PuTTY, puis modifiez le fichier de configuration sur votre masternode, comme suit

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=6708c32427c464fc360d76d36b73585b158b46a1f2e24dfce19db4f48d47270b

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

Votre masternode est à présent mis à jour vers DIP003, et il apparaîtra dans la liste des masternodes déterministes. Vous pouvez afficher cette liste dans l’onglet Masternodes > Masternodes DIP3 du portefeuille logiciel Dash Core, ou dans la console en utilisant la commande protx list valid, où l’identifiant (txid) de la transaction finale à l’étape 5 identifie votre masternode DIP003. Veuillez à nouveau noter que toutes les fonctions relatives à la DIP003 ne prendront effet qu’une fois que le Spork 15 sera activé sur le réseau. Vous pouvez connaître l’état du spork avec la commande spork active.

Enregistrement de masternode depuis le portefeuille logiciel Dash Core

La présente documentation explique comment enregistrer un masternode déjà existant dans la liste des masternodes DIP003 si la caution est détenue sur un portefeuille logiciel Dash Core. La DIP003 doit être activée. 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 ``.

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

Une paire de clés BLS publique et privée est obligatoire pour l’opérateur du masternode. Si vous utilisez un service d’hébergement de masternode, il vous fournira sa clé publique, et vous pourrez sauter cette étape. Si vous hébergez vous-même votre masternode, générez une paire de clés BLS publique et privée comme suit

bls generate

{
  "secret": "565950700d7bdc6a9dbc9963920bc756551b02de6e4711eff9ba6d4af59c0101",
  "public": "01d2c43f022eeceaaf09532d84350feb49d7e72c183e56737c816076d0e803d4f86036bd4151160f5732ab4a461bd127"
}

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

La clé publique sera utilisée lors des étapes suivantes. La clé privée BLS doit être saisie dans le fichier dash.conf sur le masternode. Cela permet au masternode de surveiller sur la blockchain les transactions Pro*Tx, et cela le démarrera en tant que masternode quand la transaction signée ProRegTx sera diffusée par le propriétaire (dernière étape ci-dessous). Connectez-vous à votre masternode avec ssh ou PuTTY, puis modifiez le fichier de configuration sur votre masternode, comme suit

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=565950700d7bdc6a9dbc9963920bc756551b02de6e4711eff9ba6d4af59c0101

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

yc98KR6YQRo1qZVBhp2ZwuiNM7hcrMfGfz

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

ycBFJGv7V95aSs6XvMewFyp1AMngeRHBwy

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
  2c499e3862e5aa5f220278f42f9dfac32566d50f1e70ae0585dd13290227fdc7
  1
  140.82.59.51:19999
  yc98KR6YQRo1qZVBhp2ZwuiNM7hcrMfGfz
  01d2c43f022eeceaaf09532d84350feb49d7e72c183e56737c816076d0e803d4f86036bd4151160f5732ab4a461bd127
  yc98KR6YQRo1qZVBhp2ZwuiNM7hcrMfGfz
  0
  ycBFJGv7V95aSs6XvMewFyp1AMngeRHBwy

Sortie

{
  "tx": "030001000191def1f8bb265861f92e9984ac25c5142ebeda44901334e304c447dad5adf6070000000000feffffff0121dff505000000001976a9149e2deda2452b57e999685cb7dabdd6f4c3937f0788ac00000000d1010000000000c7fd27022913dd8505ae701e0fd56625c3fa9d2ff47802225faae562389e492c0100000000000000000000000000ffff8c523b334e1fad8e6259e14db7d05431ef4333d94b70df1391c601d2c43f022eeceaaf09532d84350feb49d7e72c183e56737c816076d0e803d4f86036bd4151160f5732ab4a461bd127ad8e6259e14db7d05431ef4333d94b70df1391c600001976a914adf50b01774202a184a2c7150593442b89c212e788acf8d42b331ae7a29076b464e61fdbcfc0b13f611d3d7f88bbe066e6ebabdfab7700",
  "collateralAddress": "yPd75LrstM268Sr4hD7RfQe5SHtn9UMSEG",
  "signMessage": "ycBFJGv7V95aSs6XvMewFyp1AMngeRHBwy|0|yc98KR6YQRo1qZVBhp2ZwuiNM7hcrMfGfz|yc98KR6YQRo1qZVBhp2ZwuiNM7hcrMfGfz|54e34b8b996839c32f91e28a9e5806ec5ba5a1dadcffe47719f5b808219acf84"
}

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

Nous allons maintenant signer le contenu du champ signMessage au moyen de la clé privée de l’adresse de la caution telle que spécifiée dans collateralAddress. Veuillez noter qu’aucune connexion à Internet n’est obligatoire pour cette étape, ce qui signifie que le portefeuille peut être déconnecté de l’Internet (en « chambre froide ») pour signer le message. Dans cet exemple nous allons à nouveau utiliser le portefeuille logiciel Dash Core, mais il est également possible d’utiliser la fonction de signature d’un portefeuille matériel. La commande a la syntaxe suivante

signmessage address message

Exemple

signmessage yPd75LrstM268Sr4hD7RfQe5SHtn9UMSEG ycBFJGv7V95aSs6XvMewFyp1AMngeRHBwy|0|yc98KR6YQRo1qZVBhp2ZwuiNM7hcrMfGfz|yc98KR6YQRo1qZVBhp2ZwuiNM7hcrMfGfz|54e34b8b996839c32f91e28a9e5806ec5ba5a1dadcffe47719f5b808219acf84

Sortie

IMf5P6WT60E+QcA5+ixors38umHuhTxx6TNHMsf9gLTIPcpilXkm1jDglMpK+JND0W3k/Z+NzEWUxvRy71NEDns=

Soumettre le message signé

Nous allons maintenant créer la transaction spéciale ProRegTx pour enregistrer le masternode sur la blockchain. Cette commande doit être envoyée depuis un portefeuille Dash Core contenant des fonds, car des frais de transaction standard seront prélevés. La commande a la syntaxe suivante

protx register_submit tx sig

Où :

  • tx : la transaction sérialisée précédemment renvoyée dans le champ de sortie tx depuis protx register_prepare à l’étape 2
  • sig : le message signé avec la clé de la caution à l’étape 3

Exemple

protx register_submit 030001000191def1f8bb265861f92e9984ac25c5142ebeda44901334e304c447dad5adf6070000000000feffffff0121dff505000000001976a9149e2deda2452b57e999685cb7dabdd6f4c3937f0788ac00000000d1010000000000c7fd27022913dd8505ae701e0fd56625c3fa9d2ff47802225faae562389e492c0100000000000000000000000000ffff8c523b334e1fad8e6259e14db7d05431ef4333d94b70df1391c601d2c43f022eeceaaf09532d84350feb49d7e72c183e56737c816076d0e803d4f86036bd4151160f5732ab4a461bd127ad8e6259e14db7d05431ef4333d94b70df1391c600001976a914adf50b01774202a184a2c7150593442b89c212e788acf8d42b331ae7a29076b464e61fdbcfc0b13f611d3d7f88bbe066e6ebabdfab7700 IMf5P6WT60E+QcA5+ixors38umHuhTxx6TNHMsf9gLTIPcpilXkm1jDglMpK+JND0W3k/Z+NzEWUxvRy71NEDns=

Sortie

9f5ec7540baeefc4b7581d88d236792851f26b4b754684a31ee35d09bdfb7fb6

Votre masternode est à présent mis à jour vers DIP003, et il apparaîtra dans la liste des masternodes déterministes dès que la transaction sera minée dans un bloc. Vous pouvez afficher cette liste dans l’onglet Masternodes > Masternodes DIP3 du portefeuille logiciel Dash Core, ou dans la console en utilisant la commande protx list valid, où l’identifiant (txid) de la transaction finale identifie votre masternode DIP003. Veuillez à nouveau noter que toutes les fonctions relatives à la DIP003 ne prendront effet qu’une fois que le Spork 15 sera activé sur le réseau. Vous pouvez connaître l’état du spork avec la commande spork active.