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

PrivateSend offers users enhanced privacy when creating transactions by splitting the user’s balance into a number of predefined denominations in advance of spending. This process is known as CoinJoin. PrivateSend is available in Dash Electrum versions 3.3.8.3 and higher, with support for hardware wallets added in 3.3.8.7.

Processing and sending

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 supports masternode creation through the DIP3 tab.

DIP3

The DIP3 tab can be enabled via the View > Show DIP3 menu. This tab displays the status of your masternode(s) and also allows viewing a list of all registered masternodes on the network.

The tab displays the following data about each masternode you have set up:

  • Le nom (alias) du masternode.

  • The state of the masternode (e.g. whether it has been activated).

  • The keys

  • The Provider Registration transaction hash of the masternode.

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

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

DIP3 tab with masternode information

Configuration de masternode

To setup a masternode, navigate to the DIP3 tab and click the Add/Import button.

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.

Always exercise caution when using multisig accounts and verify that each mnemonic is backed up appropriately.

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

Add or import masternode

Electrum supports creating/registering new masternodes as well as importing and registering legacy masternodes via a masternode.conf file. At this point very few legacy masternodes are present, so only the Create and register DIP3 Masternode option will be covered in detail.

There are two supported ownership types: owner-only and owner/operator. The primary difference during setup is whether or not the operator BLS private key is stored in Electrum. The following steps show the creation of a self-hosted masternode so both ownership type checkboxes are selected. Click Next to continue.

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

Select operation type and ownership properties

To start a masternode, you must have a 1000 DASH plus a small amount for fees available in your wallet. Leave Create collateral as ProRegTx output checked and click Next.

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

Select collateral output for masternode

Certain information about your masternode is required. The IP address and port that your masternode uses must be supplied. Click Next after entering them (the port will be set to the default mainnet port of 9999 automatically).

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

Enter masternode IP address and port

Each masternode requires three addresses: owner, voting, and payout. Electrum will automatically select addresses from your wallet. Click Next to continue.

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

Select masternode owner, voting, and payout addresses

A masternode requires a BLS « operator » key as described in DIP3. If you manage your own masternode, both Dash Electrum and your masternode must know the operator private key. Your masternode will use the private key to sign messages, and the Dash network will know that you authorized it to do so.

Electrum will generate the required BLS private/public key pair and provide you with the line that must be copied to the masternode for proper masternode configuration. Click Next after copying this line to your masternode’s dash.conf file.

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

BLS key setup

All parameters are now configured. This screen shows the configuration details and allows you to save the information. Make sure the Make ProRegTx after saving Masternode data box is checked, then click Save. The Send tab will open and be populated with the info necessary to register the masternode.

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

Examine parameters and save masternode

Registering your masternode

Since the ProRegTx information required to register the masternode was filled out by the previous step, just Click Pay… to complete the registration.

Note

To complete registration of any previously setup masternode, go to the DIP3 tab, select the unregistered masternode from the list of Wallet MNs, and click Register.

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

Send tab with ProRegTx prepared

Enter your password and click Send to broadcast the registration transaction.

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

Confirm ProRegTx Transaction

The transaction hash will be displayed once the transaction has been sent successfully. This ProRegTx hash is used by the network to uniquely identify the masternode. Click OK to close the screen.

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

Transaction sent screen showing transaction hash

Prior to the ProRegTx being confirmed the new masternode will appear as unregistered on the DIP3 tab.

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

DIP3 tab showing unregistered masternode

Once the ProRegTx has been confirmed, the new masternode will appear as registered on the DIP3 tab.

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

DIP3 tab showing registered masternode

Updating masternode registration

To update masternode registration information, navigate to the DIP3 tab and click the Update Registrar button.

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

Update Registrar

The masternode owner may update the voting and payout addresses at any time. Addresses from the current wallet can be selected from the drop down menu or addresses from a different wallet (e.g. a hardware wallet) can be pasted into either field. Click Next to continue.

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

Update masternode voting and/or payout address

The masternode owner may also update the operator BLS key at any time. Click Next to continue.

Avertissement

Any time the the operator private key is changed it must be copied into the dash.conf file on the masternode. Electrum will provide a notification with instructions when this is required.

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

Update operator BLS key

All parameters are now configured. This screen shows the updated configuration details. Click Prepare ProUpRegTx to continue. The Send tab will open and be populated with the info necessary to update the masternode.

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

Examine parameters and update masternode

The ProUpRegTx information required to update the masternode registration was filled out by the previous step so just Click Pay… to complete the update.

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

Send tab with ProUpRegTx prepared

Enter your password and click Send to broadcast the update transaction.

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

Confirm ProUpRegTx Transaction

The transaction hash will be displayed once the transaction has been sent successfully. Click OK to close the screen.

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

Transaction sent screen showing transaction hash

Updating masternode service parameters

The masternode service may need to be updated to:

  1. Change the IP address, port, or operator payout address of a masternode

  2. Revive a masternode that was Proof of Service (PoSe) banned

To update masternode service information, navigate to the DIP3 tab and click the Update Service button.

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

Update Service

The masternode operator may update the IP address and port at any time. Update the IP address and click Next to continue.

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

Update masternode IP address

All parameters are now configured. This screen shows the updated configuration details. Click Prepare ProUpServTx to continue. The Send tab will open and be populated with the info necessary to update the masternode.

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

Examine parameters and update masternode service

The ProUpServTx information required to update the masternode was filled out by the previous step so just Click Pay… to complete the update.

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

Send tab with ProUpServTx prepared

Enter your password and click Send to broadcast the update transaction.

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

Confirm ProUpServTx Transaction

The transaction hash will be displayed once the transaction has been sent successfully. Click OK to close the screen.

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

Transaction sent screen showing transaction hash

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

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

You may have received a paper wallet as a gift from another Dash user, or previously stored one in a safe deposit box. Funds are swept from a paper wallet into a live wallet by importing its private key, which is a long sequence of characters starting with the number « 7 » or the capital letter « X ». The example below displays a private key (WIF format).

../../_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