Fonctions avancées#

Dash Electrum est basé sur Electrum, un portefeuille Bitcoin. La plupart des fonctions sont identiques, ce qui signifie qu’il n’est pas nécessaire de reproduire toute la documentation Electrum ici même. Les sections suivantes décrivent quelques fonctions avancées couramment utilisées. Pour en savoir plus sur les autres fonctions avancées d’Electrum pour Bitcoin ou Dash, veuillez cliquer sur les liens ci-dessous.

PrivateSend#

CoinJoin propose aux utilisateurs une confidentialité améliorée pour les transactions, en répartissant le solde de l’utilisateur en un certain nombre de coupures prédéterminées, préalablement à toute dépense. CoinJoin est disponible dans Dash Electrum version 3.3.8.3 ou ultérieure, et la compatibilité avec les portefeuilles matériels a été ajoutée dans la version 3.3.8.7.

Processus et envoi#

To start PrivateSend processing in Dash Electrum, select Wallet > PrivateSend or click the PS icon in the lower right corner of the main window. The following window appears:

../../../../_images/ps-view.png

Fenêtre PrivateSend dans Dash Electrum#

Enter the Amount of Dash to keep anonymized and the number of PrivateSend rounds to use. Then click Enable PrivateSend, followed by Start Mixing. The process will begin, and the Mixing Progress bar shows the completion progress. Additional information on the process is available on the Info and Log tabs.

When processing is complete, simply check the PrivateSend checkbox on the Send tab before sending your transaction. Dash Electrum will only use Dash processed according to your specifications for the transaction.

Portefeuille matériel#

Vous pouvez utiliser des portefeuilles matériels avec Dash Electrum. Sous Linux, il peut être d’abord nécessaire d’installer des dépendances et des règles udev, comme suit

sudo apt-get install python3-dev python3-pip cython3 libusb-1.0-0-dev libudev-dev
sudo pip3 install trezor

PrivateSend processing is also supported. Starting PrivateSend processing in Dash Electrum with a hardware wallet will generate a new HD wallet and mnemonic for the PrivateSend keystore. A transaction from the hardware wallet to an address in this keystore will be created, and processing will begin. You can then spend the processed Dash, or send it back to your hardware wallet.

Masternodes#

Dash Electrum est compatible avec la création de masternode, dans l’onglet DIP3

DIP3#

L’onglet DIP3 peut être activé via le menu Afficher > Afficher DIP3. Cet onglet affiche l’état de votre ou vos masternode(s) et permet aussi de voir une liste de tous les masternodes enregistrés sur le réseau.

L’onglet affiche les données suivantes sur chaque masternode que vous avez configuré :

  • Le nom (alias) du masternode.

  • L’état du masternode (c’est-à-dire s’il a été activé).

  • Les clés

  • Le hachage de la transaction d’enregistrement du fournisseur relative au masternode.

  • L’adresse IP et le port où votre masternode peut être contacté.

../../../../_images/mn-dip3-registered-owner-operator.png

Onglet DIP3 avec informations sur les masternodes#

Configuration de masternode#

Pour configurer un masternode, allez sur l’onglet DIP3 et cliquez sur le bouton Ajouter/Importer.

Note

If combined with Electrum’s multisig features the masternode collateral can be stored in a multisig wallet for increased security flexibility. See this page for the Dash Electrum documentation demonstrating how to configure a masternode using a multisig collateral.

Soyez toujours prudent quand vous utilisez des comptes multisignature et vérifiez que chaque clé mnémonique est sauvegardée de manière appropriée.

../../../../_images/mn-dip3-add-or-import.png

Ajouter ou importer un masternode#

Electrum peut créer/enregistrer de nouveaux masternodes, mais aussi importer et enregistrer des masternodes déjà existants via un fichier masternode.conf. Actuellement, très peu de masternodes anciens sont présents, dont nous ne couvrirons en détail que l’option Créer et enregistrer un masternode DIP3.

Deux types de propriété sont supportés : propriétaire seul, et propriétaire-opérateur. La différence principale durant la configuration est que la clé privée BLS soit stockée ou non dans Electrum. Les étapes suivantes montrent la création d’un masternode auto-hébergé, donc les deux cases de type de propriété sont cochées. Cliquez Suivant pour continuer.

../../../../_images/mn-create-and-register-owner-operator.png

Choisissez un typ d’opération et de propriété#

Pour démarrer un masternode, vous devez avoir 1000 dashs mais aussi un petit montant disponible pour les frais dans votre portefeuille. Laissez cochée la case Créer une caution comme entrée ProRegTx et cliquez sur Suivant.

../../../../_images/mn-create-select-collateral.png

Choisissez une sortie de caution pour le masternode#

Certaines informations à propos de votre masternode sont obligatoires. L’adresse IP et le port utilisés par votre masternode doivent être indiqués. Cliquez sur Suivant après les avoir saisis (le port sera défini automatiquement comme le port par défaut 9999 sur le réseau principal).

../../../../_images/mn-create-service-params.png

Saisissez l’adresse IP et le port du masternode#

Chaque masternode a besoin de trois adresses : celle du propriétaire, celle pour le vote et celle pour les paiements. Electrum choisira automatiquement ces adresses depuis votre portefeuille. Cliquez sur Suivant pour continuer.

../../../../_images/mn-create-select-addresses.png

Choisissez les adresses du masternode pour le propriétaire, pour le vote et pour les paiements#

Un masternode a besoin d’une clé d’opérateur BLS telle que décrite dans la DIP3. Si vous gérez votre propre masternode, Dash Electrum et votre masternode doivent tous les deux connaître votre clé privée d’opérateur. Votre masternode utilisera la clé privée pour signer des messages, et le réseau Dash saura que vous l’avez autorisé pour cela.

Electrum générera la paire obligatoire de clé BLS privée/publique et vous fournira la ligne qui doit être copiée sur le masternode pour une configuration correcte. Cliquez sur Suivant après avoir copié cette ligne dans le fichier dash.conf de votre masternode.

../../../../_images/mn-create-bls-key-setup.png

Configuration de la clé BLS#

Tous les paramètres sont à présent configurés. Cet écran montre les détails de la configuration et vous permet d’enregistrer les informations. Assurez-vous que la case Faire la ProRegTX après l’enregistrement des données du masternode soit cochée, puis cliquez sur Sauvegarder. L’onglet Envoyer s’ouvrira et sera rempli par les informations nécessaires pour enregistrer le masternode.

../../../../_images/mn-create-review-and-save.png

Inspectez les paramètres et enregistrez le masternode#

Enregistrer votre masternode#

Comme les informations ProRegTx indispensables pour enregistrer le masternode ont été remplies à l’étape précédente, cliquez simplement sur Payer… pour achever l’enregistrement.

Note

Pour achever l’enregistrement de tout masternode antérieurement configuré, allez sur l’onglet DIP3, choisissez le masternode non enregistré dans la liste de Masternodes portefeuille, et cliquez sur Enregistrer.

../../../../_images/mn-proregtx.png

Onglet Envoyer avec la ProRegTx préparée#

Saisissez votre mot de passe et cliquez sur Envoyer pour diffuser la transaction d’enregistrement.

../../../../_images/mn-proregtx-confirm-tx.png

Confirmer la transaction ProRegTx#

Le hachage de la transaction sera affiché une fois que la transaction a été envoyée avec succès. Ce hachage ProRegTx est utilisé par le réseau pour identifier avec certitude le masternode. Cliquez sur OK pour fermer l’écran.

../../../../_images/mn-proregtx-sent-confirmation.png

Écran de transaction envoyée montrant le hachage de transaction#

Avant que la ProRegTx soit confirmée, le masternode apparaîtra comme non enregistré dans l’onglet DIP3.

../../../../_images/mn-dip3-unregistered.png

Onglet DIP3 montrant un masternode non enregistré#

Une fois que la ProRegTx est confirmée, le nouveau masternode apparaît comme enregistré sur l’onglet DIP3.

../../../../_images/mn-dip3-registered.png

Onglet DIP montrant un masternode enregistré#

Mise à jour de l’enregistrement du masternode#

Pour mettre à jour l’information d’enregistrement d’un masternode, allez sur l’onglet DIP3 et cliquez sur le bouton Mettre à jour l’enregistrement.

../../../../_images/mn-update-registrar.png

Mettre à jour l’enregistrement#

Le propriétaire de masternode peut modifier n’importe quand les adresses de vote et de paiements. Les adresses du portefeuille actuel peuvent être choisies dans le menu déroulant, ou bien des adresses d’un autre portefeuille (par ex. un portefeuille matériel) peuvent être collées dans chaque champ. Cliquez sur Suivant pour continuer.

../../../../_images/mn-update-registrar-addresses.png

Mettre à jour les adresses de vote et/ou de paiements du masternode#

Le propriétaire du masternode peut aussi modifier n’importe quand la clé d’opérateur BLS. Cliquez sur Suivant pour continuer.

Avertissement

À chaque changement de la clé privée de l’opérateur, elle doit être copiée dans le fichier dash.conf du masternode. Electrum affichera une notification comportant des instructions, lorsque cela sera nécessaire.

../../../../_images/mn-update-registrar-operator-key-owner-operator.png

Mise à jour de la clé d’opérateur BLS#

Tous les paramètres sont maintenant configurés. Cet écran montre les détails de la configuration mise à jour. Cliquez sur Préparer ProUpRegTx pour continuer. L’onglet Envoyer s’ouvrira et sera rempli des informations nécessaires pour mettre à jour le masternode.

../../../../_images/mn-update-registrar-review.png

Inspectez les paramètres et mettez à jour le masternode#

Les informations ProUpRegTx indispensables pour mettre à jour le masternode ont été remplies à l’étape précédente. Cliquez simplement sur Payer… pour achever la mise à jour.

../../../../_images/mn-proupregtx.png

Onglet Envoyer avec la ProUpRegTx préparée#

Saisissez votre mot de passe et cliquez sur Envoyer pour diffuser la transaction de mise à jour.

../../../../_images/mn-proupregtx-confirm-tx.png

Confirmer la transaction ProUpRegTx#

Le hachage de la transaction sera affiché une fois que la transaction a été envoyée avec succès. Cliquez sur OK pour fermer l’écran.

../../../../_images/mn-proupregtx-sent-confirmation.png

Écran de transaction envoyée montrant le hachage de transaction#

Mise à jour des paramètres de service du masternode#

Le service du masternode peut avoir besoin d’être mis à jour dans les cas suivants :

  1. Changer l’adresse IP, le port ou l’adresse de paiements de l’opérateur d’un masternode

  2. Relancer un masternode qui a été banni par la Preuve de Service (PoSe)

Pour mettre à jour l’information de service d’un masternode, allez sur l’onglet DIP3 et cliquez sur le bouton Mettre à jour le service.

../../../../_images/mn-dip3-update-service.png

Mettre à jour le service#

L’opérateur du masternode peut modifier n’importe quand l’adresse IP et le port. Mettez à jour l’adresse IP et cliquez sur Suivant pour continuer.

../../../../_images/mn-update-service.png

Mettre à jour l’adresse IP du masternode#

Tous les paramètres sont maintenant configurés. Cet écran montre les détails de la configuration mise à jour. Cliquez sur Préparer ProUpServTx pour continuer. L’onglet Envoyer s’ouvrira et sera rempli des informations nécessaires pour mettre à jour le masternode.

../../../../_images/mn-update-service-review.png

Inspectez les paramètres et mettez à jour le service du masternode#

Les informations ProUpServTx indispensables pour mettre à jour le masternode ont été remplies à l’étape précédente. Cliquez simplement sur Payer… pour achever la mise à jour.

../../../../_images/mn-proupservtx.png

Onglet Envoyer avec la ProUpServTx préparée#

Saisissez votre mot de passe et cliquez sur Envoyer pour diffuser la transaction de mise à jour.

../../../../_images/mn-proupservtx-confirm-tx.png

Confirmer la transaction ProUpServTx#

Le hachage de la transaction sera affiché une fois que la transaction a été envoyée avec succès. Cliquez sur OK pour fermer l’écran.

../../../../_images/mn-proupservtx-sent-confirmation.png

Écran de transaction envoyée montrant le hachage de transaction#

Portefeuilles multi-signatures#

Ce tutoriel montre comment créer un portefeuille multi-signature « 2 sur 2 ». Une multi-signature 2 sur 2 consiste en 2 portefeuilles distincts (en général sur des machines distinctes, et potentiellement sous le contrôle de personnes distinctes) qui doivent être utilisés ensemble pour accéder aux fonds. Les deux portefeuilles disposent de la même série d’adresses.

  • Un cas d’utilisation typique est celui de fonds contrôlés en commun : par exemple, un ami et vous-même gérez ensemble une entreprise et certains fonds ne peuvent être dépensés qu’avec l’accord des deux.

  • Un autre cas d’utilisation relève de la sécurité : un des portefeuilles peut être sur votre ordinateur principal, tandis que l’autre est sur une machine hors ligne. Ainsi, vous rendez très difficile à un attaquant ou à un logiciel malveillant de voler vos fonds.

Créer une paire de portefeuilles « 2 sur 2 »#

Chaque cosignataire doit faire ceci : sélectionner le menu Fichier > Nouveau, puis choisir Portefeuille multi-signature. Sur l’écran suivant, choisir « 2 sur 2 ».

../../../../_images/faq-multisig-create.png

Choix de x signatures sur y, pour un portefeuille multi-signature#

Après génération et confirmation de votre graine de récupération, il vous sera affiché l’adresse xpub de ce portefeuille.

../../../../_images/faq-multisig-xpub.png

Clé xpub du premier portefeuille#

Après génération d’une « graine » (à garder en sécurité !), vous devrez fournir la clé publique maître de l’autre portefeuille. Bien sûr, lorsque vous créez l’autre portefeuille, vous indiquez la clé publique maître du premier portefeuille.

../../../../_images/faq-multisig-share-xpub.png

Saisie de la valeur xpub du second portefeuille dans le premier portefeuille#

Vous devrez faire ça en parallèle pour les deux portefeuilles. Veuillez noter que vous pouvez cliquer sur Annuler durant cette étape, et réouvrir le fichier plus tard.

Recevoir des fonds#

Vérifiez que les deux portefeuilles génèrent le même jeu d’adresses. Vous pouvez dès à présent envoyer des fonds à ces Adresses (veuillez noter qu’elles commencent par un « 7 ») depuis n’importe quel portefeuille pouvant envoyer à des adresses de type P2SH.

Envoyer des fonds#

Pour dépenser des fonds depuis un portefeuille « 2 sur 2 », les deux cosignataires doivent signer ensemble une transaction. Pour cela, créez une transaction en utilisation un des portefeuilles (en remplissant le formulaire dans l’onglet Envoyer). Après signature, une fenêtre s’affiche avec tous les détails de transaction.

../../../../_images/faq-multisig-partially-signed.png

Transaction multi-signature « 2 sur 2 » partiellement signée dans Dash Electrum#

La transaction doit maintenant être envoyée au second portefeuille. Plusieurs options existent pour cela :

  • Vous pouvez transférer le fichier sur une clé USB

    Vous pouvez enregistrer la transaction partiellement signée dans un fichier (avec le bouton Enregistrer), le transférer sur la machine où se trouve le second portefeuille (par clé USB, par exemple) et le charger là (avec le menu Outils > Charger transaction > Depuis un fichier).

  • Vous pouvez utiliser des QR-codes

    Un bouton avec une icône de QR-code est également disponible. Cliquer sur ce bouton affichera un QR-code contenant la transaction, qui peut alors être scannée dans le second portefeuille (Outils > Charger transaction > Depuis un QR-code).

Avec l’une des deux méthodes ci-dessus, vous pouvez désormais ajouter la seconde signature à la transaction (avec le bouton Signer). Elle sera alors diffusée au réseau.

../../../../_images/faq-multisig-fully-signed.png

Transaction multi-signature « 2 sur 2 » entièrement signée dans Dash Electrum#

Récupérer un portefeuille papier#

Peut-être avez-vous reçu un portefeuille papier en cadeau d’un autre utilisateur Dash, ou bien en avez-vous conservé un dans un coffre. Les fonds sont récupérés depuis un portefeuille papier  vers un portefeuille logiciel par l’importation de sa clé privée, qui est une longue série de caractères commençant par le nombre « 7 » ou la lettre majuscule « X ». L’exemple ci-dessous montre une clé privée (au format WIF).

../../../../_images/sweep-secret.png

Adresse publique et clé privée correspondante, produite par le générateur de portefeuille papier Dash#

Les fonds des portefeuilles papier sont récupérés dans un portefeuille logiciel Dash Electrum par création d’une transaction utilisant la clé privée, puis l’envoi des fonds à une nouvelle adresse de votre portefeuille logiciel. Cela est nécessaire car il n’est pas possible d’ajouter de nouvelles clés publiques ou privées à une série déjà existante d’adresses déterministes dérivées depuis une phrase « graine ».

Commencez par choisir le menu Portefeuille > Clés privées > Récupérer. Le dialogue Récupérer des clés privées s’affichera, où vous pourrez coller votre ou vos clé(s) privée(s). Une adresse non utilisée contrôlée par votre portefeuille logiciel Dash Electrum apparaîtra dans le champ inférieur, et elle peut être éventuellement modifiée en cliquant sur la bouton Adresse. Une fois que vous avez collé votre clé privée, cliquez sur le bouton Récupérer.

../../../../_images/sweep-privkey.png

Saisie de la clé privée#

Dash Electrum prépare alors la transaction en utilisant la clé privée que vous venez d’importer, afin de dériver l’adresse publique pour l’entrée de transaction et choisir comme sortie l’adresse de votre portefeuille, puis le message est signé. Cliquez sur Diffuser pour envoyer la transaction vers la blockchain. Le solde apparaîtra alors dans votre portefeuille, à l’adresse spécifiée. L’adresse du portefeuille papier que vous venez de récupérer se retrouve avec un solde nul.

../../../../_images/sweep-broadcast.png

Diffusion de la transaction de récupération#

Chambre froide#

Cette section montre comment créer d’une part un portefeuille hors ligne qui détient vos dashs, et d’autre part un portefeuille en ligne et en lecture seule, lequel sera utilisé pour consulter son historique ou pour créer des transactions devant être signées avec le portefeuille hors ligne avant d’être diffusées par celui en ligne.

Création d’un portefeuille hors ligne#

Créez un portefeuille sur une machine hors ligne, en suivant le processus habituel (Fichier > Nouveau). Après création du portefeuille, allez sur Portefeuille > Clés publiques maîtres.

../../../../_images/faq-cold-xpub.png

Clé publique maître d’un nouveau portefeuille hors ligne#

La clé publique maître de votre portefeuille est la chaîne affichée dans cette fenêtre surgissante. Transférez cette clé sur votre machine en ligne.

Création d’une version en lecture seule de votre portefeuille#

Sur votre machine en ligne, lancez Dash Electrum puis choisissez Fichier > Nouveau/Restaurer. Donnez un nom au portefeuille puis choisissez Utiliser des clés publiques ou privées. Collez votre clé publique maître dans le champ. Cliquez sur Suivant pour achever la création de votre portefeuille. Une fois terminé, vous devriez voir une fenêtre vous informant que vous ouvrez un portefeuille en lecture seule.

../../../../_images/faq-cold-watching.png

Clé publique maître d’un nouveau portefeuille hors ligne#

L’historique de transactions de votre portefeuille en chambre froide devrait être affiché.

Créer une transaction non signée#

Allez sur l’onglet Envoyer de votre portefeuille en ligne et en lecture seule, entrez les données de transaction puis cliquez sur Envoyer. Une fenêtre apparaîtra vous informant de l’ajout des frais de transaction. Continuez. Dans la nouvelle fenêtre qui s’affiche, cliquez sur Enregistrer et enregistrez le fichier de transaction quelque part sur votre ordinateur. Fermez la fenêtre et transférez le fichier de transaction sur votre ordinateur hors ligne (par exemple avec une clé USB).

Signer votre transaction#

Sur votre portefeuille hors ligne, choisissez le menu Outils > Charger transaction > Depuis un fichier et choisissez le fichier de transaction créé à l’étape précédente. Cliquez sur Signer. Une fois la transaction signée, l’identifiant de transaction est affiché dans le champ correspondant. Cliquez sur Enregistrer, stockez le fichier quelque part sur votre ordinateur puis transférez-le sur votre ordinateur en ligne.

Diffuser votre transaction#

Sur votre ordinateur en ligne, choisissez le menu Outils > Charger transaction > Depuis un fichier. Choisissez le fichier de la transaction signée. Dans la fenêtre qui s’ouvre, cliquez sur Diffuser. La transaction est diffusée au réseau Dash.

Ligne de commande#

Dash Electrum a une ligne de commande puissante, disponible quand il tourne sous Linux ou macOS. Cette section détaille quelques principes de base.

Utilisation de l’aide en ligne#

Pour afficher la liste des commandes Dash Electrum, tapez

electrum help

Pour consulter la documentation d’une commande, tapez

electrum help <command>

Mots magiques#

Les arguments passés dans les commandes peuvent être l’un des mots magiques suivants : ! ? : -.

Le point d’exclamation ! est un raccourci signifiant « le montant maximal disponible ». Veuillez noter que les frais de transaction seront calculés et déduits du montant. Exemple

electrum payto Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq !

Un point d’interrogation ? signifie que vous souhaitez que le paramètre soit demandé. Exemple

electrum signmessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq ?

Utilisez un deux-points : si vous souhaitez que le paramètre demandé soit occulté (non affiché dans votre terminal). Veuillez noter que vous serez interrogé deux fois dans cet exemple, d’abord sur la clé privée, puis sur le mot de passe de votre portefeuille

electrum importprivkey :

Un paramètre remplacé par un trait d’union - sera lu depuis l’entrée standard (dans un « pipe »)

cat LICENCE | electrum signmessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq -

Alias#

Vous pouvez employer des alias DNS au lieu d’adresses Bitcoin, dans la plupart des commandes

electrum payto ecdsa.net !

Formatage de sorties avec jq#

Les sorties de commande sont soit de simples chaînes, soit des données structurées JSON. Un outil très utile est le programme « jq ». Installez-le ainsi

sudo apt-get install jq

Les exemples suivants l’utilisent.

Signer et vérifier un message#

Vous pouvez utiliser une variable pour stocker la signature puis la vérifier

sig=$(cat LICENCE| electrum signmessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq -)

Et

cat LICENCE | electrum verifymessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq $sig -

Afficher les montants de vos entrées non dépensées#

La commande listunspent retourne une liste d’objets dictionnaire, avec différents champs. Supposons que nous voulions extraite le champ value de chaque enregistrement. Cela peut être fait avec la commande jq

electrum listunspent | jq 'map(.value)'

Choisir seulement les transactions entrantes dans l’historique#

Les transactions entrantes ont un champ « value » positif

electrum history | jq '.[] | select(.value>0)'

Filtrer les transactions par date#

La commande suivante sélectionne les transactions qui ont été horodatées après une date donnée

after=$(date -d '07/01/2015' +"%s")
electrum history | jq --arg after $after '.[] | select(.timestamp>($after|tonumber))'

De manière analogue, nous pouvons exporter les transactions sur une période de temps donnée

before=$(date -d '08/01/2015' +"%s")
after=$(date -d '07/01/2015' +"%s")
electrum history | jq --arg before $before --arg after $after '.[] | select(.timestamp&gt;($after|tonumber) and .timestamp&lt;($before|tonumber))'

Chiffrer et déchiffrer des messages#

D’abord nous avons besoin de la clé publique d’une adresse du portefeuille

pk=$(electrum getpubkeys Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq| jq -r '.[0]')

Chiffrage

cat | electrum encrypt $pk -

Déchiffrage

electrum decrypt $pk ?

À noter : cette commande demande le message chiffré, puis le mot de passe du portefeuille.

Exporter les clés privées et récupérer des fonds#

La commande suivante exportera les clés privées de toutes les adresses du portefeuille qui contiennent des dashs

electrum listaddresses --funded | electrum getprivatekeys -

Cela renverra une liste de listes de clés privées. Dans la plupart des cas, vous souhaiterez plutôt une liste simple. Cela est faisable en ajoutant un « filer » jq, comme suit

electrum listaddresses --funded | electrum getprivatekeys - | jq 'map(.[0])'

Enfin, utilisons cette liste de clés privées comme entrée de la commande de récupération

electrum listaddresses --funded | electrum getprivatekeys - | jq 'map(.[0])' | electrum sweep - [destination address]

Utilisation en chambre froide de la ligne de commande#

Cette section vous montrera comment signer une transaction en utilisant la ligne de commande d’un portefeuille Dash Electrum hors ligne.

Créer une transaction non signée#

Avec votre portefeuille en ligne (en lecture seule), créez une transaction non signée

electrum payto Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq 0.1 --unsigned > unsigned.txn

La transaction non signée est stockée dans un fichier nommé « unsigned.txn ». Veuillez noter que l’option –unsigned n’est pas nécessaire si vous utilisez un portefeuille en lecture seule.

Vous pouvez l’afficher ainsi

cat unsigned.txn | electrum deserialize -

Signer la transaction#

Le format de sérialisation de Dash Electrum contient la clé publique maître nécessaire et la clé de dérivation utilisée par le portefeuille hors ligne pour signer la transaction. Donc, nous avons seulement besoin d’indiquer la transaction sérialisée au portefeuille hors ligne

cat unsigned.txn | electrum signtransaction - > signed.txn

La commande vous demandera votre mot de passe puis enregistrera la transaction signée dans « signed.txn ».

Diffuser la transaction#

Envoyez votre transaction au réseau Dash, en utilisant la diffusion

cat signed.txn | electrum broadcast -

En cas de succès, la commande renverra l’identifiant de la transaction.

Comment accepter Dash sur un site web avec Dash Electrum#

Ce tutoriel vous montrera comment accepter Dash sur un site web avec des requêtes de paiement signées en SSL. Il a été mis à jour pour Dash Electrum 2.6.

Pré-requis#

  • Un serveur web qui diffuse du HTML statique

  • Un certificat SSL (signé par une autorité de certification)

  • Electrum en version >= 2.6

Création d’un portefeuille#

Créez un portefeuille sur votre serveur web

electrum create

Vous pouvez aussi utiliser un portefeuille en lecture seule (restauré depuis un xpub) si vous souhaitez conserver les clés privées en dehors du serveur. Une fois votre portefeuille créé, démarrez Dash Electrum en tant que daemon

electrum daemon start

Ajout de votre certificat SSL à la configuration#

Vous devriez disposer d’une clé privée et d’un certificat public pour votre nom de domaine. Créez un fichier contenant seulement la clé privée

-----BEGIN PRIVATE KEY-----
your private key
-----BEGIN END KEY-----

Configurez le chemin vers votre fichier de clé privée avec « setconfig »

electrum setconfig ssl_privkey /path/to/ssl.key

Créez un autre fichier contenant votre certificat et la liste des certificats dont il dépend, jusqu’au certificat racine. Votre certificat doit être au sommet de la liste, et le certificat racine à la fin

-----BEGIN CERTIFICATE-----
your cert
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
intermediate cert
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
root cert
-----END CERTIFICATE-----

Configurez le chemin « ssl_chain » avec « setconfig »

electrum setconfig ssl_chain /path/to/ssl.chain

Configurer un répertoire de requêtes#

Ce répertoire doit être servi par votre serveur web (par ex. Apache)

electrum setconfig requests_dir /var/www/r/

Par défaut, Dash Electrum affichera les URL locales, commençant par « file:// ». Afin d’afficher les URL publiques, nous devons définir une autre variable de configuration, url_rewrite. Par exemple

electrum setconfig url_rewrite "['file:///var/www/','https://electrum.org/']"

Créer une requête de paiement signée#

electrum addrequest 3.14 -m "this is a test"
{
   "URI": "dash:Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq?amount=3.14&r=https://electrum.org/r/7c2888541a",
   "address": "Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq",
   "amount": 314000000,
   "amount (DASH)": "3.14",
   "exp": 3600,
   "id": "7c2888541a",
   "index_url": "https://electrum.org/r/index.html?id=7c2888541a",
   "memo": "this is a test",
   "request_url": "https://electrum.org/r/7c2888541a",
   "status": "Pending",
   "time": 1450175741
}

Cette commande renvoie un objet JSON avec deux URL

  • request_url est l’URL de la requête BIP70 signée.

  • index_url est l’URL de la page web affichant la requête.

Veuillez noter que request_url et index_url utilisent le nom de domaine défini dans url_rewrite. Vous pouvez consulter la liste actuelle de requêtes avec la commande listrequests.

Ouverture de la page de requête de paiement dans votre navigateur#

Ouvrons index_url dans un navigateur web.

../../../../_images/payrequest.png

Page de requête de paiement dans un navigateur web#

Cette page affiche une demande de paiement. Vous pouvez ouvrir l’URI « dash: » dans un portefeuille, ou bien scanner le QR-code. La ligne en bas affiche le temps restant avant que la requête n’expire.

../../../../_images/payreq_window.png

Portefeuille en attente de paiement#

Cette page peut déjà être utilisée pour recevoir des paiements. Cependant, elle ne détectera pas qu’une requête a été payée ; pour cela, nous devons configurer les websockets.

Ajout du support des websockets#

Obtenez SimpleWebSocketServer ici

git clone https://github.com/ecdsa/simple-websocket-server.git

Définissez websocket_server et websocket_port dans votre configuration

electrum setconfig websocket_server <FQDN of your server>
electrum setconfig websocket_port 9999

Puis redémarrez le daemon:

electrum daemon stop
electrum daemon start

Désormais, cette page est entièrement interactive : elle se mettra à jour à la réception du paiement. Veuillez noter que des ports supérieurs pourraient être bloqués sur certains pare-feu du client, il est donc plus sûr, par exemple, de faire une inversion proxy de la transmission websockets en utilisant le port standard 443 sur un sous-domaine supplémentaire.

Interface JSONRPC#

Les commandes au daemon Dash Electrum peuvent être envoyées avec JSONRPC. Cela est utile si vous souhaitez utiliser Dash Electrum dans un script PHP.

Veuillez noter que le daemon utilise par défaut un numéro de port aléatoire. Pour utiliser un numéro de port stable, vous devez définir la variable de configuration « rpcport » (et redémarrer le daemon)

electrum setconfig rpcport 7777

Avec ce réglage, on peut opérer des requêtes avec curl ou PHP. Par exemple

curl --data-binary '{"id":"curltext","method":"getbalance","params":[]}' http://127.0.0.1:7777

Requête avec des paramètres nommés

curl --data-binary '{"id":"curltext","method":"listaddresses","params":{"funded":true}}' http://127.0.0.1:7777

Création d’une requête de paiement

curl --data-binary '{"id":"curltext","method":"addrequest","params":{"amount":"3.14","memo":"test"}}' http://127.0.0.1:7777