Fonctions avancées#

Contrôle des pièces#

Le Contrôle des pièces permet aux utilisateurs du portefeuille logiciel Dash Core de choisir quelles adresses et quelles sorties de transaction non dépensées (UTXO) doivent être utilisées comme entrées de transaction. Cela vous permet de conserver un solde donné sur certaines adresses de votre portefeuille, tout en dépensant les autres librement. Dans le portefeuille logiciel Dash Core, cliquez sur Réglages > Options > Portefeuille > Activer les fonctionnalités de contrôle des pièces. Désormais, quand vous allez dans l’onglet Envoyer de votre portefeuille, un nouveau bouton nommé Entrées… est affiché. Cliquez sur ce bouton pour choisir les UTXO pouvant servir d’entrées pour les transactions que vous créez. La fenêtre suivante s’affiche :

../../../../_images/coin-selection.png

Fenêtre de Contrôle des pièces dans le portefeuille logiciel Dash Core, affichant deux masternodes (du réseau de test)#

Faites un clic-droit sur la ou les transaction(s) que vous ne souhaitez pas dépenser, puis choisissez Verrouiller les transactions non dépensées. Une petite icône en forme de cadenas sera affichée à côté de la transaction. Vous pouvez cliquer sur Inverser le verrouillage pour inverser l’état verrouillé/déverrouillé de toutes les UTXO. Quand vous êtes prêt à continuer, cliquez sur OK. Vous pouvez désormais créer des transactions en toute sécurité avec les fonds restants, sans que cela n’affecte les UTXO verrouillées.

../../../../_images/coin-selection-lock.png
../../../../_images/coin-selection-locked.png

Verrouillage de transactions de sortie (UTXO) dans le portefeuille logiciel Dash Core#

Running Dash Testnet#

It is recommended to run Dash Core on testnet for your experimentations. To start on testnet via the command line, do the following:

For Linux:

./dash-qt -testnet

For Mac (run from Applications/Dash-Qt.app/Contents/MacOS):

Dash-Qt -testnet

Note: You may need to allow an app from an unknown developer before running this. Cmd+Click on the application and click Open.

Now, open Mac Terminal and run:

cd /Applications/Dash-Qt.app/Contents/MacOS
./Dash-Qt -testnet

You may top up your testnet wallet by accessing the faucet.

Portefeuilles HD#

Nouveau dans la version v20.1.0: HD wallets are now created by default.

Dash Core includes an implementation of BIP39/BIP44 compatible hierarchical deterministic (HD) key generation.

Upgrade to HD#

Avertissement

A new backup must be created after upgrading to an HD wallet.

Dash Core includes the ability upgrade a non-hierarchical deterministic (HD) wallet to an HD wallet via the upgradetohd command. The command can be run by either opening the console from Window > Console or issuing the following RPC command from dash-cli:

upgradetohd "" "" <walletpassphrase>

If your wallet is already encrypted you must enter the passphrase as the third parameter to the command. If your wallet is not already encrypted, specifying a wallet passphrase will trigger wallet encryption.

To see full details for the command, run the following from either the console or dash-cli:

help upgradetohd

View HD wallet information#

Open the console from Window > Console or issue the following RPC command from dash-cli to view the mnemonic seed:

dumphdinfo

Dash Core will display the HD seed in both hexadecimal and BIP39 mnemonic formats. It will also display the mnemonic passphrase if one was used when creating the wallet.

Restore HD wallet#

To restore an existing HD wallet, or define your own separately generated mnemonic and/or passphrase, create a new blank wallet with following command:

createwallet "enter wallet name" false true "optional wallet password"

Add the HD wallet details to the newly created wallet by running:

upgradetohd "enter mnemonic" "optional mnemonic passphrase" "optional wallet passphrase"

Le portefeuille HD sera restauré et votre solde apparaîtra une fois que la synchronisation sera achevée.

Note that the wallet passphrase is different to the mnemonic passphrase, which is often also referred to as the « 25th word » or « extension word ». The wallet passphrase encrypts the wallet file itself, while the mnemonic passphrase is used to specify different derivation branches from the same mnemonic seed.

Enable HD Wallet Creation By Default#

Nouveau dans la version v20.1.0: HD wallets are now created by default without requiring the steps listed below.

Prior to Dash Core v20.1.0, it was necessary to complete theses steps to make HD wallet the default. We will use the Windows GUI wallet in this example, but the commands are similar if using dash-qt or dashd on other operating systems. Enter the following command to configure Dash Core to generate HD wallets by default:

dash-qt.exe -usehd

To make this configuration persist between restarts, add usehd=1 to the dash.conf file.

Multi-signature#

This section presents a worked example to demonstrate multisig functionality in Dash Core. While the transactions may no longer be visible on the current testnet blockchain and some address formats or RPC responses may differ slightly from the version shown here, the principle and commands are the same. The example demonstrates how to set up a 2-of-3 multisig address and create a transaction. The example parties involved are a buyer, a seller and an arbiter. This example is based on:

Étape 1 : Création de trois adresses#

Vendeur

seller@testnet03:~$ ./dash-cli getnewaddress
yfw6wPY5eo6sWxcU93ej3fRD9VXzppEYkm

seller@testnet03:~$ ./dash-cli getaddressinfo yfw6wPY5eo6sWxcU93ej3fRD9VXzppEYkm
{
  "address": "yfw6wPY5eo6sWxcU93ej3fRD9VXzppEYkm",
  "scriptPubKey": "76a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac",
  "ismine": true,
  "solvable": true,
  "desc": "pkh([d728be76]02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e)#7y7rcew8",
  "iswatchonly": false,
  "isscript": false,
  "pubkey": "02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e",
  "iscompressed": true,
  "ischange": false,
  "timestamp": 1,
  "labels": [
    "seller"
  ]
}

seller@testnet03:~$ ./dash-cli dumpprivkey yfw6wPY5eo6sWxcU93ej3fRD9VXzppEYkm
cVQVgBr8sW4FTPYz16BSCo1PcAfDhpJArgMPdLxKZQWcVFwMXRXx

Acheteur

buyer@testnet03:~$ ./dash-cli getnewaddress
yUtJQSYvqoicEpUiMiaiSy16Fimpjz6Kjj

buyer@testnet03:~$ ./dash-cli getaddressinfo yUtJQSYvqoicEpUiMiaiSy16Fimpjz6Kjj
{
  "address": "yUtJQSYvqoicEpUiMiaiSy16Fimpjz6Kjj",
  "scriptPubKey": "76a9145df7af25fa0654c90f359034ac756de71f5f25dc88ac",
  "ismine": true,
  "solvable": true,
  "desc": "pkh([5df7af25]0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c)#795y6m9z",
  "iswatchonly": false,
  "isscript": false,
  "pubkey": "0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c",
  "iscompressed": true,
  "ischange": false,
  "timestamp": 1,
  "labels": [
    "buyer"
  ]
}

buyer@testnet03:~$ ./dash-cli dumpprivkey yUtJQSYvqoicEpUiMiaiSy16Fimpjz6Kjj
cP9DFmEDb11waWbQ8eG1YUoZCGe59BBxJF3kk95PTMXuG9HzcxnU

Arbitre

arbiter@testnet03:~$ ./dash-cli getnewaddress
ygR4183tHp46oRuEk4RL1Jz7SkNubE7osu

arbiter@testnet03:~$ ./dash-cli getaddressinfo ygR4183tHp46oRuEk4RL1Jz7SkNubE7osu
{
  "address": "ygR4183tHp46oRuEk4RL1Jz7SkNubE7osu",
  "scriptPubKey": "76a914dc71f0bcf448f9198cdbb1e6f5ca7ba96689fbe188ac",
  "ismine": true,
  "solvable": true,
  "desc": "pkh([dc71f0bc]0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce)#3u5h82dc",
  "iswatchonly": false,
  "isscript": false,
  "pubkey": "0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce",
  "iscompressed": true,
  "ischange": false,
  "timestamp": 1,
  "labels": [
    "arbiter"
  ]
}

arbiter@testnet03:~$ ./dash-cli dumpprivkey ygR4183tHp46oRuEk4RL1Jz7SkNubE7osu
cUbDFL81a2w6urAGZf7ecGbdzM82pdHLeCaPXdDp71s96SzDV49M

Cela donne trois couples de clés (publique et privée)

seller:    02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e / cVQVgBr8sW4FTPYz16BSCo1PcAfDhpJArgMPdLxKZQWcVFwMXRXx
buyer:     0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c / cP9DFmEDb11waWbQ8eG1YUoZCGe59BBxJF3kk95PTMXuG9HzcxnU
arbiter:   0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce / cUbDFL81a2w6urAGZf7ecGbdzM82pdHLeCaPXdDp71s96SzDV49M

Étape 2 : Création d’une adresse multi-signature#

La commande createmultisig accepte comme variables le nombre n de signature sur m clés requises (fournies comme tableau JSON). Dans cet exemple, 2 clés sur 3 sont requises pour signer la transaction.

À noter : l’adresse peut être créée par n’importe qui, du moment que les clés publiques et leur séquence sont connues (l’adresse résultante et redeemScript sont identiques, voir ci-dessous).

Vendeur

seller@testnet03:~$ ./dash-cli createmultisig 2 '["02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e","0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c","0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce"]'
{
  "address": "8gQdvLw7pF7jd8mjGU3nRNESdWi9gkHRZy",
  "redeemScript": "522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae",
  "descriptor": "sh(multi(2,02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e,0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c,0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce))#36ymhjhs"
}

Acheteur

buyer@testnet03:~$ ./dash-cli createmultisig 2 '["02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e","0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c","0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce"]'
{
  "address": "8gQdvLw7pF7jd8mjGU3nRNESdWi9gkHRZy",
  "redeemScript": "522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae",
  "descriptor": "sh(multi(2,02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e,0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c,0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce))#36ymhjhs"
}

Arbitre

arbiter@testnet03:~$ ./dash-cli createmultisig 2 '["02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e","0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c","0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce"]'
{
  "address": "8gQdvLw7pF7jd8mjGU3nRNESdWi9gkHRZy",
  "redeemScript": "522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae",
  "descriptor": "sh(multi(2,02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e,0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c,0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce))#36ymhjhs"
}

Étape 3 : L’acheteur alimente l’adresse multi-signature#

Cela se passe de la même façon que dans une transaction habituelle.

Acheteur

buyer@testnet03:~$ ./dash-cli sendtoaddress 8gQdvLw7pF7jd8mjGU3nRNESdWi9gkHRZy 0.25
48e6f8f0108549bf932e4d6833fe707d7edafe490788c2ebde688635a995538e

Le vendeur ou l’arbitre peuvent suivre la transaction par son identifiant dans l’explorateur de blocs, ou bien depuis la console comme suit.

Acheteur

seller@testnet03:~$ ./dash-cli getrawtransaction 48e6f8f0108549bf932e4d6833fe707d7edafe490788c2ebde688635a995538e 1
{
  "hex" : "02000000068ad5c86eae519b0ba11f8314d5cdf50c872331e7c7efa2eece2107d669cc8926010000006a473044022060e3e8a5194adc690a1d39db181214c56596bdcfef67a5deb2c0932112a56c20022043acb1cb88eb590076ac41ec345c491cab8368befd2513bc7d8cebf378559737012103207b3ed8ce5b61e1dbd1b967e9dc5729d096274e41f43ec3dcff897012425e2dfeffffff2d6d9c0d3dafb66744da94676f4e7f76461241e60dc9cba3bcaa9ac6033b052e000000006a47304402207abaa4b6b4c7fdbd41d1885303dd3f0ae6b350ec5af19546f3fe616cbc5b5b7802201868fdda71c29364c52e6359868c22376a1091b19f6e1184de93d95eb61f3289012103e531f14fdace3f41ce041c366413aaabf26ed837ea6483d4a4f36af376c93b42feffffff1bd67d51fb6c6552c7241a6631a0c08c69517f06f84c4921a3130d74fe722475000000006a47304402203dcbbb063efe24b93c4a37b4efcbc22b2def077610810e1659a236922857393502202b034ab74554b79ca34e21d10a7b9dbf2517f1a79e028a6ed11cd4a28a684376012103622883e8029d188581291e26783991a450b2e38a8b832a5924171e961d8fc7affefffffff2c54c61c55079f0e63eed06c0b3c261e640d985690cefb487370b714ef4ca8c000000006a4730440220462da4ec78ab804fc66844615019979273c20b6c3dbd73e58def7539ac47817102201572a458013e29753b87a390ab06eb7ca71789136f8b8183e19897f30bd49847012103900531aa50569ad35a555726d703b8455e53567e3788369d68f47210e771b61bfeffffff435365937ffb7cc39acc1a8a4678a9273fe0c1384a37565f3748293e717333c7000000006a4730440220233497587ae0377eae2aee5c879893bf6eba0a463c67ac2f995370249730d8390220176e9e818e256c653888046a150bdde0f2e99dcc56c4b339a8615af56695b85f0121035c0a7d6e4e95d2e2802f1c8d8cf37b1597b7b67b4e1a277745b982ae4485156afeffffffcc0aa97c5b5e1ab12d808108285a38e54bd2fe98fe9489cb78bb1fde6b740fff000000006a4730440220731f21d1e766e6408e404fcfc317d507cc03ad09b9d63e76abac83b9b512ad5a022073b73bccd272e4d52a4fe0533887c3a7280a9f440ec78c54e484e1c0e8051e6d012103207b3ed8ce5b61e1dbd1b967e9dc5729d096274e41f43ec3dcff897012425e2dfeffffff02a1910f00000000001976a9147ab95aa3133061fbe7ad020cc638b82451c9acdc88ac40787d010000000017a91415c85c2472f5941b60a49462a2cfd0d17ab49d1c8768500f00",
  "txid" : "48e6f8f0108549bf932e4d6833fe707d7edafe490788c2ebde688635a995538e",
  "version" : 2,
  "locktime" : 1003624,
[...]
  "vout" : [
      {
        "value": 0.25000000,
        "valueSat": 25000000,
        "n": 1,
        "scriptPubKey": {
          "asm": "OP_HASH160 15c85c2472f5941b60a49462a2cfd0d17ab49d1c OP_EQUAL",
          "hex": "a91415c85c2472f5941b60a49462a2cfd0d17ab49d1c87",
          "reqSigs": 1,
          "type": "scripthash",
          "addresses": [
            "8gQdvLw7pF7jd8mjGU3nRNESdWi9gkHRZy"
          ]
        }
      }
[...]
    ],
  "blockhash": "000000bd679c0934333da72d25b85df9a120e2a166d945a8ace514ccd894e809",
  "height": 1003625,
  "confirmations": 9,
  "time": 1712596571,
  "blocktime": 1712596571,
  "instantlock": true,
  "instantlock_internal": true,
  "chainlock": true
}

Étape 4 : Dépense de l’adresse multi-signature#

Nous supposons que l’affaire s’est conclue, l’acheteur a reçu ses biens et tout le monde est content. À présent, le vendeur veut obtenir ses dashs. Comme une multi-signature « 2 sur 3 » a été utilisée, la transaction doit être signée par 2 parties (vendeur + acheteur ou arbitre). Le vendeur crée une transaction (nous réutiliserons son adresse publique déjà vue ci-dessus).

Vendeur

seller@testnet03:~$ ./dash-cli createrawtransaction '[{"txid":"48e6f8f0108549bf932e4d6833fe707d7edafe490788c2ebde688635a995538e","vout":1}]' '{"yfw6wPY5eo6sWxcU93ej3fRD9VXzppEYkm":0.249}'
02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e6480100000000ffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000

Puis le vendeur la signe partiellement, en utilisant le redeemScript, la scriptPubKey et sa clé privée.

Vendeur

seller@testnet03:~$ ./dash-cli signrawtransactionwithkey '02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e6480100000000ffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000' '["cVQVgBr8sW4FTPYz16BSCo1PcAfDhpJArgMPdLxKZQWcVFwMXRXx"]' '[{"txid":"a8b3bf5bcace91a8dbbddbf9b7eb027efb9bd001792f043ecf7b558aaa3cb951","vout":0,"scriptPubKey":"a91415c85c2472f5941b60a49462a2cfd0d17ab49d1c87","redeemScript":"522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae"}]'
{
  "hex": "02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e64801000000b50047304402207574d2af348ba67768849fa630dc42af546a382ecc85e941574b04dd419edd3002201c5704eb32d1df724c258e8bc4d6aa607abe4c01b9a295c3fdfca1763a328edd01004c69522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53aeffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000",
  "complete": false,
  "errors": [
    {
      "txid": "48e6f8f0108549bf932e4d6833fe707d7edafe490788c2ebde688635a995538e",
      "vout": 1,
      "scriptSig": "0047304402207574d2af348ba67768849fa630dc42af546a382ecc85e941574b04dd419edd3002201c5704eb32d1df724c258e8bc4d6aa607abe4c01b9a295c3fdfca1763a328edd01004c69522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae",
      "sequence": 4294967295,
      "error": "CHECK(MULTI)SIG failing with non-zero signature (possibly need more signatures)"
    }
  ]
}

Veuillez noter que la sortie hexadécimale augmente en taille, mais que le signal complet reste sur « faux » tant que la transaction est en attente d’une autre signature. Donc, à présent, soit l’acheteur soit l’arbitre peut achever la signature de la transaction, en utilisant la sortie ci-dessus et sa clé privée. Supposons que ce soit l’acheteur qui achève la signature.

Acheteur

buyer@testnet03:~$ ./dash-cli signrawtransactionwithkey '02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e64801000000b50047304402207574d2af348ba67768849fa630dc42af546a382ecc85e941574b04dd419edd3002201c5704eb32d1df724c258e8bc4d6aa607abe4c01b9a295c3fdfca1763a328edd01004c69522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53aeffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000' '["cP9DFmEDb11waWbQ8eG1YUoZCGe59BBxJF3kk95PTMXuG9HzcxnU"]' '[{"txid":"a8b3bf5bcace91a8dbbddbf9b7eb027efb9bd001792f043ecf7b558aaa3cb951","vout":0,"scriptPubKey":"a91415c85c2472f5941b60a49462a2cfd0d17ab49d1c87","redeemScript":"522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae"}]'
{
  "hex": "02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e64801000000fc0047304402207574d2af348ba67768849fa630dc42af546a382ecc85e941574b04dd419edd3002201c5704eb32d1df724c258e8bc4d6aa607abe4c01b9a295c3fdfca1763a328edd014730440220764019282400fab0e3bb431b04fada7daca528054e903f13d08deadee01d7c5a02204c7e4e484820e16af0951bc48371c3d0175de4114cee11dc86707b2489432b15014c69522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53aeffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000",
  "complete": true
}

La signature est désormais terminée, et l’une ou l’autre des parties peut transmettre la transaction au réseau.

Acheteur

buyer@testnet03:~$ ./dash-cli sendrawtransaction 02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e64801000000fc0047304402207574d2af348ba67768849fa630dc42af546a382ecc85e941574b04dd419edd3002201c5704eb32d1df724c258e8bc4d6aa607abe4c01b9a295c3fdfca1763a328edd014730440220764019282400fab0e3bb431b04fada7daca528054e903f13d08deadee01d7c5a02204c7e4e484820e16af0951bc48371c3d0175de4114cee11dc86707b2489432b15014c69522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53aeffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000
d6b27fb30be3d79588900c3f2fb433f8a68fdae70bfa9d6dbad5dd33ed25ba2c

Une fois de plus, cette transaction peut être suivie sur un explorateur de blocs. Quant au vendeur, il est content de recevoir ses fonds à son adresse publique, comme suit.

Vendeur

seller@testnet03:~$ dash-cli listtransactions "*" 1
[
  {
    "involvesWatchonly": true,
    "address": "yfw6wPY5eo6sWxcU93ej3fRD9VXzppEYkm",
    "category": "receive",
    "amount": 0.24900000,
    "label": "seller",
    "vout": 0,
    "confirmations": 1,
    "instantlock": true,
    "instantlock_internal": true,
    "chainlock": true,
    "blockhash": "000000f25253e46db14c5a0316321ea45e0d7c747d00398fc06becd71e93be44",
    "blockheight": 1003642,
    "blockindex": 4,
    "blocktime": 1712598497,
    "txid": "d6b27fb30be3d79588900c3f2fb433f8a68fdae70bfa9d6dbad5dd33ed25ba2c",
    "walletconflicts": [
    ],
    "time": 1712598489,
    "timereceived": 1712598489
  }
]

Daemon#

Dash peut tourner en tant que processus d’arrière-plan (daemon) sur les systèmes Linux. C’est particulièrement utile si vous faites tourner Dash en tant que serveur, plutôt qu’en tant que nœud avec interface utilisateur. Ce guide présuppose que vous avez installé Dash Core pour Linux tel que décrit par Guide d’installation Linux.

  1. Créez un utilisateur et un groupe pour faire tourner le daemon

    sudo useradd -m dash -s /bin/bash
    
  2. Créez un répertoire de données pour Dash dans le répertoire personnel du nouvel utilisateur

    sudo -u dash mkdir -p /home/dash/.dashcore
    
  3. Créez un fichier de configuration dans le nouveau répertoire de données Dash

    sudo -u dash nano /home/dash/.dashcore/dash.conf
    
  4. Copiez-collez cette configuration basique dans votre fichier dash.conf, en remplaçant le mot de passe par un mot de passe long et aléatoire

    listen=1
    server=1
    daemon=1
    
  5. Enregistrez le daemon dashd en tant que service système, en créant le fichier suivant

    sudo nano /etc/systemd/system/dashd.service
    
  6. Collez la configuration du daemon suivante dans le fichier

    [Unit]
    Description=Dash Core Daemon
    After=syslog.target network-online.target
    
    [Service]
    Type=forking
    User=dash
    Group=dash
    OOMScoreAdjust=-1000
    ExecStart=/usr/local/bin/dashd -pid=/home/dash/.dashcore/dashd.pid
    TimeoutStartSec=10m
    ExecStop=/usr/local/bin/dash-cli stop
    TimeoutStopSec=120
    Restart=on-failure
    RestartSec=120
    StartLimitInterval=300
    StartLimitBurst=3
    
    [Install]
    WantedBy=multi-user.target
    
  7. Enregistrez et démarrez le daemon avec systemd

    sudo systemctl daemon-reload
    sudo systemctl enable dashd
    sudo systemctl start dashd
    

Dash est à présent installé en tant que daemon système. Vérifiez son état comme suit

systemctl status dashd

Vérifiez les journaux comme suit

sudo journalctl -u dashd

Tor#

Tor est un logiciel libre et open-source permettant des communications anonymes. Son nom est l’acronyme du projet logiciel originel, « The Onion Router ». Tor redirige le trafic Internet à travers un réseau de second niveau, libre et mondial, constitué de plus de sept mille relais permettant de masquer, à tous ceux qui surveillent les réseaux ou font de l’analyse de trafic, la localisation d’un utilisateur et les données transmises.

Interface graphique Dash Core#

Le trafic de Dash Core peut être redirigé à travers Tor en indiquant un service Tor fonctionnel à utiliser comme serveur mandataire (proxy). Installez d’abord Tor en allant à l’adresse https://www.torproject.org/download/ et en y téléchargeant le paquet Tor Browser approprié à votre système. Configurez le navigateur Tor en suivant la documentation sur les pages Installation et Utiliser Tor Browser la première fois.

Une fois que Tor Browser tourne, vous avez deux façons de configurer Dash Core pour qu’il utilise Tor pour le trafic réseau.

  1. En utilisant l’interface graphique : démarrez Dash Core, allez au menu Réglages > Options > Réseau et activez le réglage Se connecter à travers un proxy SOCKS5. Indiquez 127.0.0.1 comme IP du proxy et 9150 comme port. Cliquez sur OK et redémarrez Dash Core.

  2. En utilisant dash.conf : assurez-vous que Dash Core ne tourne pas, puis modifiez le fichier de configuration dash.conf. Ajoutez-y la ligne proxy=127.0.0.1:9150, enregistrez le fichier puis redémarrez Dash Core.

Vous êtes à présent connecté à travers le réseau Tor. Vous devrez vous souvenir de bien lancer le navigateur Tor chaque fois avant de lancer Dash Core, sinon la synchronisation ne sera pas possible.

Service onion Tor#

Les services onion Tor permettent aux autres utilisateurs de se connecter à votre nœud Dash en utilisant une adresse onion, ce qui améliore l’anonymat en masquant votre adresse IP. Veuillez suivre ces étapes pour installer un service onion sous Linux Ubuntu :

  1. Installez Tor

    sudo apt install tor
    
  2. Ajoutez la ligne suivante au fichier torrc

    sudo bash -c "echo -e 'ControlPort 9051\nCookieAuthentication 1\nCookieAuthFileGroupReadable 1' >> /etc/tor/torrc"
    
  3. Redémarrez Tor

    sudo systemctl restart tor
    
  4. Déterminez sous quel groupe fonctionne Tor (en général la dernière entrée de votre fichier de groupes)

    tail /etc/group
    

    Le groupe est en général debian-tor pour les distributions Linux basées sur Debian.

  5. Ajoutez l’utilisateur faisant tourner Dash au groupe Tor

    sudo usermod -aG debian-tor dash
    
  6. Ajoutez les deux lignes suivantes au fichier dash.conf

    proxy=127.0.0.1:9050
    torcontrol=127.0.0.1:9051
    
  7. Redémarrez Dash et surveillez le journal debug.log pour les infos Tor

    grep -i onion ~/.dashcore/debug.log
    

    Vous devriez voir une ligne similaire à celle-ci

    2020-06-29 03:43:57 tor: Got service ID knup3fvr6fyvypu7, advertising service knup3fvr6fyvypu7.onion:19999
    

Votre service onion est désormais disponible à l’adresse affichée.

Portefeuilles multiples#

Since version 18.0.0, Dash Core has included the ability work with multiple wallets from the File menu in addition to the previously available options.

Avertissement

Wallet-related RPCs require using the -rpcwallet option when more than one wallet file is loaded. This is to ensure the RPC command is executed using the correct wallet. See the Core developer documentation for additional information.

Open a wallet#

To open a wallet, click File -> Open Wallet and then click the name of wallet file.

../../../../_images/wallet-open.png

Open wallet#

Select the active wallet#

When multiple wallets are open, a wallet selection dropbox is shown to the left of the Dash logo on the tab bar. Click the dropdown box and select a wallet to set it as the active wallet.

../../../../_images/wallet-select-dropdown.png

Wallet selection dropdown box#

Close a wallet#

To close a wallet, set it as the active wallet using the wallet selection dropdown box. Next, click File -> Close Wallet… and then click Yes on the Close wallet confirmation screen.

../../../../_images/wallet-close-confirmation.png

Close wallet confirmation#

Note

If the only open wallet is closed, wallet-related items on the tab bar will be disabled.

Close all wallets#

To close all wallets, click File -> Close All Wallets… and then click Yes on the Close all wallets confirmation screen.

../../../../_images/wallet-close-all-confirmation.png

Close wallet confirmation#

Once all wallets are closed, wallet-related items on the tab bar will be disabled.

Alternative methods#

It is also possible to select between different Dash wallets when starting Dash Core by specifying the wallet argument, or even run multiple instances of Dash Core simultaneously by specifying separate data directories using the datadir argument.

Pour commencer, installez le portefeuille logiciel Dash Core pour votre ordinateur, en suivant les instructions d’installation. Quand vous atteignez l’étape Premier lancement du portefeuille logiciel Dash Core, vous pouvez décider si vous voulez avoir des fichiers wallet.dat séparés dans l’emplacement par défaut (ce qui est plus simple si vous n’avez pas besoin de lancer simultanément les portefeuilles), ou si vous indiquez des répertoires de données entièrement différents, tels que C:\Dash1 (ce qui est plus simple si vous souhaitez lancer simultanément plusieurs portefeuilles).

Fichiers « wallet.dat » distincts#

Dans ce scénario, nous allons créer deux raccourcis sur le bureau, utilisant chacun un fichier de portefeuille différent. Allez jusqu’au fichier exécutable utilisé pour démarrer le portefeuille logiciel Dash Core (en général C:\Program Files\DashCore\dash-qt.exe ou similaire) puis créez deux raccourcis sur le bureau. Ensuite, ouvrez la fenêtre Propriétés pour chacun de ces raccourcis.

../../../../_images/shortcuts.png

Création de raccourcis sur le bureau Windows 10#

Modifiez la propriété Cible de chaque raccourci pour le faire pointer vers un fichier de portefeuille différent, en indiquant l’argument wallet au démarrage du portefeuille. Si vous n’indiquez pas d’argument wallet, le fichier wallet.dat sera utilisé par défaut. Le fichier de portefeuille indiqué sera créé s’il n’existe pas déjà. Les exemples suivants montrent deux portefeuilles nommés workwallet.dat et homewallet.dat :

  • Portefeuille cible 1 : "C:\Program Files\DashCore\dash-qt.exe" -wallet=workwallet.dat

  • Portefeuille cible 2 : "C:\Program Files\DashCore\dash-qt.exe" -wallet=homewallet.dat

../../../../_images/walletfiles.png

Indication de fichiers portefeuille distincts#

Vous pouvez à présent utiliser les deux icônes pour ouvrir facilement et rapidement différents portefeuilles depuis votre Bureau. À noter que vous ne pourrez pas ouvrir les deux portefeuilles simultanément. Pour faire cela, vous aurez besoin de deux répertoires de données distincts, comme décrit ci-dessous.

Répertoire de données distincts#

Lancez le portefeuille logiciel Dash Core et laissez-le se synchroniser au réseau, puis quittez-le. Vous pouvez à présent créer deux répertoires, par exemple aux emplacements C:\Dash1 et C:\Dash2, puis copier les répertoires blocks and chainstate depuis le répertoire de données synchronisé vers les nouveaux répertoires. Chacun d’eux servira de répertoire de données distinct, vous permettant de lancer simultanément deux instances du portefeuille logiciel Dash Core. Créez deux raccourcis (ou plus) sur votre Bureau tel que décrit ci-dessus, puis indiquez des arguments pour « datadir » tel que ci-dessous :

  • Répertoire de données cible 1 : "C:\Program Files\DashCore\dash-qt.exe" -datadir=C:\Dash1 -listen=0

  • Répertoire de données cible 2 : "C:\Program Files\DashCore\dash-qt.exe" -datadir=C:\Dash2 -listen=0

../../../../_images/datadirs.png

Configuration de répertoire de données distincts#

Vous pouvez à présent utiliser les deux icônes pour ouvrir rapidement et facilement deux portefeuilles différents depuis votre Bureau. Chacun des deux portefeuilles a sa propre copie complète de la blockchain, ce qui peut utiliser beaucoup de votre espace disque. Pour mieux employer cet espace, vous pouvez envisager l’utilisation d’un portefeuille SPV ou « léger », tel que Dash Electrum, pour disposer de portefeuilles multiples sans devoir conserver une copie intégrale de la blockchain.

../../../../_images/2wallets.png

Deux instances du portefeuille logiciel Dash Core tournant simultanément#

KeePass#

Avertissement

KeePass support was removed in Dash Core 18.0.0. Details can still be found in previous versions of this documentation.