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
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.
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!
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!
ganache-cli --help
.
Testiamo 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!
Posted from my blog with SteemPress : https://www.coiners.it/tutorial-ganache-come-creare-una-blockchain-locale/
This user is on the @buildawhale blacklist for one or more of the following reasons:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit