Configurazione Testnet#

La configurazione di un masternode con supporto per i servizi evo richiede una conoscenza di base della tecnologia Linux e blockchain, nonché la capacità di seguire attentamente le istruzioni. Richiede inoltre una manutenzione regolare e un’attenta sicurezza, in particolare se non conservi il tuo Dash su un wallet hardware. Ci sono alcune decisioni da prendere lungo il percorso e passaggi aggiuntivi facoltativi da intraprendere per una maggiore sicurezza.

Commerciali servizi di hosting masternode ` sono disponibili se preferisci delegare la gestione quotidiana del tuo masternode a un operatore professionale. Quando utilizzi questi servizi di hosting, mantieni il pieno controllo della garanzia 1000 DASH e paghi all’operatore una percentuale concordata della tua ricompensa. È anche possibile delegare le proprie chiavi di voto a un rappresentante, consultare la :ref:`documentazione sulla governance per ulteriori informazioni.

Prima di iniziare#

Questa guida presuppone che tu stia configurando un singolo masternode testnet per la prima volta. Se stai aggiornando un masternode, vedi invece :ref:`qui `. Avrai bisogno:

  • 1000 Dash

  • Un wallet per conservare il tuo Dash, preferibilmente un wallet hardware, sebbene sia supportato anche il wallet Dash Core

  • Un server Linux, preferibilmente un server privato virtuale (VPS)

Per informazioni sui masternode ospitati, consultare la documentazione elencata di seguito:

Questa documentazione descrive i comandi come se fossero stati immessi nella GUI Dash Core aprendo la console da Finestra > Console, ma lo stesso risultato può essere ottenuto su un masternode inserendo gli stessi comandi e aggiungendo il prefisso ~ /.dashcore/dash-cli a ciascun comando.

Configurazione del server#

La corretta configurazione del server è essenziale per il successo del funzionamento del masternode sia per motivi di sicurezza che di prestazioni. Fai riferimento alla pagina Configurazione del server per i dettagli su come preparare il tuo server per ospitare un masternode.

Invia il collaterale#

Per far funzionare un masternode è necessario un indirizzo Dash con un singolo output di transazione non speso (UTXO) esattamente di 1000 DASH. Una volta inviato, è necessario estrarre varie chiavi relative alla transazione per il successivo inserimento in un file di configurazione e registrazione della transazione come prova per scrivere la configurazione sulla blockchain in modo che il masternode possa essere incluso nella lista deterministica. Un masternode può essere registrato da un wallet hardware o dal wallet ufficiale Dash Core, sebbene un wallet hardware sia altamente raccomandato per migliorare la sicurezza e proteggersi dagli attacchi hacker. Questa guida descriverà i passaggi sia per i wallet hardware che per Dash Core.

Opzione 1: conservare la garanzia in un portafoglio hardware#

Configura il tuo Trezor utilizzando il wallet Trezor su https://wallet.trezor.io/ e invia una transazione di prova per verificare che funzioni correttamente. Per assistenza in merito, consulta questa guida - puoi anche scegliere (con attenzione!) aggiungere una passphrase al tuo Trezor per proteggere ulteriormente la tua garanzia. Crea un nuovo account nel tuo wallet Trezor facendo clic su Aggiungi account. Quindi fai clic sulla scheda Ricevi e invia esattamente 1000 DASH all’indirizzo visualizzato. Se stai configurando più masternode, invia 1000 DASH a indirizzi consecutivi all’interno dello stesso nuovo account. Dovresti vedere la transazione non appena arriva la prima conferma, solitamente entro pochi minuti.

../../../_images/setup-collateral-trezor.png

Wallet Receive tab showing successfully received collateral of 1000 DASH#

Una volta visualizzata la transazione, fai clic sul codice QR a destra per visualizzare la transazione sulla blockchain. Mantieni questa finestra aperta mentre completiamo i passaggi successivi, poiché presto dovremo confermare che esistono 15 conferme, come mostrato nello screenshot seguente.

../../../_images/setup-collateral-blocks.png

Blockchain explorer showing 15 confirmations for collateral transfer#

Mentre aspettiamo 15 conferme, scarica l’ultima versione di Dash Masternode Tool (DMT) dalla pagina delle versioni di GitHub qui. Decomprimere ed eseguire il file. Viene visualizzata la seguente finestra.

../../../_images/setup-collateral-dmt-start.png

Schermata di avvio di Dash Masternode Tool#

Click the third button from the left Check Dash Network Connection in the top left corner of the main window to verify that the connection is working. Then connect your Trezor device and click the next button Test Hardware Wallet Connection to verify the hardware wallet connection is working.

../../../_images/setup-collateral-connection.png
../../../_images/setup-collateral-hardware.png

Conferma di connessione riuscita col Dash Masternode Tool#

Utilizzeremo ora DMT per inserire alcune informazioni di base sul masternode ed estrarre l’ID della transazione. Eseguire la seguente sequenza di passaggi come mostrato in questa schermata:

../../../_images/setup-collateral-dmt-steps.png

Step per configurare Dash Masternode Tool#

  1. Fare clic sul pulsante Nuovo.

  2. Inserisci un nome per il tuo masternode. Il nome host specificato sopra per il tuo VPS è una buona scelta.

  3. Inserisci l’indirizzo IP del tuo masternode. Questo ti è stato fornito dal provider VPS quando hai configurato il server. Quindi inserisci il numero della porta TCP. Dovrebbe essere il 19999.

  4. Fai clic su Trova garanzie per visualizzare le transazioni di finanziamento delle garanzie non utilizzate disponibili sul wallet hardware connesso. Seleziona l’indirizzo a cui hai inviato 1000 Dash e fai clic su Applica. I campi Indirizzo collaterale, percorso, Hash TX collaterale e indice devono essere compilati automaticamente.

../../../_images/setup-collateral-dmt-ready.png

Dash Masternode Tool con configurazione Masternode#

Lascia aperto DMT e continua con il passaggio successivo: installazione di Dash Core sul tuo VPS.

Opzione 2: detenere il collaterale nel wallet Dash Core#

Apri il wallet Dash Core e attendi che si sincronizzi con la rete. Dovrebbe assomigliare a questo quando è pronto:

../../../_images/setup-collateral-dashcore.png

Wallet Dash Core completamente sincronizzato#

Fai clic su Finestra > Console per aprire la console. Digita il seguente comando nella console per generare un nuovo indirizzo Dash per il materiale collaterale:

getnewaddress
yiFfzbwiN9oneftd7cEfr3kQLRwQ4kp7ue

Prendi nota dell’indirizzo collaterale, poiché ne avremo bisogno in seguito. Il prossimo passo è proteggere il tuo wallet (se non l’hai già fatto). Innanzitutto, crittografa il portafoglio selezionando Impostazioni > Crittografa wallet. Dovresti utilizzare una password nuova e complessa che non hai mai utilizzato altrove. Prendi nota della tua password e conservala in un posto sicuro, altrimenti rimarrai permanentemente bloccato fuori dal tuo wallet e perderai l’accesso ai tuoi fondi. Successivamente, esegui il backup del file del tuo wallet selezionando File > Backup wallet. Salva il file in un luogo sicuro fisicamente separato dal tuo computer, poiché questo sarà l’unico modo per accedere ai nostri fondi se succede qualcosa al tuo computer. Per ulteriori dettagli su questi passaggi, vedere :ref:`qui `.

Now send exactly 1000 DASH in a single transaction to the new address you generated in the previous step. This may be sent from another wallet, or from funds already held in your current wallet. Once the transaction is complete, view the transaction in a blockchain explorer by searching for the address. You will need 15 confirmations before you can register the masternode, but you can continue with the next step at this point already: generating your masternode operator key.

../../../_images/setup-collateral-blocks.png

Blockchain explorer showing 15 confirmations for collateral transfer#

Installazione Masternode#

Sono disponibili i seguenti strumenti per l’installazione di un masternode Dash:

installazione dashmate#

Dashmate è uno strumento universale progettato per aiutarti a configurare ed eseguire i nodi Dash in un ambiente containerizzato. Si basa sulla tecnologia Docker e presenta un comando di configurazione interattivo. Dashmate gestisce l’installazione di Dash Core, nonché tutte le dipendenze e i servizi di supporto. Consulta questa documentazione dashmate per ulteriori informazioni.

Avvertimento

L’installazione come utente root non è supportata né consigliata.

Apri nuovamente PuTTY o una console e connettiti utilizzando il nome utente e la password che hai appena creato per il tuo nuovo utente non root. Inizia installando le dipendenze di Dashmate:

curl -fsSL https://get.docker.com -o get-docker.sh && sh ./get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install 16

Installa dashmate:

npm install -g dashmate

Esegui la procedura guidata di configurazione interattiva:

dashmate setup

Ti verrà richiesto di selezionare una rete, un tipo di nodo, un indirizzo IP e una chiave privata BLS. Immettere queste informazioni o accettare le impostazioni predefinite rilevate/generate. Avvia il tuo nodo come segue:

dashmate start

Puoi gestire lo stato, la configurazione e lo stato di esecuzione del tuo masternode interamente da Dashmate. Consulta la documentazione qui o utilizza il sistema di guida integrato per saperne di più:

  • dashmate --help

  • dashmate <command> --help

../../../_images/dashmate-status.png

Dashmate visualizza una gamma di output di stato#

Puoi controllare lo stato del tuo masternode utilizzando i vari comandi dashmate status come segue:

- dashmate status
- dashmate status core
- dashmate status host
- dashmate status masternode
- dashmate status platform
- dashmate status services

Continua con il :ref:`Passaggio di registrazione ` per impostare il collaterale, le chiavi e costruire la transazione ProTx richiesta per abilitare il tuo masternode.

Aggiornamento Masternode#

Puoi utilizzare dashmate per aggiornare le versioni minori del software sul tuo masternode come segue:

dashmate stop
dashmate update
dashmate start

L’aggiunta facoltativa dei seguenti comandi git e npm garantisce inoltre l’utilizzo dell’ultima versione stabile di dashmate:

dashmate stop
npm update -g dashmate
dashmate update
dashmate start

L’aggiunta del seguente comando eliminerà tutti i dati dalla Dash Platform (necessario se la Platform è stata cancellata) e si riavvierà con la versione più recente:

dashmate stop
npm update -g dashmate
dashmate reset --platform-only
dashmate update
dashmate start

Registrazione del masternode#

Le tre chiavi richieste per i diversi ruoli masternode sono descritte brevemente in Concetti di Masternode in questa documentazione.

Opzione 1: registrazione da un wallet hardware#

Torna a DMT e assicurati che tutti i campi del passaggio precedente siano ancora compilati correttamente. Fai clic su Genera nuovo per le tre chiavi private richieste per un masternode:

  • Chiave privata del proprietario

  • Chiave privata dell’operatore (genera una nuova o usa la chiave privata generata da dashmate)

  • Chiave privata di voto

../../../_images/setup-dmt-full.png

Dash Masternode Tool pronto per registrare un nuovo masternode#

Quindi fare clic su Registra masternode. Facoltativamente, specifica un diverso Indirizzo di pagamento e/o un Premio per l’operatore, quindi fai clic su Continua. Seleziona Nodo RPC Dash remoto (metodo automatico). (Vedi qui per la documentazione sull’utilizzo del tuo nodo RPC locale.) e conferma i seguenti due messaggi:

../../../_images/setup-dmt-send.png
../../../_images/setup-dmt-sent.png

Dash Masternode Tool finestre di dialogo di conferma per registrare un masternode#

La chiave pubblica verrà utilizzata nei passaggi successivi. La chiave privata deve essere inserita nella configurazione sul masternode. Ciò consente al masternode di monitorare la blockchain per le transazioni Pro*Tx rilevanti e lo farà iniziare a fungere da masternode quando il ProRegTx firmato verrà trasmesso dal proprietario (passaggio finale di seguito). Se stai utilizzando la chiave BLS generata da dashmate setup, queste informazioni sono già configurate per il tuo masternode. Se hai generato la tua coppia di chiavi BLS, modifica la configurazione del dashmate come segue:

dashmate config set core.masternode.operator.privateKey <bls_private_key>
dashmate restart

A questo punto puoi tornare alla finestra del tuo terminale e monitorare il tuo masternode inserendo dashmate status o utilizzando la funzione Get status in DMT.

Ora puoi uscire in sicurezza dal tuo server digitando exit. Congratulazioni! Il tuo masternode è ora in esecuzione.

Opzione 2: registrazione dal wallet Dash Core#

Identificare la transazione di finanziamento#

Se hai utilizzato un indirizzo nel wallet Dash Core per la transazione collaterale, ora devi trovare il txid della transazione. Fai clic su Finestra > Console e inserisci il seguente comando:

masternode outputs

Questo dovrebbe restituire una stringa di caratteri simile alla seguente:

{
"16347a28f4e5edf39f4dceac60e2327931a25fdee1fb4b94b63eeacf0d5879e3-1",
}

La prima stringa lunga è il tuo collateralHash, mentre l’ultimo numero è il collateralIndex.

Genera una coppia di chiavi BLS#

Per utilizzare un masternode è necessaria una coppia di chiavi BLS pubblica/privata. La chiave privata è specificata sul masternode stesso, e permette di inserirlo nella lista deterministica dei masternode una volta creata una transazione di registrazione del provider con la corrispondente chiave pubblica.

Se stai utilizzando un servizio di hosting, potrebbero fornirti la loro chiave pubblica e puoi saltare questo passaggio. Se stai ospitando il tuo masternode o hai accettato di fornire al tuo host la chiave privata BLS, puoi utilizzare la chiave BLS generata dal comando «dashmate setup». In alternativa, puoi generare una coppia di chiavi pubblica/privata BLS in Dash Core facendo clic su Finestra > Console e immettendo il seguente comando:

bls generate

{
  "secret": "395555d67d884364f9e37e7e1b29536519b74af2e5ff7b62122e62c2fffab35e",
  "public": "99f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670e",
  "scheme": "legacy"
}

Queste chiavi NON vengono archiviate dal portafoglio o dashmate e devono essere mantenute al sicuro, in modo simile al valore fornito in passato dal comando masternode genkey .

Aggiungi la chiave privata alla configurazione del tuo masternode#

La chiave pubblica verrà utilizzata nei passaggi successivi. La chiave privata deve essere inserita nel file dash.conf sul masternode. Ciò consente al masternode di monitorare la blockchain per le transazioni Pro*Tx rilevanti e lo farà iniziare a fungere da masternode quando il ProRegTx firmato verrà trasmesso dal proprietario (passaggio finale di seguito). Se stai utilizzando la chiave BLS generata da dashmate setup, queste informazioni sono già configurate per il tuo masternode. Se hai generato la tua coppia di chiavi BLS, modifica la configurazione del dashmate come segue:

dashmate config set core.masternode.operator.privateKey <bls_private_key>
dashmate restart

Ora prepareremo la transazione utilizzata per registrare il masternode sulla rete.

Preparare una transazione ProRegTx#

In precedenza è stata già generata una coppia di chiavi BLS per l’operatore e la chiave privata è stata inserita nel masternode. La chiave pubblica viene utilizzata in questa transazione come operatorPubKey.

Innanzitutto, dobbiamo ottenere un nuovo indirizzo non utilizzato dal wallet che funga da indirizzo della chiave del proprietario (ownerKeyAddr). Questo non è lo stesso dell’indirizzo collaterale che contiene 1000 Dash. Genera un nuovo indirizzo come segue:

getnewaddress

yfgxFhqrdDG15ZWKJAN6dQvn6dZdgBPAip

Questo indirizzo può essere utilizzato anche come indirizzo chiave di voto (votingKeyAddr). In alternativa, puoi specificare un indirizzo fornito dal delegato votante prescelto o semplicemente generare un nuovo indirizzo chiave di voto come segue:

getnewaddress

yfRaZN8c3Erpqj9iKnmQ9QDBeUuRhWV3Mg

Quindi genera o scegli un indirizzo esistente per ricevere i pagamenti del masternode del proprietario (payoutAddress). E” possibile utilizzare anche un indirizzo esterno al wallet:

getnewaddress

yjZVt49WsQd6XSrPVAUGXtJccxviH9ZQpN

Puoi anche opzionalmente generare e finanziare un altro indirizzo come fonte della commissione di transazione (feeSourceAddress). Se hai selezionato un indirizzo di pagamento esterno, devi specificare un indirizzo di origine della commissione.

L’indirizzo di pagamento o l’indirizzo di origine della commissione deve avere un saldo sufficiente per pagare la commissione di transazione, altrimenti la transazione «register_prepare» fallirà.

Le chiavi private del proprietario e gli indirizzi della fonte delle commissioni devono essere presenti nel portafoglio che invia la transazione alla rete. Se il tuo portafoglio è protetto da password, ora deve essere sbloccato per eseguire i seguenti comandi. Sblocca il tuo portafoglio per 5 minuti:

walletpassphrase yourSecretPassword 300

Ora prepareremo una transazione speciale ProRegTx senza segno utilizzando il comando protx Register_prepare. Questo comando ha la seguente sintassi:

protx register_prepare collateralHash collateralIndex coreP2PAddrs ownerKeyAddr
  operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress)

Avvertimento

Previously, protx register_prepare_legacy could be used to register a masternode with a legacy scheme BLS key. The legacy commands were deprecated as of Dash Core v23.0, so it is now recommended to generate a new basic scheme BLS key instead. This can be done by following the Generate a BLS key pair instructions.

Apri un editor di testo come Blocco note per preparare questo comando. Sostituisci ogni argomento del comando come segue:

  • collateralHash: il txid della transazione di finanziamento collaterale 1000 Dash

  • collateralIndex: l’indice di output della transazione di finanziamento 1000 Dash

  • coreP2PAddrs: Array of masternode address(es), in the format x.x.x.x:yyyy

  • ownerKeyAddr: il nuovo indirizzo Dash generato sopra per l’indirizzo del proprietario/voto

  • operatorPubKey: la chiave pubblica BLS generata sopra (o fornita dal tuo servizio di hosting)

  • votingKeyAddr: il nuovo indirizzo Dash generato sopra, o l’indirizzo di un delegato, utilizzato per la votazione della proposta

  • operatorReward: La percentuale del premio in blocco assegnato all’operatore come pagamento

  • payoutAddress: un indirizzo Dash nuovo o esistente per ricevere i premi masternode del proprietario

  • feeSourceAddress: un indirizzo (facoltativo) utilizzato per finanziare la tariffa ProTx. Se non specificato verrà utilizzato payoutAddress.

Tieni presente che l’operatore è responsabile di specificare il proprio indirizzo di ricompensa in una transazione update_service separata se specifichi un operatorReward diverso da zero. Il proprietario della garanzia masternode non specifica l’indirizzo di pagamento dell’operatore.

Esempio (rimuovere le interruzioni di riga durante la copia):

protx register_prepare
  16347a28f4e5edf39f4dceac60e2327931a25fdee1fb4b94b63eeacf0d5879e3
  1
  '["45.76.230.239:19999"]'
  yfgxFhqrdDG15ZWKJAN6dQvn6dZdgBPAip
  99f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670e
  yfRaZN8c3Erpqj9iKnmQ9QDBeUuRhWV3Mg
  0
  yjZVt49WsQd6XSrPVAUGXtJccxviH9ZQpN
  yR83WsikBaBaNusTnHZf28kAcL8oVmp1TE

Output:

{
  "tx": "030001000175c9d23c2710798ef0788e6a4d609460586a20e91a15f2097f56fc6e007c4f8e0000000000feffffff01a1949800000000001976a91434b09363474b14d02739a327fe76e6ea12deecad88ac00000000d1010000000000e379580dcfea3eb6944bfbe1de5fa2317932e260acce4d9ff3ede5f4287a34160100000000000000000000000000ffff2d4ce6ef4e1fd47babdb9092489c82426623299dde76b9c72d9799f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670ed1935246865dce1accce6c8691c8466bd67ebf1200001976a914fef33f56f709ba6b08d073932f925afedaa3700488acfdb281e134504145b5f8c7bd7b47fd241f3b7ea1f97ebf382249f601a0187f5300",
  "collateralAddress": "yjSPYvgUiAQ9AFj5tKFA8thFLoLBUxQERb",
  "signMessage": "yjZVt49WsQd6XSrPVAUGXtJccxviH9ZQpN|0|yfgxFhqrdDG15ZWKJAN6dQvn6dZdgBPAip|yfRaZN8c3Erpqj9iKnmQ9QDBeUuRhWV3Mg|ad5f82257bd00a5a1cb5da1a44a6eb8899cf096d3748d68b8ea6d6b10046a28e"
}

Successivamente utilizzeremo i campi collateralAddress e signMessage per firmare la transazione e l’output del campo tx per inviare la transazione.

Firma la transazione ProRegTx#

Ora firmeremo il contenuto del campo signMessage utilizzando la chiave privata per l’indirizzo del collaterale come specificato in collateralAddress. Tieni presente che per questo passaggio non è necessaria alcuna connessione Internet, il che significa che il wallet può rimanere disconnesso da Internet nella cella frigorifera per firmare il messaggio. In questo esempio utilizzeremo nuovamente Dash Core, ma è ugualmente possibile utilizzare la funzione di firma di un wallet hardware. Il comando assume la seguente sintassi:

signmessage collateralAddress signMessage

Esempio:

signmessage yjSPYvgUiAQ9AFj5tKFA8thFLoLBUxQERb yjZVt49WsQd6XSrPVAUGXtJccxviH9ZQpN|0|yfgxFhqrdDG15ZWKJAN6dQvn6dZdgBPAip|yfRaZN8c3Erpqj9iKnmQ9QDBeUuRhWV3Mg|ad5f82257bd00a5a1cb5da1a44a6eb8899cf096d3748d68b8ea6d6b10046a28e

Output:

II8JvEBMj6I3Ws8wqxh0bXVds6Ny+7h5HAQhqmd5r/0lWBCpsxMJHJT3KBcZ23oUZtsa6gjgISf+a8GzJg1BfEg=

Invia il messaggio firmato#

Ora invieremo la transazione speciale ProRegTx alla blockchain per registrare il masternode. Questo comando deve essere inviato da un wallet Dash Core che contiene un saldo su «feeSourceAddress» o «payoutAddress», poiché è coinvolta una commissione di transazione standard. Il comando assume la seguente sintassi:

protx register_submit tx sig

Dove:

  • tx: La transazione serializzata precedentemente restituita nel campo di output tx dal comando protx Register_prepare

  • sig: il messaggio firmato con la chiave collaterale dal comando signmessage

Esempio:

protx register_submit 030001000175c9d23c2710798ef0788e6a4d609460586a20e91a15f2097f56fc6e007c4f8e0000000000feffffff01a1949800000000001976a91434b09363474b14d02739a327fe76e6ea12deecad88ac00000000d1010000000000e379580dcfea3eb6944bfbe1de5fa2317932e260acce4d9ff3ede5f4287a34160100000000000000000000000000ffff2d4ce6ef4e1fd47babdb9092489c82426623299dde76b9c72d9799f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670ed1935246865dce1accce6c8691c8466bd67ebf1200001976a914fef33f56f709ba6b08d073932f925afedaa3700488acfdb281e134504145b5f8c7bd7b47fd241f3b7ea1f97ebf382249f601a0187f5300 II8JvEBMj6I3Ws8wqxh0bXVds6Ny+7h5HAQhqmd5r/0lWBCpsxMJHJT3KBcZ23oUZtsa6gjgISf+a8GzJg1BfEg=

Output:

aba8c22f8992d78fd4ff0c94cb19a5c30e62e7587ee43d5285296a4e6e5af062

Il tuo masternode è ora registrato e apparirà nell’elenco dei Masternode deterministici dopo che la transazione sarà stata estratta in un blocco. Puoi visualizzare questo elenco nella scheda Masternodes -> DIP3 Masternodes del wallet Dash Core o nella console utilizzando il comando protx list valid, dove il txid del file finale protx Register_submit la transazione identifica il tuo masternode.

A questo punto puoi tornare alla finestra del tuo terminale e monitorare il tuo masternode inserendo dashmate status o utilizzando la funzione Get status in DMT.