Tempo di lettura: 3 minuti

Nella fase di coding e testing lo strumento essenziale è una blockchain IN-RAM, una testnet per i nostri Smart Contract. Come funziona una blockchain? Quali sotto tutte le opzioni possibili che possiamo sfruttare con i tool disponibili oggi? Scoprile in questo articolo!

Ganache

Ganache è un software open source che ci permette di creare una blockchain in ram. La blockchain che verrà generata sarà una blockchain realizzata in Javascript, che replica comportamento e caratteristiche della famosa blockchain di Ethereum. Essendo una blockchain di test però possiamo configurarla a nostro piacimento, in questo articolo andremo a spiegare come!

Installazione

È possibile scaricare Ganache dal sito ufficiale per Mac, Windows e Linux. Andremo a scaricare un file con estensione Appx per Windows, AppImage per Linux e dmg per MacOS, formati per la pacchettizzazione di applicazioni. Ricorda che per l’installazione su Windows non basterà il file di Ganache, che necessita di diversi tools ottenibili installando il pacchetto npm windows-build-tools. In questo tutorial andremo ad installare Ganache su Linux: scarichiamo il file AppImage, rendiamolo eseguibile ed eseguiamolo:

chmod a+x file.appimage

./file.appimage

tutorial ganache
Homepage di Ganache: 10 account pronti con 100 Ethereum!

Verremo portati subito al “core” dell’applicazione: una lista di dieci account Ethereum, ognuno con 100ETH: calma, non sei diventato ricco! Questi account sono stati generati nella blockchain locale, perciò non cercare di inviare veri ethereum a questi account. Cliccando sul simbolo della chiave puoi trovare la chiave privata di ciascun account, necessaria per inviare transazioni.

ganache tutorial
Possiamo copiare ed utilizzare le nostre chiavi private, oltre al seed

Transazioni

Durante lo sviluppo dei nostri smart contracts e DApps abbiamo sempre il bisogno di monitorare le transazioni: nella pagina dedicata alle transazioni possiamo controllare in ogni momento i dettagli di ogni transazione!

ganache tutorial
Possiamo controllare tutte le transazioni

Ganache-Cli, la versione command line

Andiamo ora ad installare Ganache-cli, la versione a linea di comando di ganache. Ganache CLI è un pacchetto NPM, andremo per cui a installarlo globalmente con

sudo npm install -g ganache-cli

Perchè preferire la versione command line? Per un maggior controllo e soprattutto una configurazione più veloce!

Creiamo una blockchain locale

Apriamo un nuovo terminale, digitiamo ganache-cli e premiamo invio. Ganache si occuperà di creare una blockchain in-ram con 10 account dotati di 100 Ethereum ciascuno, esattamente come nel caso di Ganache dotata di GUI. In output riceviamo le chiavi pubbliche e private dei 10 account. Ricorda di salvarle in un file di testo, potrebbero sempre servirti durante lo sviluppo.

Esploriamo le configurazioni

Ganache-CLI risulta molto comodo in quanto possiamo personalizzare la nostra blockchain. Le opzioni sono molte, queste le principali:

  • GasLimit (-l limite): spesso Ethereum Wallet impedisce il deploy di Smart Contracts a causa del Gas limit. Attraverso il parametro -l potrai impostare un gas limit più alto.
  • Seed (-s parole): riavviando spesso Ganache risulta scomodo sincronizzare ogni volta altri tools come magari Metamask; impostare un seed predefinito ti farà risparmiare molto tempo.
  • Accounts (-a numeroAccount): Ganache di default crea 10 account, con 100 Ethereum ciascuno. Con il parametro -a puoi decidere il numero di account da creare.
  • DefaultBalanceEther (-e balance): 100 Ethereum potrebbero sembrare molti, ma si esauriscono facimente! Incrementa il numero di ETH posseduti da ciascun account.
  • blockTime (-b secondi): con questo parametro possiamo stabilire i secondi necessari per il mining.
  • host e port (-h, -p): Durante lo sviluppo potrebbero servire due blockchain, queste due opzioni ci vengono in aiuto per evitare conflitti di porte e indirizzi!

Questi sono i principali parametri, a cui si aggiungono la possibilità di creare una fork della blockchain, specificare il db su cui salvare la blockchain e molti altri che trovi su GitHub, oopure usando il comando ganache-cli --help.

Testiamo Ganache

creare una blockchain locale ganache
Integrazione di Ganache CLI, Web3.js e Metamask

Nella foto sopra puoi vedere un piccolo test di Ganache-CLI: abbiamo generato una blockchain locale con 10 accounts con 100 Ethereum ciascuno. Attraverso una semplice applicazione Web basata su WebPack abbiamo realizzato una semplice interfaccia per inviare Eth agli altri account e controllare il nostro balance utilizzando Metamask e Web3.js!

Per rimanere sempre aggiornato e far parte della comunità di Coiners ricorda di entrare nel nostro gruppo Telegram!

Riccardo Masutti
Autore

Sono uno startupper, ethical hacker e consulente di Blockchain/Bitcoin e Digital Marketing. Mi considero una persona intraprendente e molto determinata, faccio del learning transfer il mio punto di forza e questo spiega il perchè sono sempre interessato nelle nuove tecnologie ed innovazioni. Ho una mentalità Open-Source oriented, amo la crittografia e tengo molto alla sicurezza, sia relativa a Bitcoin ma non solo… Bitcoin user and miner since 2011.

Scrivi un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.