Funzioni avanzate#

Dash Electrum è basato su Electrum, un portafoglio Bitcoin. La maggior parte delle funzioni sono identiche, il che significa che non è necessario riprodurre qui l’intera documentazione di Electrum. Le sezioni seguenti descrivono alcune funzioni avanzate utilizzate di frequente. Per ulteriori dettagli su altre funzioni avanzate di Electrum sia per Bitcoin che per Dash, fai clic sui collegamenti seguenti.

PrivateSend#

:ref:`PrivateSend ` offre agli utenti una maggiore privacy durante la creazione di transazioni suddividendo il saldo dell’utente in un numero di denominazioni predefinite prima della spesa. Questo processo è noto come CoinJoin. PrivateSend è disponibile nelle versioni Dash Electrum 3.3.8.3 e successive, con il supporto per i portafogli hardware aggiunto nella 3.3.8.7.

Elaborazione e invio#

Per avviare l’elaborazione di PrivateSend in Dash Electrum, seleziona Wallet > PrivateSend o fai clic sull’icona PS nell’angolo in basso a destra della finestra principale. Viene visualizzata la seguente finestra:

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

Finestra di dialogo PrivateSend in Dash Electrum#

Inserisci la Quantità di Dash da mantenere anonimo e il numero di Round di PrivateSend da utilizzare. Quindi fai clic su Abilita PrivateSend, seguito da Avvia mixaggio. Il processo avrà inizio e la barra Avanzamento del mixaggio mostrerà l’avanzamento del completamento. Ulteriori informazioni sul processo sono disponibili nelle schede Informazioni e Registro.

Una volta completata l’elaborazione, seleziona semplicemente la casella di controllo PrivateSend nella scheda Invia prima di inviare la transazione. Dash Electrum utilizzerà solo Dash elaborato in base alle tue specifiche per la transazione.

Hardware Wallet#

Puoi utilizzare i wallet hardware con Dash Electrum. Sotto Linux, potrebbe essere necessario installare prima le dipendenze e le regole udev come segue:

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

È supportata anche l’elaborazione PrivateSend. L’avvio dell’elaborazione di PrivateSend in Dash Electrum con un wallet hardware genererà un nuovo wallet HD e un mnemonico per il keystore PrivateSend. Verrà creata una transazione dal wallet hardware a un indirizzo in questo archivio di chiavi e inizierà l’elaborazione. Puoi quindi spendere il Dash elaborato o rispedirlo al tuo wallet hardware.

Masternodes#

Dash Electrum supporta la creazione di masternode tramite la scheda DIP3.

DIP3#

La scheda DIP3 può essere abilitata tramite il menu Visualizza > Mostra DIP3. Questa scheda mostra lo stato dei tuoi masternodi e consente anche di visualizzare un elenco di tutti i masternodi registrati sulla rete.

La scheda mostra i seguenti dati su ciascun masternode che hai impostato:

  • L’alias (nome) del masternode.

  • Lo stato del masternode (ad esempio se è stato attivato).

  • Le chiavi

  • L’hash della transazione di registrazione del provider del masternode.

  • L’indirizzo IP e la porta a cui è raggiungibile il tuo masternode.

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

Scheda DIP3 con informazioni sul masternode#

Configurazione del masternode#

Per impostare un masternode, vai alla scheda DIP3 e fai clic sul pulsante Aggiungi/Importa.

Nota

Se combinato con le funzionalità multisig di Electrum, il collaterale masternode può essere archiviato in un wallet multisig per una maggiore flessibilità di sicurezza. Vedi questa pagina per la documentazione di Dash Electrum che dimostra come configurare un masternode utilizzando un collaterale multisig.

Prestare sempre attenzione quando si utilizzano account multisig e verificare che venga eseguito il backup appropriato di ogni mnemonico.

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

Aggiungi o importa masternode#

Electrum supporta la creazione/registrazione di nuovi masternode nonché l’importazione e la registrazione di masternode legacy tramite un file masternode.conf. A questo punto sono presenti pochissimi masternode legacy, quindi solo l’opzione Crea e registra DIP3 Masternode verrà trattata in dettaglio.

Sono disponibili due tipi di proprietà supportati: solo proprietario e proprietario/operatore. La differenza principale durante la configurazione è se la chiave privata BLS dell’operatore è archiviata o meno in Electrum. I passaggi seguenti mostrano la creazione di un masternode self-hosted in modo che entrambe le caselle di controllo del tipo di proprietà siano selezionate. Fare clic su Avanti per continuare.

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

Seleziona il tipo di operazione e le proprietà dei proprietari#

Per avviare un masternode, devi avere 1000 DASH più una piccola somma per le commissioni disponibili nel tuo wallet. Lascia selezionato Crea materiale collaterale come output ProRegTx e fai clic su Avanti.

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

Seleziona l’output collaterale per masternode#

Sono necessarie alcune informazioni sul tuo masternode. È necessario fornire l’indirizzo IP e la porta utilizzati dal masternode. Fare clic su Avanti dopo averli inseriti (la porta verrà impostata automaticamente sulla porta mainnet predefinita 9999).

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

Inserisci l’indirizzo IP e la porta del masternode#

Ogni masternode richiede tre indirizzi: proprietario, voto e pagamento. Electrum selezionerà automaticamente gli indirizzi dal tuo portafoglio. Fare clic su Avanti per continuare.

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

Seleziona il proprietario del masternode, gli indirizzi di voto e di pagamento#

Un masternode richiede una chiave «operatore» BLS come descritto in DIP3. Se gestisci il tuo masternode, sia Dash Electrum che il tuo masternode devono conoscere la chiave privata dell’operatore. Il tuo masternode utilizzerà la chiave privata per firmare i messaggi e la rete Dash saprà che l’hai autorizzata a farlo.

Electrum genererà la coppia di chiavi pubblica/privata BLS richiesta e ti fornirà la linea che deve essere copiata nel masternode per una corretta configurazione del masternode. Fai clic su Avanti dopo aver copiato questa riga nel file dash.conf del tuo masternode.

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

Configurazione della chiave BLS#

Tutti i parametri sono ora configurati. Questa schermata mostra i dettagli della configurazione e consente di salvare le informazioni. Assicurati che la casella Crea ProRegTx dopo aver salvato i dati Masternode sia selezionata, quindi fai clic su Salva. La scheda Invia si aprirà e verrà popolata con le informazioni necessarie per registrare il masternode.

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

Esamina i parametri e salva il masternode#

Registrazione del tuo masternode#

Poiché le informazioni ProRegTx richieste per registrare il masternode sono state compilate nel passaggio precedente, è sufficiente fare clic su Paga… per completare la registrazione.

Nota

Per completare la registrazione di qualsiasi masternode precedentemente configurato, vai alla scheda DIP3, seleziona il masternode non registrato dall’elenco dei Wallet MN e fai clic su Registra.

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

Scheda Invia con ProRegTx preparato#

Inserisci la tua password e fai clic su Invia per trasmettere la transazione di registrazione.

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

Conferma la transazione ProRegTx#

L’hash della transazione verrà visualizzato una volta che la transazione è stata inviata con successo. Questo hash ProRegTx viene utilizzato dalla rete per identificare in modo univoco il masternode. Fare clic su OK per chiudere la schermata.

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

Schermata Transazione inviata che mostra l’hash della transazione#

Prima che il ProRegTx venga confermato, il nuovo masternode apparirà come non registrato nella scheda DIP3.

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

Scheda DIP3 che mostra il masternode non registrato#

Una volta confermato il ProRegTx, il nuovo masternode apparirà come registrato nella scheda DIP3.

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

Scheda DIP3 che mostra il masternode registrato#

Aggiornamento della registrazione del masternode#

Per aggiornare le informazioni di registrazione del masternode, vai alla scheda DIP3 e fai clic sul pulsante Aggiorna registrar.

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

Aggiorna Registrazione#

Il proprietario del masternode può aggiornare gli indirizzi di voto e di pagamento in qualsiasi momento. Gli indirizzi del wallet corrente possono essere selezionati dal menu a discesa oppure gli indirizzi di un wallet diverso (ad esempio un wallet hardware) possono essere incollati in uno dei due campi. Fare clic su Avanti per continuare.

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

Aggiorna l’indirizzo di voto e/o pagamento del masternode#

Il proprietario del masternode può inoltre aggiornare la chiave BLS dell’operatore in qualsiasi momento. Fare clic su Avanti per continuare.

Avvertimento

Ogni volta che la chiave privata dell’operatore viene modificata, deve essere copiata nel file dash.conf sul masternode. Electrum fornirà una notifica con le istruzioni quando ciò sarà richiesto.

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

Aggiorna la chiave BLS dell’operatore#

Tutti i parametri sono ora configurati. Questa schermata mostra i dettagli di configurazione aggiornati. Fare clic su Prepara ProUpRegTx per continuare. La scheda Invia si aprirà e verrà popolata con le informazioni necessarie per aggiornare il masternode.

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

Esaminare i parametri e aggiornare il masternode#

Le informazioni ProUpRegTx richieste per aggiornare la registrazione del masternode sono state inserite nel passaggio precedente, quindi è sufficiente fare clic su Paga… per completare l’aggiornamento.

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

Scheda Invia con ProUpRegTx preparato#

Inserisci la tua password e fai clic su Invia per trasmettere la transazione di aggiornamento.

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

Conferma la transazione ProUpRegTx#

L’hash della transazione verrà visualizzato una volta che la transazione è stata inviata con successo. Fare clic su OK per chiudere la schermata.

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

Schermata Transazione inviata che mostra l’hash della transazione#

Aggiornamento dei parametri del servizio masternode#

Potrebbe essere necessario aggiornare il servizio masternode per:

  1. Modifica l’indirizzo IP, la porta o l’indirizzo di pagamento dell’operatore di un masternode

  2. Ripristinare un masternode che era stato vietato Proof of Service (PoSe).

Per aggiornare le informazioni sul servizio masternode, vai alla scheda DIP3 e fai clic sul pulsante Aggiorna servizio.

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

Servizio di aggiornamento#

L’operatore del masternode può aggiornare l’indirizzo IP e la porta in qualsiasi momento. Aggiorna l’indirizzo IP e fai clic su Avanti per continuare.

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

Aggiorna l’indirizzo IP del masternode#

Tutti i parametri sono ora configurati. Questa schermata mostra i dettagli di configurazione aggiornati. Fare clic su Prepara ProUpServTx per continuare. La scheda Invia si aprirà e verrà popolata con le informazioni necessarie per aggiornare il masternode.

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

Esaminare i parametri e aggiornare il servizio masternode#

Le informazioni ProUpServTx richieste per aggiornare il masternode sono state compilate nel passaggio precedente, quindi è sufficiente fare clic su Paga… per completare l’aggiornamento.

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

Scheda Invia con ProUpServTx preparato#

Inserisci la tua password e fai clic su Invia per trasmettere la transazione di aggiornamento.

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

Conferma la transazione ProUpServTx#

L’hash della transazione verrà visualizzato una volta che la transazione è stata inviata con successo. Fare clic su OK per chiudere la schermata.

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

Schermata Transazione inviata che mostra l’hash della transazione#

Multisig wallets#

Questo tutorial mostra come creare un wallet multisig 2 su 2. Un multisig 2 su 2 è costituito da 2 wallet separati (solitamente su macchine separate e potenzialmente controllati da persone separate) che devono essere utilizzati insieme per accedere ai fondi. Entrambi i wallet hanno lo stesso set di indirizzi.

  • Un caso d’uso comune per questo è se desideri controllare i fondi in modo collaborativo: forse tu e il tuo amico gestite un’azienda insieme e determinati fondi dovrebbero essere spendibili solo se entrambi siete d’accordo.

  • Un altro è la sicurezza: uno dei wallet può trovarsi sul tuo computer principale, mentre l’altro su un computer offline. In questo modo rendi molto difficile per un utente malintenzionato o un malware rubare le tue monete.

Crea una coppia di wallet 2 di 2#

Ciascun cofirmatario deve eseguire questa operazione: nel menu selezionare File > Nuovo, quindi selezionare Wallet multifirma. Nella schermata successiva, seleziona 2 di 2.

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

Selezione di x firme su y per un portafoglio multisig#

Dopo aver generato e confermato il tuo seed di ripristino, ti verrà mostrato l’indirizzo xpub per questo wallet.

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

chiave xpub del primo wallet#

Dopo aver generato un seed (conservalo al sicuro!) dovrai fornire la chiave pubblica principale dell’altro wallet. Ovviamente quando crei l’altro wallet, inserisci la chiave pubblica principale del primo wallet.

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

Entrando in xpub dal secondo wallet nel primo wallet#

Dovrai farlo in parallelo per i due wallet. Tieni presente che puoi premere Annulla durante questo passaggio e riaprire il file in un secondo momento.

Ricezione#

Verifica che entrambi i wallet generino lo stesso set di indirizzi. Ora puoi inviare a questi Indirizzi (nota che iniziano con un «7») con qualsiasi wallet in grado di inviare a indirizzi P2SH.

Invio#

Per spendere monete da un wallet 2 su 2, due cofirmatari devono firmare una transazione in modo collaborativo. Per fare ciò, crea una transazione utilizzando uno dei wallet (compilando il modulo nella scheda Invia). Dopo aver firmato, viene visualizzata una finestra con i dettagli della transazione.

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

Transazione multisig 2-su-2 parzialmente firmata in Dash Electrum#

La transazione ora deve essere inviata al secondo wallet. A questo scopo sono disponibili diverse opzioni:

  • Puoi trasferire il file su una chiavetta USB

    È possibile salvare la transazione parzialmente firmata in un file (utilizzando il pulsante Salva), trasferirlo sulla macchina su cui è in esecuzione il secondo portafoglio (tramite chiavetta USB, ad esempio) e caricarlo lì (utilizzando Strumenti > Carica transazione > Da file)

  • Puoi utilizzare i codici QR

    È inoltre disponibile un pulsante che mostra l’icona di un codice QR. Facendo clic su questo pulsante verrà visualizzato un codice QR contenente la transazione, che può essere scansionato nel secondo wallet (Strumenti > Carica transazione > Da codice QR)

Con entrambi i metodi sopra descritti, ora puoi aggiungere la seconda firma alla transazione (utilizzando il pulsante Firma). Verrà poi trasmesso in rete.

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

Transazione multisig 2-su-2 completamente firmata in Dash Electrum#

Spazza un paper wallet#

Potresti aver ricevuto un wallet di carta come regalo da un altro utente Dash o averne precedentemente conservato uno in una cassetta di sicurezza. I fondi vengono spostati da un paper wallet in un wallet live importando la sua chiave privata, che è una lunga sequenza di caratteri che inizia con il numero «7» o la lettera maiuscola «X». L’esempio seguente mostra una chiave privata (formato WIF).

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

Indirizzo pubblico e chiave privata associata prodotti da Dash Paper Wallet Generator#

I fondi dai paper wallet vengono trasferiti in un wallet Dash Electrum creando una transazione utilizzando la chiave privata e inviandola a un nuovo indirizzo dal tuo wallet. Ciò è necessario perché non è possibile aggiungere nuove chiavi pubbliche o private a una serie deterministica esistente di indirizzi derivati da una frase seme.

Inizia selezionando la voce di menu Wallet > Chiavi private > Sweep. Verrà visualizzata la finestra di dialogo Sweep private keys, in cui potrai incollare le tue chiavi private. Un indirizzo non utilizzato controllato dal tuo wallet Dash Electrum viene visualizzato nel campo inferiore e può essere modificato facendo clic sul pulsante Indirizzo. Dopo aver incollato la chiave privata, fai clic sul pulsante Sweep.

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

Immissione della chiave privata#

Dash Electrum prepara quindi una transazione utilizzando la chiave privata appena importata per ricavare l’indirizzo pubblico per l’input della transazione e l’indirizzo dal tuo wallet come output e firma il messaggio. Fai clic su Trasmetti per inserire la transazione sulla blockchain. Il saldo apparirà quindi nel tuo wallet sotto l’indirizzo specificato. L’indirizzo che hai spazzato rimane con saldo zero.

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

Trasmissione della transazione spazzolata#

Cold storage#

Questa sezione mostra come creare un wallet offline che contenga il tuo Dash e un wallet online di sola visione utilizzato per visualizzarne la cronologia e per creare transazioni che devono essere firmate con il wallet offline prima di essere trasmesse su quello online.

Crea un wallet offline#

Crea un wallet su una macchina offline, come da procedura abituale (File > Nuovo). Dopo aver creato il wallet, vai su Wallet -> Chiavi pubbliche principali.

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

Chiave pubblica principale di un nuovo wallet offline#

La chiave pubblica principale del tuo wallet è la stringa mostrata in questa finestra popup. Trasferisci quella chiave sul tuo computer online in qualche modo.

Crea una versione del tuo wallet solo per la visione#

Sul tuo computer online, apri Dash Electrum e seleziona File > Nuovo/Ripristina. Inserisci un nome per il wallet e seleziona Utilizza chiavi pubbliche o private. Incolla la tua chiave pubblica principale nella casella. Fai clic su Avanti per completare la creazione del tuo wallet. Quando hai finito, dovresti vedere un popup che ti informa che stai aprendo un wallet di sola visione.

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

Chiave pubblica principale di un nuovo wallet offline#

Dovrebbe quindi apparire la cronologia delle transazioni del tuo wallet freddo.

Crea una transazione non firmata#

Vai alla scheda Invia sul tuo wallet per la sola visione online, inserisci i dati della transazione e fai clic su Invia. Apparirà una finestra per informarti che verrà aggiunta una commissione di transazione. Continua. Nella finestra visualizzata, fai clic su Salva e salva il file della transazione da qualche parte sul tuo computer. Chiudi la finestra e trasferisci il file della transazione sul tuo computer offline (ad esempio con una chiavetta USB).

Firma la tua transazione#

Sul tuo wallet offline, seleziona Strumenti > Carica transazione -> Da file nel menu e seleziona il file di transazione creato nel passaggio precedente. Fai clic su Firma. Una volta firmata la transazione, l’ID della transazione appare nel campo designato. Fai clic su Salva, archivia il file da qualche parte sul tuo computer e trasferiscilo nuovamente sul tuo computer online.

Trasmetti la tua transazione#

Sul tuo computer online, seleziona Strumenti -> Carica transazione -> Da file dal menu. Seleziona il file della transazione firmato. Nella finestra che si apre, fai clic su Trasmetti. La transazione verrà trasmessa sulla rete Dash.

Linea di comando#

Dash Electrum dispone di una potente riga di comando disponibile quando si esegue su Linux o macOS. Questa sezione ti mostrerà alcuni principi di base.

Utilizzando la guida in linea#

Per visualizzare l’elenco dei comandi Dash Electrum, digitare:

electrum help

Per visualizzare la documentazione di un comando, digitare:

electrum help <command>

Parole magiche#

Gli argomenti passati ai comandi possono essere una delle seguenti parole magiche: ! ? : -.

Il punto esclamativo ! è una scorciatoia che significa «l’importo massimo disponibile». Tieni presente che la commissione di transazione verrà calcolata e detratta dall’importo. Esempio:

electrum payto Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq !

Un punto interrogativo ? significa che si desidera che il parametro venga richiesto. Esempio:

electrum signmessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq ?

Utilizza i due punti : se desideri che il parametro richiesto venga nascosto (non visualizzato nel terminale). Tieni presente che in questo esempio ti verrà richiesta due volte, prima la chiave privata, poi la password del tuo wallet:

electrum importprivkey :

Un parametro sostituito da un trattino - verrà letto dallo standard input (in una pipe):

cat LICENCE | electrum signmessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq -

Alias#

Puoi utilizzare gli alias DNS al posto degli indirizzi bitcoin, nella maggior parte dei comandi:

electrum payto ecdsa.net !

Formattazione degli output utilizzando jq#

Gli output dei comandi sono stringhe semplici o dati strutturati JSON. Un’utilità molto utile è il programma «jq». Installalo con:

sudo apt-get install jq

Gli esempi seguenti lo utilizzano.

Firma e verifica il messaggio#

Potremmo utilizzare una variabile per memorizzare la firma e verificarla:

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

E:

cat LICENCE | electrum verifymessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq $sig -

Mostra i valori delle tue spese non spese#

Il comando listunspent restituisce un elenco di oggetti dict, con vari campi. Supponiamo di voler estrarre il campo «valore» di ciascun record. Ciò può essere ottenuto con il comando jq:

electrum listunspent | jq 'map(.value)'

Seleziona solo le transazioni in entrata dalla cronologia#

Le transazioni in entrata hanno un campo «valore» positivo:

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

Filtra le transazioni per data#

Il comando seguente seleziona le transazioni con timestamp successivo a una data specifica:

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

Allo stesso modo, possiamo esportare transazioni per un determinato periodo di tempo:

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))'

Crittografare e decrittografare i messaggi#

Per prima cosa abbiamo bisogno della chiave pubblica dell’indirizzo di un portafoglio:

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

Crittografa:

cat | electrum encrypt $pk -

Decifra:

electrum decrypt $pk ?

Nota: questo comando richiederà il messaggio crittografato, quindi la password del portafoglio.

Esporta chiavi private e spazza monete#

Il comando seguente esporterà le chiavi private di tutti gli indirizzi dei wallet che contengono alcuni Dash:

electrum listaddresses --funded | electrum getprivatekeys -

Ciò restituirà un elenco di elenchi di chiavi private. Nella maggior parte dei casi, si desidera ottenere un elenco semplice. Questo può essere fatto aggiungendo un filer jq, come segue:

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

Infine, utilizziamo questo elenco di chiavi private come input per il comando sweep:

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

Utilizzo della cold storage con la riga di comando#

Questa sezione ti mostrerà come firmare una transazione con un wallet Dash Electrum offline utilizzando la riga di comando.

Crea una transazione non firmata#

Con il tuo wallet online (solo visione), crea una transazione non firmata:

electrum payto Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq 0.1 --unsigned > unsigned.txn

La transazione non firmata viene archiviata in un file denominato «unsigned.txn». Tieni presente che l’opzione –unsigned non è necessaria se utilizzi un wallet di sola visione.

Puoi visualizzarlo utilizzando:

cat unsigned.txn | electrum deserialize -

Firma la transazione#

Il formato di serializzazione di Dash Electrum contiene la chiave pubblica principale necessaria e la chiave di derivazione utilizzata dal portafoglio offline per firmare la transazione. Pertanto dobbiamo solo passare la transazione serializzata al wallet offline:

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

Il comando richiederà la tua password e salverà la transazione firmata in «signed.txn».

Trasmetti la transazione#

Invia la tua transazione alla rete Dash, utilizzando broadcast:

cat signed.txn | electrum broadcast -

In caso di successo, il comando restituirà l’ID della transazione.

Come accettare Dash su un sito Web utilizzando Dash Electrum#

Questo tutorial ti mostrerà come accettare Dash su un sito Web con richieste di pagamento firmate SSL. È aggiornato per Dash Electrum 2.6.

Requisiti#

  • Un server web che serve HTML statico

  • Un certificato SSL (firmato da una CA)

  • Electrum versione >= 2.6

Crea un wallet#

Crea un wallet sul tuo server web:

electrum create

Puoi anche utilizzare un wallet solo per la visione (ripristinato da xpub), se vuoi mantenere le chiavi private lontane dal server. Una volta creato il tuo wallet, avvia Dash Electrum come daemon:

electrum daemon start

Aggiungi il tuo certificato SSL alla tua configurazione#

Dovresti avere una chiave privata e un certificato pubblico per il tuo dominio. Crea un file che contenga solo la chiave privata:

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

Imposta il percorso del file della chiave privata con setconfig:

electrum setconfig ssl_privkey /path/to/ssl.key

Crea un altro file che contenga il tuo certificato e l’elenco dei certificati da cui dipende, fino alla CA radice. Il tuo certificato deve essere in cima all’elenco e la CA radice alla fine:

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

Imposta il percorso ssl_chain con setconfig:

electrum setconfig ssl_chain /path/to/ssl.chain

Configura una directory delle richieste#

Questa directory deve essere servita dal tuo server web (ad esempio Apache):

electrum setconfig requests_dir /var/www/r/

Per impostazione predefinita, Dash Electrum visualizzerà gli URL locali, iniziando con «file://». Per visualizzare gli URL pubblici, dobbiamo impostare un’altra variabile di configurazione, «url_rewrite». Per esempio:

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

Crea una richiesta di pagamento firmata#

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
}

Questo comando restituisce un oggetto json con due URL:

  • «request_url» è l’URL della richiesta BIP70 firmata.

  • «index_url» è l’URL di una pagina Web che visualizza la richiesta.

Tieni presente che request_url e index_url utilizzano il nome di dominio che abbiamo definito in «url_rewrite». Puoi visualizzare l’elenco corrente delle richieste utilizzando il comando «listrequests».

Apri la pagina di richiesta di pagamento nel tuo browser#

Apriamo «index_url» in un browser web.

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

Pagina di richiesta di pagamento in un browser web#

La pagina mostra la richiesta di pagamento. Puoi aprire il dash: URI con un wallet o scansionare il codice QR. La riga inferiore visualizza il tempo rimanente fino alla scadenza della richiesta.

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

Portafoglio in attesa di pagamento#

Questa pagina può già essere utilizzata per ricevere pagamenti. Tuttavia, non rileverà che una richiesta è stata pagata; per questo dobbiamo configurare i websocket.

Aggiungi il supporto per i socket Web#

Ottieni SimpleWebSocketServer da qui:

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

Imposta websocket_server e websocket_port nella tua configurazione:

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

E riavvia il daemon:

electrum daemon stop
electrum daemon start

Ora la pagina è completamente interattiva: si aggiornerà automaticamente una volta ricevuto il pagamento. Tieni presente che le porte più alte potrebbero essere bloccate sui firewall di alcuni client, quindi è più sicuro, ad esempio, invertire la trasmissione dei websocket proxy utilizzando la porta 443 standard su un sottodominio aggiuntivo.

Interfaccia JSONRPC#

I comandi al daemon Dash Electrum possono essere inviati utilizzando JSONRPC. Ciò è utile se desideri utilizzare Dash Electrum in uno script PHP.

Tieni presente che il daemon utilizza un numero di porta casuale per impostazione predefinita. Per utilizzare un numero di porta stabile, è necessario impostare la variabile di configurazione rpcport (e riavviare il demone):

electrum setconfig rpcport 7777

Con questa impostazione possiamo eseguire query utilizzando curl o PHP. Esempio:

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

Query con parametri denominati:

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

Crea una richiesta di pagamento:

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