Crea il tuo portafoglio Ergo: Gestire i token Ergo con ErgoTool

This page is machine-translated.
Alexander Slesarenko

31 dicembre 2019

Introduzione

ErgoTool è un'interfaccia a riga di comando (CLI) per
Ergo blockchain. Puoi utilizzare ErgoTool senza eseguire il tuo
nodo Ergo. Anche se eseguire un nodo è il modo più sicuro per comunicare con la
rete della blockchain di Ergo, ErgoTool mira a fornire strumenti più fondamentali a tua
disposizione. Certamente, puoi comunque usarlo con il tuo nodo in esecuzione.

In questo post passeremo attraverso semplici passaggi per generare una frase mnemonica, creare un
archivio segreto locale e usarlo per inviare ERG tra indirizzi, tutto con l'aiuto dei
comandi di ErgoTool.

Iniziare

Prima di tutto, dobbiamo installare ErgoTool sul nostro sistema dai sorgenti seguendo le
istruzioni di installazione. Nella
directory in cui abbiamo clonato ErgoTool c'è lo script ergo-tool.sh che utilizzeremo
per eseguire i comandi. Esegui il seguente comando per controllare che ErgoTool sia installato correttamente.

$ ./ergo-tool.sh help     
Il nome del comando non è specificato (esegui ergo-tool senza argomenti per elencare i comandi)

Nome del Comando:	help
Sintassi d'uso:	ergo-tool help <commandName>
Descrizione:	stampa aiuto per l'uso di un comando
Pagina doc:	https://aslesarenko.github.io/ergo-tool/api/org/ergoplatform/appkit/ergotool/HelpCmd.html

Vediamo cosa otteniamo qui. ErgoTool restituisce il messaggio di errore con le informazioni sul
comando help. Questo è un output tipico di ErgoTool quando uno dei comandi noti è
specificato, ma viene utilizzato in modo errato. Come possiamo apprendere dal messaggio, il comando help
richiede di specificare un argomento <commandName> aggiuntivo. Inoltre, ogni comando ha
una pagina di documentazione API con tutti i dettagli sull'esecuzione del comando, quindi il suo URL è mostrato qui.

Crea una Nuova Frase Mnemonica

La frase mnemonica è una sequenza casuale di caratteri utilizzata per generare una chiave master
secondo la specifica dei Wallets Gerarchici Deterministici.
Per comodità, viene utilizzata una sequenza casuale di parole inglesi, ma questo non è obbligatorio.
Esegui il seguente comando per generare una nuova frase mnemonica:

$ ./ergo-tool.sh mnemonic          
bird harbor wheat innocent business disease busy quick yellow trust time oil enter situate moon

Scrivila su un foglio e conservala in un luogo sicuro e segreto.
Come misura di sicurezza aggiuntiva, puoi creare una password mnemonica arbitraria.
In un certo senso, può servire come una parola non vocabolario aggiuntiva nella mnemonica.
La password mnemonica è facoltativa e viene utilizzata per una sicurezza aggiuntiva.
Se decidi di utilizzare una password mnemonica, dovresti anche scriverla e conservarla in un luogo segreto e
probabilmente diverso dalla mnemonica.

Importante, sia la frase mnemonica che la password mnemonica sono necessarie per ripristinare le chiavi segrete,
se perdi una di esse non sarai in grado di rigenerare la tua chiave master.

Successivamente, utilizziamo la mnemonica generata per creare un archivio con una chiave segreta master.

Crea un Nuovo Archivio Crittografato

Per una maggiore sicurezza, né la frase mnemonica né la password sono richieste da ErgoTool per
eseguire la firma della transazione. Invece, è necessaria la chiave segreta dall'archivio crittografato per
firmare la transazione di spesa. Possiamo generare una chiave segreta e memorizzarla in un
archivio crittografato utilizzando il comando createStorage.

$ ./ergo-tool.sh help createStorage

Nome del Comando:	createStorage
Sintassi d'uso:	ergo-tool createStorage [<storageDir>="storage"] [<storageFileName>="secret.json"]
Descrizione:	Crea un file di archiviazione crittografato per la mnemonica inserita dall'utente
Pagina doc:       https://aslesarenko.github.io/ergo-tool/api/org/ergoplatform/appkit/ergotool/CreateStorageCmd.html

$ ./ergo-tool.sh createStorage 
Inserisci la frase mnemonica> bird harbor wheat innocent business disease busy quick yellow trust time oil enter situate moon
Password mnemonica> 
Ripeti la password mnemonica> 
Password di archiviazione> 
Ripeti la password di archiviazione> 
File di archiviazione: storage/secret.json

Una chiave segreta master viene generata dalla coppia (frase mnemonica, password mnemonica) e
salvata crittografata nel file storage/secret.json. La mnemonica stessa non è memorizzata nel
file e non c'è modo di ripristinarla dal file, anche se conosci le password.

Fai attenzione a inserire la password mnemonica corretta, quella che hai scelto e salvato prima.
Poiché una password mnemonica è facoltativa, puoi lasciarla vuota premendo invio.

Se dimentichi la password di archiviazione (alias password di crittografia), non sarai in grado di utilizzare
quel file di archiviazione, tuttavia, puoi sempre ripristinare le tue chiavi segrete dalla coppia (frase
mnemonica, password mnemonica) e quindi creare un nuovo file di archiviazione con una nuova password.

Tieni il tuo file di archiviazione e la password di archiviazione segreti, chiunque ottenga sia il tuo file di archiviazione
che la password di archiviazione sarà in grado di decifrarlo e accedere alle chiavi segrete.

Estrazione dei Dati dall'Archivio

L'archivio segreto contiene la chiave segreta master e, di conseguenza, può essere utilizzato per calcolare sia la
chiave pubblica che l'indirizzo pay-to-public-key che corrisponde a quella chiave segreta. Il
comando extractStorage fa proprio questo.

$ ./ergo-tool.sh help extractStorage

Nome del Comando:	extractStorage
Sintassi d'uso:	ergo-tool extractStorage <storage file> address|masterKey|publicKey|secretKey mainnet|testnet
Descrizione:	Legge il file, lo sblocca utilizzando la password ed estrae la proprietà richiesta dal file di archiviazione fornito.
Pagina doc:	https://aslesarenko.github.io/ergo-tool/api/org/ergoplatform/appkit/ergotool/ExtractStorageCmd.html 

$ ./ergo-tool.sh extractStorage storage/secret.json address mainnet     
Password di archiviazione> 
9iHiSAg3ko2ZGxR2vhc1Aem3tShqfzEPDAF7XK5cdtbZ3Ut2CCf

Qui il comando trasforma la chiave segreta nella corrispondente chiave pubblica e poi crea
l'indirizzo pay-to-public-key sulla mainnet.

Allo stesso modo possiamo ottenere la chiave pubblica, la chiave privata e altri dati dall'archivio.

$ ./ergo-tool.sh extractStorage storage/secret.json secretKey mainnet
Password di archiviazione> 
55dfde63c9b6b4f47683592e85ee997ba2e93507f38ba3f9c82933bcfbc677ca

$ ./ergo-tool.sh extractStorage storage/secret.json publicKey mainnet
Password di archiviazione> 
03f07aecb145a85920bf6e9be80efe5f1cd1a165b45ad3aa8e5c4ca3ba50856bb8

Elenco delle Box Non Spese

ErgoTool ha un comando speciale per elencare tutte le box disponibili (alias non spese) per un dato indirizzo.

$ ./ergo-tool.sh listAddressBoxes 9f4QF8AD1nQ3nJahQVkMj8hFSVVzVom77b52JU7EW71Zexg6N8v                                                                
BoxId                                                             NanoERGs          
4840cb6facc20b765085db0ad24768ed0c5e7afd413e8e58e597c33a993f8119  4987000000

se specifichiamo l'opzione --print-json, ErgoTool restituirà tutte le box in formato json

$ ./ergo-tool.sh listAddressBoxes --print-json 9f4QF8AD1nQ3nJahQVkMj8hFSVVzVom77b52JU7EW71Zexg6N8v
[{"boxId":"4840cb6facc20b765085db0ad24768ed0c5e7afd413e8e58e597c33a993f8119","value":4987000000,"ergoTree":"0008cd02472963123ce32c057907c7a7268bc09f45d9ca57819d3327b9e7497d7b1cc347","creationHeight":125646,"assets":[],"additionalRegisters":{},"transactionId":"820c688f4b9d709924ba0186ee930a7df374d8852920bc769fc1f1d0b313e5ab","index":2}]

Trasferire Token

Ora, con la chiave segreta memorizzata in modo sicuro nel file di archiviazione crittografato, possiamo utilizzare ErgoTool per
trasferire token dal nostro indirizzo a un altro indirizzo destinatario. Il comando per farlo è
send.

./ergo-tool.sh help send                                     

Nome del Comando:	send
Sintassi d'uso:	ergo-tool send <storageFile> <recipientAddr> <amountToSend>
Descrizione:	invia il dato <amountToSend> all'indirizzo <recipientAddr> utilizzando 
 il dato <storageFile> per firmare la transazione (richiede la password di archiviazione)
Pagina doc:	https://aslesarenko.github.io/ergo-tool/api/org/ergoplatform/appkit/ergotool/SendCmd.html

Il file di archiviazione è necessario per accedere alla chiave segreta e generare una firma. La
password di archiviazione verrà richiesta da ErgoTool per sbloccare e decifrare il contenuto del file.
Il comando send supporta l'opzione --dry-run che costringe ErgoTool a creare la
transazione firmata, ma invece di inviarla alla blockchain, ErgoTool stampa la
transazione sulla console.

$ ./ergo-tool.sh send --dry-run storage/E1.json 9hHDQb26AjnJUXxcqriqY1mnhpLuUeC81C4pggtK7tupr92Ea1K 5000000
Password di archiviazione>
Creazione del prover... Ok
Caricamento delle box non spese dall'indirizzo 9f4QF8AD1nQ3nJahQVkMj8hFSVVzVom77b52JU7EW71Zexg6N8v... Ok
Firma della transazione... Ok
Tx: {
  "id": "2633733a1d81b8fc747d984bdc36fac42cb52118b5057375b081b4c543c62b0e",
  "inputs": [
    {
      "boxId": "4840cb6facc20b765085db0ad24768ed0c5e7afd413e8e58e597c33a993f8119",
      "spendingProof": {
        "proofBytes": "060e7c99c9c9cecf89ec5c3e7b692075e0b3415318f8064c64f7f01401ac29c6637b44535151e51d43d4cd25e05ad459dbe33718a99a22dd",
        "extension": {}
      }
    }
  ],
  "dataInputs": [],
  "outputs": [
    {
      "boxId": "4eaed414ae763158126859bbf912fa9ffb9ea67ac13d81d473b1c81ec65b06fd",
      "value": 5000000,
      "ergoTree": "ErgoTree(0,WrappedArray(),Right(ConstantNode(SigmaProp(ProveDlog(ECPoint(6ba5cf,8ae5ac,...))),SSigmaProp)),80,[B@1117fff48)",
      "creationHeight": 130508,
      "assets": [],
      "additionalRegisters": {},
      "transactionId": "2633733a1d81b8fc747d984bdc36fac42cb52118b5057375b081b4c543c62b0e",
      "index": 0
    },
    {
      "boxId": "059b426fe2aaef10b6a9a618f0c5b4e97d4dd9931328bf4f52bcf92b0943a42c",
      "value": 1000000,
      "ergoTree": "ErgoTree(16,WrappedArray(IntConstant(0), IntConstant(0), ConstantNode(Coll(16,2,4,-96,11,8,-51,2,121,-66,102,126,-7,-36,-69,-84,85,-96,98,-107,-50,-121,11,7,2,-101,-4,-37,45,-50,40,-39,89,-14,-127,91,22,-8,23,-104,-22,2,-47,-110,-93,-102,-116,-57,-89,1,115,0,115,1),Coll[SByte$]), ConstantNode(Coll(1),Coll[SInt$]), IntConstant(1)),Right(BoolToSigmaProp(AND(ConcreteCollection(WrappedArray(EQ(Height$(163),SelectField(ExtractCreationInfo(ByIndex(Outputs$(165),ConstantPlaceholder(0,SInt$),None)),1)), EQ(ExtractScriptBytes(ByIndex(Outputs$(165),ConstantPlaceholder(1,SInt$),None)),SubstConstants(ConstantPlaceholder(2,Coll[SByte$]),ConstantPlaceholder(3,Coll[SInt$]),ConcreteCollection(WrappedArray(CreateProveDlog(DecodePoint(MinerPubkey$(172)))),SSigmaProp))), EQ(SizeOf(Outputs$(165)),ConstantPlaceholder(4,SInt$))),SBoolean)))),4836,[B@111805c40)",
      "creationHeight": 130508,
      "assets": [],
      "additionalRegisters": {},
      "transactionId": "2633733a1d81b8fc747d984bdc36fac42cb52118b5057375b081b4c543c62b0e",
      "index": 1
    },
    {
      "boxId": "0638ddb0fe6a8cc6ca4f981f71777f4a6e8aad72d57fdf945b24e0ef4ca714e1",
      "value": 4981000000,
      "ergoTree": "ErgoTree(0,WrappedArray(),Right(ConstantNode(SigmaProp(ProveDlog(ECPoint(472963,7c85fd,...))),SSigmaProp)),80,[B@111816258)",
      "creationHeight": 130508,
      "assets": [],
      "additionalRegisters": {},
      "transactionId": "2633733a1d81b8fc747d984bdc36fac42cb52118b5057375b081b4c543c62b0e",
      "index": 2
    }
  ]
}

Nota che gli script "ergoTree" sono deserializzati e stampati come alberi di sintassi astratta. Questo
formato di stampa può essere regolato da opzioni aggiuntive in modo che gli script possano essere stampati come
ErgoScript leggibile dall'uomo. (Non ancora implementato, ma da qualche parte nella roadmap.)

Se escludiamo l'opzione --dry-run, la transazione verrà inviata e inclusa nella
blockchain.

$ ./ergo-tool.sh send storage/E1.json 9hHDQb26AjnJUXxcqriqY1mnhpLuUeC81C4pggtK7tupr92Ea1K 5000000          
Password di archiviazione>
Creazione del prover... Ok
Caricamento delle box non spese dall'indirizzo 9f4QF8AD1nQ3nJahQVkMj8hFSVVzVom77b52JU7EW71Zexg6N8v... Ok
Firma della transazione... Ok
Invio della transazione... Ok
Il server ha restituito l'id tx: "c5710af17f5124a232a5ef731fdf94a493025334c2a7d5a79e9923210972b962"

La nuova transazione creata verrà trasmessa in tutta la blockchain e i miner inizieranno
a includerla in un nuovo blocco. Una volta che il nuovo blocco con la nostra transazione è stato estratto e
accettato dalla rete, il nostro trasferimento è confermato e possiamo vederlo in Explorer.

Possiamo anche elencare le box dell'indirizzo destinatario e vedere il token che abbiamo creato tra gli altri
(finché non viene speso dal destinatario)

$ ./ergo-tool.sh listAddressBoxes 9hHDQb26AjnJUXxcqriqY1mnhpLuUeC81C4pggtK7tupr92Ea1K                      
BoxId                                                             NanoERGs          
252c5ce38fc367001ea48fa6813e6252ebc169288d9b5392c572edb55380b3cd  5000000
6df9dbf08b4859b7e280afbd0822dcf20dba5bf8e3e33b78fe278df6597276f1  2000000
d47f958b201dc7162f641f7eb055e9fa7a9cb65cc24d4447a10f86675fc58328  1000000
e050a3af38241ce444c34eb25c0ab880674fc23a0e63632633ae14f547141c37  1000000
b50ed8c2953fd33b52af816c4caa63ec5b6d236a262a5a192534695c3478da78  1000000
26d6e08027e005270b38e5c5f4a73ffdb6d65a3289efb51ac37f98ad395d887c  10000000000

Note di Sicurezza

ErgoTool è stato creato con la sicurezza in mente e cerca di fare del suo meglio per proteggere l'uso di
informazioni sensibili come le frasi mnemoniche (che non vengono mai memorizzate in modo persistente),
le password (che non vengono mai mostrate sullo schermo) ecc. Inoltre, le chiavi segrete non vengono mai
memorizzate su disco locale in modo non crittografato e sicuramente non vengono mai inviate da nessuna parte.

Conclusione

ErgoTool è progettato per sembrare e funzionare come un'utilità CLI tipica:

  • che è facile da usare e veloce da eseguire dalla riga di comando
  • può essere scriptabile tramite script shell
  • ha un aiuto all'uso integrato

Allo stesso tempo, ErgoTool è progettato per essere facilmente estensibile:

  • implementato in linguaggio di alto livello Scala
  • riutilizza le librerie core utilizzate nel client della rete Ergo
  • open-source e completamente documentato

Questo ultimo punto è particolarmente importante poiché molti nuovi comandi possono essere facilmente aggiunti a
ErgoTool, grazie alla sua architettura. Se hai bisogno di una funzionalità o di un comando specifico,
per favore apri un problema o magari anche una PR.

L'estensibilità di ErgoTool è oggetto del prossimo post del blog pianificato, resta sintonizzato!

Riferimenti

  1. Sito di Ergo
  2. Sorgenti di Ergo
  3. Ergo Appkit
  4. Ergo Tool

Share post

Ergo Infrastructure DAO: Decentralizzare la Spina Dorsale dell'Ecosistema Ergo

Ergo Infrastructure DAO: Decentralizzare la Spina Dorsale dell'Ecosistema Ergo

La missione di Ergo è sempre stata radicata nella decentralizzazione, non solo a livello di consenso, ma in tutto lo stack.

Ergo Platform

13 agosto 2025

Mew Finance: Un Toolkit DeFi Giocoso per l'Ecosistema Ergo

Mew Finance: Un Toolkit DeFi Giocoso per l'Ecosistema Ergo

Mew Finance è una suite di applicazioni decentralizzate sulla Blockchain Ergo.

Ergo Platform

12 agosto 2025

Lithos: Decentralizzare il Mining con Pool On-Chain

Lithos: Decentralizzare il Mining con Pool On-Chain

Lithos è un nuovo protocollo progettato per ristrutturare il funzionamento delle pool di mining spostandole on-chain, dando ai min.

Ergo Platform

24 luglio 2025

Sigma 6.0: Un Ergo più Intelligente e Flessibile

Sigma 6.0: Un Ergo più Intelligente e Flessibile

Sigma 6.0 è un importante aggiornamento proposto per la blockchain Ergo.

Ergo Platform

23 luglio 2025

Plasmare il Futuro di Rosen: Una Chiamata della Comunità su Cinque Proposte Chiave del Tesoro

Plasmare il Futuro di Rosen: Una Chiamata della Comunità su Cinque Proposte Chiave del Tesoro

Il co-fondatore di Rosen, Armeanio, ha presentato cinque nuove proposte al Tesoro di Rosen.

Ergo Platform

9 luglio 2025

L'Extended UTXO di Ergo e l'Ascesa dell'Intelligenza Economica Artificiale

L'Extended UTXO di Ergo e l'Ascesa dell'Intelligenza Economica Artificiale

Una Visione Pratica per Agenti Economici Autonomi Gli agenti economici autonomi sulla blockchain di Ergo svolgono un lavoro utile.

Ergo Platform

12 maggio 2025

ErgoHACK X: Intelligenza Artificiale sulla Blockchain di Ergo

ErgoHACK X: Intelligenza Artificiale sulla Blockchain di Ergo

Celebrare un Decennio di Innovazione Decentralizzata Unisciti al decimo anniversario di ErgoHACK e sii in prima linea nella rivolu.

Ergo Platform

10 aprile 2025

I partecipanti all'Hackaton V: mining and minting

I partecipanti all'Hackaton V: mining and minting

La registrazione per "ErgoHack V: Mining and Minting" è ufficialmente chiusa ed è tempo di esplorare ciò che i partecipanti hanno .

Ergo Platform

11 ottobre 2022

EIP37 Hardfork

EIP37 Hardfork

Dopo il merge di Ethereum, l'industria del mining di criptovalute ha assistito a un impressionante riorientamento del potere di ha.

Ergo Platform

3 ottobre 2022

ErgoHack V: incontra i nostri giudici

ErgoHack V: incontra i nostri giudici

Con le iscrizioni ora aperte, ErgoHack V si sta avvicinando rapidamente.

Ergo Platform

25 settembre 2022

Ergo: Dopo il merge di Ethereum

Ergo: Dopo il merge di Ethereum

Una discussione per la comunità mineraria Sono state un paio di settimane vorticose per l'industria del mining di criptovalute.

Ergo Platform

25 settembre 2022

La tabella di marcia di Ergo: cosa succederà. Parte 1

La tabella di marcia di Ergo: cosa succederà. Parte 1

Dal lancio sulla rete principale di Ergo il 1 luglio 2019, la blockchain ha raggiunto molti traguardi importanti.

Ergo Platform

24 settembre 2022

I premi di ErgoHack V

I premi di ErgoHack V

Con la fusione di Ethereum, stiamo assistendo a un cambiamento sismico nel panorama degli hashrate per le blockchain Proof of Work.

Ergo platform

18 settembre 2022

EIP-0028 di Ergo: ErgoAuth

EIP-0028 di Ergo: ErgoAuth

Quando si parla di blockchain, è importante ricordare che i wallet sono completamente anonimi.

Ergoplatform

4 settembre 2022

The Ergo Manifesto

The Ergo Manifesto

Il Manifesto Ergo desidera educare e offrire una panoramica di ciò che la tecnologia blockchain può raggiungere.

Ergo Foundation

3 settembre 2022

Ergo e il meccanismo di consenso di Autolykos: parte I

Ergo e il meccanismo di consenso di Autolykos: parte I

Quello che segue è un'analisi tecnica approfondita del meccanismo di consenso di Ergo, Autolykos.

Ergo Platform

28 agosto 2022

Ergo e il meccanismo di consenso di Autolykos: parte II

Ergo e il meccanismo di consenso di Autolykos: parte II

La scorsa settimana abbiamo introdotto un'analisi approfondita del meccanismo di consenso Autolykos di Ergo.

Ergo Platform

28 agosto 2022

Come acquistare Ergo da Kucoin

Come acquistare Ergo da Kucoin

Tutti gli aspetti di questo articolo non sono consigli finanziari. Ricontrolla tutte le informazioni fornite da altre fonti.

Ergoplatform

7 agosto 2022

Ethereum Mining Community e GPU Miners: il caso di Ergo dopo la fusione

Ethereum Mining Community e GPU Miners: il caso di Ergo dopo la fusione

Un cambiamento epocale in arrivo nel campo delle blockchain minabili Il panorama del mining di criptovalute Proof of Work sta per.

Ergoplatform

7 agosto 2022

Ergo: una risposta ai fallimenti della teoria monetaria moderna

Ergo: una risposta ai fallimenti della teoria monetaria moderna

Nel 2008, un gruppo o una persona sconosciuta ha rilasciato una riserva di valore peer-to-peer e l’ha chiamata Bitcoin.

Ergo platform

9 febbraio 2022

E' nata Ergoitaly.it

E' nata Ergoitaly.it

La prima community ufficiale Ergo in Italia Ergo è nato l'8 aprile 2019. Alle 20:41.

ErGonario

27 gennaio 2022