Argomenti avanzati#
Coin Control#
Coin Control consente agli utenti del Dash Core Wallet di specificare quali indirizzi e output di transazioni non spesi (UTXO) devono essere utilizzati come input nelle transazioni. Ciò ti consente di mantenere un saldo specifico su determinati indirizzi nel tuo portafoglio, mentre ne spendi altri liberamente. Nel wallet Dash Core, fai clic su Impostazioni > Opzioni > Wallet > Abilita funzionalità di controllo monete. Ora, quando vai alla scheda Invia nel tuo wallet, verrà visualizzato un nuovo pulsante denominato Ingressi…. Fai clic su questo pulsante per selezionare quali UTXO possono essere utilizzati come input per qualsiasi transazione creata. Viene visualizzata la seguente finestra:
Coin Selection finestra nel wallet Dash Core, che mostra due masternode (testnet)#
Fai clic con il pulsante destro del mouse sulle transazioni che non desideri spendere, quindi seleziona Blocca non spese. Accanto alla transazione apparirà un piccolo lucchetto. Puoi fare clic sul pulsante Attiva/disattiva stato di blocco per invertire lo stato bloccato/sbloccato di tutti gli UTXO. Quando sei pronto per continuare, fai clic su OK. Ora puoi creare transazioni in sicurezza con i tuoi fondi rimanenti senza influenzare gli UTXO bloccati.
Blocco degli UTXO nel wallet Dash Core#
Esecuzione di Dash Testnet#
Ti consigliamo di eseguire Dash Core su testnet per le tue sperimentazioni. Per iniziare su testnet tramite la riga di comando, procedi come segue:
Per Linux:
./dash-qt -testnet
Per Mac (eseguito da Applications/Dash-Qt.app/Contents/MacOS):
Dash-Qt -testnet
Nota: potrebbe essere necessario consentire un’app di uno sviluppatore sconosciuto prima di eseguirla. Cmd+fai clic sull’applicazione e fai clic su Apri.
Ora apri Mac Terminal ed esegui:
cd /Applications/Dash-Qt.app/Contents/MacOS
./Dash-Qt -testnet
Puoi ricaricare il tuo wallet testnet accedendo al faucet.
HD Wallet#
Added in 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.
Aggiorna all’HD#
Avvertimento
A new backup must be created after upgrading to an HD wallet.
Dash Core include la possibilità di aggiornare un wallet deterministico non gerarchico (HD) a un wallet HD tramite il comando «upgradetohd». Il comando può essere eseguito aprendo la console da Finestra > Console o emettendo il seguente comando RPC da dash-cli:
upgradetohd "" "" <walletpassphrase>
Se il tuo wallet è già crittografato devi inserire la passphrase come terzo parametro del comando. Se il tuo wallet non è già crittografato, specificando una passphrase del portafoglio si attiverà la crittografia del wallet.
Per visualizzare i dettagli completi del comando, esegui quanto segue dalla console o da dash-cli:
help upgradetohd
Visualizza le informazioni sul wallet HD#
Apri la console da Finestra > Console o esegui il seguente comando RPC da dash-cli per visualizzare il seed mnemonico:
dumphdinfo
Dash Core visualizzerà il seed HD sia in formato esadecimale che mnemonico BIP39. Visualizzerà anche la passphrase mnemonica se ne è stata utilizzata una durante la creazione del wallet.
Ripristina il wallet HD#
Per ripristinare un wallet HD esistente o definire il proprio mnemonico e/o passphrase generato separatamente, creare un nuovo wallet vuoto con il seguente comando:
createwallet "enter wallet name" false true "optional wallet password"
Aggiungi i dettagli del wallet HD al wallet appena creato eseguendo
upgradetohd "enter mnemonic" "optional mnemonic passphrase" "optional wallet passphrase"
Il wallet HD verrà ripristinato e il tuo saldo verrà visualizzato una volta completata la sincronizzazione.
Tieni presente che la passphrase del wallet è diversa dalla passphrase mnemonica, a cui spesso ci si riferisce anche come «25a parola» o «parola di estensione». La passphrase del wallet crittografa il file del wallet stesso, mentre la passphrase mnemonica viene utilizzata per specificare diversi rami di derivazione dallo stesso seme mnemonico.
Abilita la creazione di wallet HD per impostazione predefinita#
Added in 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
Per far sì che questa configurazione persista tra un riavvio e l’altro, aggiungere usehd=1 al file dash.conf.
Multisig#
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:
Passaggio 1: crea tre indirizzi#
Venditore:
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
Venditore:
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
Arbitro:
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
Ciò si traduce in tre coppie di chiavi (pubblica/privata):
seller: 02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e / cVQVgBr8sW4FTPYz16BSCo1PcAfDhpJArgMPdLxKZQWcVFwMXRXx
buyer: 0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c / cP9DFmEDb11waWbQ8eG1YUoZCGe59BBxJF3kk95PTMXuG9HzcxnU
arbiter: 0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce / cUbDFL81a2w6urAGZf7ecGbdzM82pdHLeCaPXdDp71s96SzDV49M
Passaggio 2: crea un indirizzo multisig#
Il comando createmultisig prende come variabili il numero n firme di m chiavi (fornite come array json) richieste. In questo esempio, per firmare la transazione sono necessarie 2 chiavi su 3.
Nota: l’indirizzo può essere creato da chiunque, purché siano note le chiavi pubbliche e la loro sequenza (l’indirizzo risultante e il ReddenScript sono identici, vedere di seguito).
Venditore:
seller@testnet03:~$ ./dash-cli createmultisig 2 '["02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e","0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c","0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce"]'
{
"address": "8gQdvLw7pF7jd8mjGU3nRNESdWi9gkHRZy",
"redeemScript": "522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae",
"descriptor": "sh(multi(2,02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e,0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c,0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce))#36ymhjhs"
}
Venditore:
buyer@testnet03:~$ ./dash-cli createmultisig 2 '["02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e","0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c","0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce"]'
{
"address": "8gQdvLw7pF7jd8mjGU3nRNESdWi9gkHRZy",
"redeemScript": "522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae",
"descriptor": "sh(multi(2,02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e,0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c,0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce))#36ymhjhs"
}
Arbitro:
arbiter@testnet03:~$ ./dash-cli createmultisig 2 '["02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e","0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c","0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce"]'
{
"address": "8gQdvLw7pF7jd8mjGU3nRNESdWi9gkHRZy",
"redeemScript": "522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae",
"descriptor": "sh(multi(2,02a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e,0315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c,0287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce))#36ymhjhs"
}
Passaggio 3: l’acquirente finanzia l’indirizzo multisig#
Funziona come una normale transazione.
Venditore:
buyer@testnet03:~$ ./dash-cli sendtoaddress 8gQdvLw7pF7jd8mjGU3nRNESdWi9gkHRZy 0.25
48e6f8f0108549bf932e4d6833fe707d7edafe490788c2ebde688635a995538e
Il venditore/arbitro può tracciare la transazione tramite il suo txid nel Block Explorer. Oppure dalla console come segue.
Venditore:
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
}
Passaggio 4: spendere il multisig#
Ora supponiamo che l’affare sia concluso, che l’acquirente abbia ricevuto la merce e che tutti siano contenti. Ora il venditore vuole ottenere il suo Dash. Poiché è stato utilizzato un multisig 2 su 3, la transazione deve essere firmata da 2 parti (venditore + acquirente o arbitro). Il venditore crea una transazione (riutilizzeremo il suo indirizzo pubblico dall’alto).
Venditore:
seller@testnet03:~$ ./dash-cli createrawtransaction '[{"txid":"48e6f8f0108549bf932e4d6833fe707d7edafe490788c2ebde688635a995538e","vout":1}]' '{"yfw6wPY5eo6sWxcU93ej3fRD9VXzppEYkm":0.249}'
02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e6480100000000ffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000
E lo firma parzialmente, utilizzando redimeScript, scriptPubKey e la sua chiave privata
Venditore:
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)"
}
]
}
Tieni presente che l’esadecimale di output sta diventando più lungo, ma il flag completo è «falso» poiché la transazione necessita di un’altra firma. Quindi ora sia l’acquirente che l’arbitro possono completare la firma della transazione, utilizzando l’output dall’alto e la propria chiave privata. Supponiamo che l’acquirente stia completando la firma.
Venditore:
buyer@testnet03:~$ ./dash-cli signrawtransactionwithkey '02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e64801000000b50047304402207574d2af348ba67768849fa630dc42af546a382ecc85e941574b04dd419edd3002201c5704eb32d1df724c258e8bc4d6aa607abe4c01b9a295c3fdfca1763a328edd01004c69522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53aeffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000' '["cP9DFmEDb11waWbQ8eG1YUoZCGe59BBxJF3kk95PTMXuG9HzcxnU"]' '[{"txid":"a8b3bf5bcace91a8dbbddbf9b7eb027efb9bd001792f043ecf7b558aaa3cb951","vout":0,"scriptPubKey":"a91415c85c2472f5941b60a49462a2cfd0d17ab49d1c87","redeemScript":"522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53ae"}]'
{
"hex": "02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e64801000000fc0047304402207574d2af348ba67768849fa630dc42af546a382ecc85e941574b04dd419edd3002201c5704eb32d1df724c258e8bc4d6aa607abe4c01b9a295c3fdfca1763a328edd014730440220764019282400fab0e3bb431b04fada7daca528054e903f13d08deadee01d7c5a02204c7e4e484820e16af0951bc48371c3d0175de4114cee11dc86707b2489432b15014c69522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53aeffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000",
"complete": true
}
La firma è ora completa e ciascuna delle parti può trasmettere la transazione alla rete.
Venditore:
buyer@testnet03:~$ ./dash-cli sendrawtransaction 02000000018e5395a9358668deebc2880749feda7e7d70fe33684d2e93bf498510f0f8e64801000000fc0047304402207574d2af348ba67768849fa630dc42af546a382ecc85e941574b04dd419edd3002201c5704eb32d1df724c258e8bc4d6aa607abe4c01b9a295c3fdfca1763a328edd014730440220764019282400fab0e3bb431b04fada7daca528054e903f13d08deadee01d7c5a02204c7e4e484820e16af0951bc48371c3d0175de4114cee11dc86707b2489432b15014c69522102a862b412ff9e3afd01a2873a02622897f6df92e3fc85597788b898309fec882e210315617694c9d93f0ce92769e050a6868ffc74d229077379c0af8bfb193c3d351c210287ce6cf69b85593ce7db801874c9a2fb1b653dbe5dd9ebfa73e98b710af9e9ce53aeffffffff01a0f17b01000000001976a914d728be76cd74b5d148eba2a49246b80dac12f73e88ac00000000
d6b27fb30be3d79588900c3f2fb433f8a68fdae70bfa9d6dbad5dd33ed25ba2c
Ancora una volta, questa transazione può essere tracciata in un block explorer. E il venditore è felice di ricevere le sue monete al suo indirizzo pubblico come segue.
Venditore:
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 può essere eseguito come processo in background (o daemon) sui sistemi Linux. Ciò è particolarmente utile se esegui Dash come server anziché come nodo GUI. Questa guida presuppone che tu abbia installato Dash Core per Linux come descritto nel Guida all’installazione di Linux.
Crea un utente e un gruppo per eseguire il demone:
sudo useradd -m dash -s /bin/bash
Crea una directory di dati per Dash nella directory home del nuovo utente:
sudo -u dash mkdir -p /home/dash/.dashcore
Crea un file di configurazione nella nuova directory dei dati Dash:
sudo -u dash nano /home/dash/.dashcore/dash.conf
Incolla la seguente configurazione di base nel tuo file
dash.conf, sostituendo la password con una password lunga e casuale:listen=1 server=1 daemon=1
Registra il daemon
dashdcome servizio di sistema creando il seguente file:sudo nano /etc/systemd/system/dashd.service
Incolla la seguente configurazione del daemon nel file:
[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
Registrati e avvia il daemon con systemd:
sudo systemctl daemon-reload sudo systemctl enable dashd sudo systemctl start dashd
Dash è ora installato come daemon di sistema. Visualizza lo stato come segue:
systemctl status dashd
Visualizza i log come segue:
sudo journalctl -u dashd
Tor#
Tor è un software gratuito e open source per consentire la comunicazione anonima. Il nome deriva dall’acronimo del nome del progetto software originale «The Onion Router». Tor dirige il traffico Internet attraverso una rete overlay gratuita, mondiale e volontaria composta da più di settemila relè per nascondere la posizione e l’utilizzo di un utente a chiunque conduca sorveglianza di rete o analisi del traffico.
Dash Core GUI#
Il traffico Dash Core può essere indirizzato a passare attraverso Tor specificando un servizio Tor in esecuzione come proxy. Per prima cosa installa Tor visitando https://www.torproject.org/download/ e scaricando il pacchetto Tor Browser appropriato per il tuo sistema. Configura il browser Tor seguendo la documentazione su Installazione e Esecuzione di Tor Browser per la prima volta.
Una volta che Tor Browser è in esecuzione, hai due opzioni per configurare Dash Core per utilizzare Tor per il traffico di rete.
Utilizzo della GUI: Avvia Dash Core e vai su Impostazioni > Opzioni > Rete e attiva l’impostazione Connetti tramite proxy SOCKS5. Specificare
127.0.0.1per IP proxy e9150per Porta. Fai clic su OK e riavvia Dash Core.Utilizzo di dash.conf: Assicurati che Dash Core non sia in esecuzione e modifica il file delle impostazioni
dash.conf. Aggiungi la rigaproxy=127.0.0.1:9150, salva il file e avvia Dash Core.
Ora sei connesso tramite la rete Tor. Dovrai ricordarti di avviare Tor Browser ogni volta prima di avviare Dash Core altrimenti non sarai in grado di sincronizzarti.
Servizi Tor onion#
I servizi Tor Onion consentono ad altri utenti di connettersi al tuo nodo Dash utilizzando un indirizzo Onion, fornendo ulteriore anonimato nascondendo il tuo indirizzo IP. Segui questi passaggi per configurare un servizio Onion su Ubuntu Linux:
Installa tor:
sudo apt install tor
Aggiungi la seguente riga al file
torrc:sudo bash -c "echo -e 'ControlPort 9051\nCookieAuthentication 1\nCookieAuthFileGroupReadable 1' >> /etc/tor/torrc"
Riavvia Tor:
sudo systemctl restart tor
Determina il gruppo sotto cui è in esecuzione Tor (di solito l’ultima voce nel file dei gruppi):
tail /etc/group
Il gruppo è solitamente
debian-tornelle distribuzioni Linux basate su Debian.Aggiungi l’utente che esegue Dash al gruppo Tor:
sudo usermod -aG debian-tor dash
Aggiungi le seguenti due righe a
dash.conf:proxy=127.0.0.1:9050 torcontrol=127.0.0.1:9051
Riavvia Dash e controlla
debug.logper informazioni sulla cipolla:grep -i onion ~/.dashcore/debug.log
Dovresti vedere una riga simile alla seguente:
2020-06-29 03:43:57 tor: Got service ID knup3fvr6fyvypu7, advertising service knup3fvr6fyvypu7.onion:19999
Il tuo servizio Onion è ora disponibile all’indirizzo indicato.
Wallet multipli#
Dalla versione 18.0.0, Dash Core ha incluso la possibilità di lavorare con più wallet dal menu File oltre alle opzioni precedentemente disponibili.
Avvertimento
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.
Apri un wallet#
Per aprire un wallet, fai clic su File -> Apri wallet e quindi fai clic sul nome del file del wallet.
Wallet aperto#
Seleziona il wallet attivo#
Quando sono aperti più wallet, viene visualizzata una casella di selezione del wallet a sinistra del logo Dash sulla barra delle schede. Fai clic sulla casella a discesa e seleziona un wallet per impostarlo come wallet attivo.
Casella a discesa per la selezione del wallet#
Chiudi un 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.
Conferma chiusura wallet#
Nota
Se l’unico wallet aperto è chiuso, gli elementi relativi al portafoglio nella barra delle schede verranno disabilitati.
Close all wallets#
To close all wallets, click File -> Close All Wallets… and then click Yes on the Close all wallets confirmation screen.
Conferma chiusura wallet#
Once all wallets are closed, wallet-related items on the tab bar will be disabled.
Metodi alternativi#
È anche possibile selezionare tra diversi wallet Dash all’avvio di Dash Core specificando l’argomento wallet, o anche eseguire più istanze di Dash Core contemporaneamente specificando directory di dati separate utilizzando l’argomento datadir.
Per iniziare, installa il wallet Dash Core per il tuo sistema seguendo le istruzioni di installazione. Quando arrivi al passaggio Esecuzione di Dash Core per la prima volta, puoi decidere se desideri mantenere file wallet.dat separati nella posizione predefinita (più semplice se non hai bisogno di eseguire i portafogli contemporaneamente) o specificare directory di dati completamente separate come ad es. C:\Dash1 (più semplice se vuoi eseguire i wallet contemporaneamente).
File wallet.dat separati#
Per questo scenario, creeremo due collegamenti sul desktop, ciascuno utilizzando un file wallet diverso. Passare al file binario utilizzato per avviare Dash Core (in genere situato in C:\Program Files\DashCore\dash-qt.exe o simile) e creare due collegamenti sul desktop. Quindi apri la finestra Proprietà per ciascuna di queste scorciatoie.
Creazione di collegamenti sul desktop utilizzando Windows 10#
Modifica la proprietà Target di ogni collegamento in modo che punti a un diverso file del wallet specificando l’argomento wallet all’avvio del wallet. Se non specifichi un argomento wallet, per impostazione predefinita verrà utilizzato wallet.dat. Il file del wallet specificato verrà creato se non esiste. L’esempio seguente mostra due wallet denominati workwallet.dat e homewallet.dat:
Destinazione portafoglio 1:
"C:\Programmi\DashCore\dash-qt.exe" -wallet=workwallet.datPortafoglio destinazione 2:
"C:\Programmi\DashCore\dash-qt.exe" -wallet=homewallet.dat
Specificando file di wallet separati#
Ora puoi utilizzare le due icone per aprire rapidamente e facilmente diversi wallet dal tuo desktop. Tieni presente che non puoi aprire entrambi i wallet contemporaneamente. Per fare ciò, avrai bisogno di due directory dati separate, come descritto di seguito.
Directory di dati separate#
Avvia Dash Core e consenti la sincronizzazione con la rete, quindi chiudi nuovamente Dash Core. Ora puoi creare due directory ad es. C:\Dash1 e C:\Dash2 e copiare le directory blocks e chainstate dalla directory dei dati sincronizzati nelle nuove directory. Ognuno di questi fungerà da directory dati separata, consentendoti di eseguire due istanze di Dash Core contemporaneamente. Crea due (o più) scorciatoie sul desktop come descritto sopra, quindi specifica gli argomenti per datadir come mostrato di seguito:
Destinazione datadir 1:
"C:\Programmi\DashCore\dash-qt.exe" -datadir=C:\Dash1 -listen=0Datadir Target 2:
"C:\Programmi\DashCore\dash-qt.exe" -datadir=C:\Dash2 -listen=0
Specifica di directory dati separate#
Ora puoi utilizzare le due icone per aprire rapidamente e facilmente diversi wallet contemporaneamente dal tuo desktop. Entrambi i wallet mantengono copie separate e complete della blockchain, che potrebbero utilizzare molto spazio su disco. Per un utilizzo più efficiente dello spazio su disco, considera l’utilizzo di un SPV o di un wallet «leggero» come Dash Electrum per mantenere più wallet separati senza conservare una copia completa della blockchain.
Due istanze di Dash Core in esecuzione contemporaneamente#
KeePass#
Avvertimento
Il supporto KeePass è stato rimosso in Dash Core 18.0.0. I dettagli possono ancora essere trovati nelle versioni precedenti di questa documentazione.