Tempo di lettura: 4 minuti

In passato abbiamo già parlato di Blockchain e Smart Contract, in particolare nell’analisi di uno smart contract di un Atomic Swap. Probabilmente ti sarà venuta voglia di provare a scrivere uno smart contract tutto tuo, oggi ti spiegherò come creare il tuo primo smart contract attraverso Remix IDE!

Remix, l’IDE Web per Solidity

Chiunque abbia mai sperimentato un linguaggio di programmazione sarà venuto a contatto con un IDE, Integrated Development Environment. Un IDE è un software che aiuta il programmatore durante lo sviluppo di un software, grazie a funzioni quali

  • intellisense: autocompletamento o suggerimento di variabili e funzioni
  • auto formatting del codice: indentazione, per mantenere leggibile il codice
  • Git/SCV tools: uso del versioning software integrato
  • debugger: strumento fondamentale per monitorare l’evoluzione del codice

Negli anni sono nati centinaia di IDE, alcuni dedicati a un certo linguaggio (esempio Intellij Idea per Java) altri invece supportano molti linguaggi grazie all’installazione di moduli (Netbeans, Visual Studio, kDevelop). Con la diffusione di Web Development (WebApp, SPA, Native Web App) sono nati ricchi editor di testo con i quali si riesce a raggiungere una buona produttività utilizzando plug-in particolari. Parliamo di Atom, Brackets, Sublime e il più recente Microsoft Visual Code. Remix, IDE per lo sviluppo di smart contract in Solidity è un IDE online, infatti per usarlo dovrete usare il vostro browser! Oltre all’uso classico attraverso un indirizzo locale è possibile crearne una chrome extension, opzione molto comoda.

Come installare Remix Solidity IDE

Siamo ora pronti a cominciare con l’installazione di Remix Solidity IDE! in questo tutorial eseguiremo l’installazione su Linux, in particolare su Debian 8 Jessie. Sconsiglio l’uso di Windows in quanto è necessario installare Visual Studio per poter avere un compilatore C++, più facile da ottenere su sistemi Unix-like come MacOS e GNU/Linux.

Cominciamo quindi con l’installazione delle dipendenze: git, Node, npm e g++! Apri il tuo terminale e digita i seguenti comandi:

sudo apt-get install git
sudo apt-get install build-essential

installazione remix ide solidity
Installazione di Git e strumenti per la compilazione

Git servirà per clonare dal repository GitHub il codice di Remix, mentre build-essential per compilare diversi sorgenti come sha3 attraverso g++, compilatore C++.

Andremo ora a installare Node e npm. Scarica l’archivio disponibile sul sito officiale di Node, apri il tuo terminale e posizionati nella cartella dell’archivio, per esempio

cd Scaricati
sudo tar -xf node-v6.11.4-linux-x64.tar.xz --directory /url/local --strip-components 1

Per verificare la corretta configurazione esegui

node -v
npm -v

installare remix ide
Installazione NodeJS e npm

 Abbiamo quasi finito con l’installazione, andremo ora a scaricare Remix IDE da GitHub

git clone https://github.com/ethereum/browser-solidity
cd browser-solidity
Siamo ora all’interno della cartella contenente i sorgenti di Remix, procediamo con l’installazione delle dipendenze Node.
npm install
Siamo finalmente pronti: non resta che effettuare il building dell’applicazione con
npm run prepublish
E avviare l’applicazione!
npm start

come avviare remix ide
Avviamo Remix IDE!

Ora apri il browser che preferisci e vai su localhost:8080, se tutto è andato per il verso giusto ti ritroverai all’interno di Remix IDE!

remix ide home
Benvenuto su Remix IDE!

L’intera interfaccia è divisa in quattro aree:

  • File explorer a sinistra
    • Puoi eliminare e creare nuovi file
  • File editor al centro
    • I file modificati verranno salvati e compilati automaticamente ogni 5 secondi. Se il progetto dovesse avere molte dipendenze e tempi di compilazione lunghi è possibile disattivare la compilazione automatica nel tab Compile spuntando l’opzione Auto Compile.
    • Potrai aprire più file alla volta, divisi in schede
    • Gli errori sono visualizzati nella console
    • Con i due pulsanti +/- potrai ingrandire la dimensione del carattere dell’editor
  • Console in basso
    • Mette a disposizione un interprete Javascript insieme all’oggetto web3, se usate la modalità web provider o injected provider
    • Saranno mostrate le azioni importanti (come inviare una transazione) e le transazioni minate.
  • Schede di configurazione a destra

È molto importante ricordare che i file creati saranno salvati nella memoria del browser, e non in un file visibile sul nostro file system! Per poter lavorare in maniera più efficiente andremo ora a installare Remixd, un modulo npm che ci permetterà di creare una cartella condivisa in cui potremmo salvare i file creati su Remix IDE.

Configurazione Remixd

Ci posizioneremo ora nella nostra home, o dove volete che venga creata la cartella condivisa. Creiamo la cartella che condivideremo attraverso il comando mkdir, inseriamo un file di prova con echo e installiamo Remixd globalmente attraverso il parametro -g.

mkdir coinersProjects
echo "File di prova" > coinersProjects/test.sol
sudo npm install -g remixd

remix ide tutorial
Installazione e configurazione Remixd

Non ci resta che avviare Remixd:

remixd -S coinersProjects

E Solidity Remix IDE, dalla cartella di installazione:

cd browser-solidity

npm start

Naviga su localhost:8080 per accedere a Remix IDE. Clicca il pulsante evidenziato in rosso, e premi Connect.

solidity ide remixd
Colleghiamo la nostra cartella condivisa a Remix IDE

Se la configurazione è andata a buon fine comparirà la cartella Localhost, che conterrà il file di prova create precedentemente! Potrai ora creare file dal tuo sistema operativo e modificarli su Remix IDE, ricorda di farne sempre una copia di backup.

Hello World, Il nostro primo smart contract

Abbiamo finalmente configurato Solidity IDE, siamo ora pronti a scrivere il nostro primo Hello World in Solidity! Crea un nuovo file cliccando il bottone in alto a sinistra e chiamalo HelloWorld.sol. Prima di tutto importiamo Solidity:
pragma solidity ^0.4.0;

Dichiariamo il nostro Smart Contract con la keyword contract:

contract helloWorld {
.....
}

E dichiariamo la funzione helloWorld con visibilità pubblica, una stringa nel tipo di ritorno e l’attributo pure. Pure è un attributo che viene applicato ad una funzione solamente nel caso in cui essa non modifichi e non legga lo stato del contratto.

function helloWorld() public pure returns (string) {
return 'Hello World From Coiners.it';
}

Andremo ora a cliccare il pulsante generate. Come puoi vedere di seguito il nostro smart contract è stato compilato ed eseguito nella nostra macchina virtuale Javascript!

tutorial solidity remix ide
Hello World con Solidity Remix IDE

Attraverso la console in basso possiamo trovare il nostro output in decoded output e il costo dell’esecuzione del contratto espresso in Gas.

Con questo tutorial siamo abbiamo finalmente mosso i primi passi: abbiamo imparato come installare Remix IDE e scritto il nostro Hello World in Solidity! Metti mi piace alla nostra pagina Facebook per rimanere aggiornato e non perderti neanche un articolo!

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.

2 Comments

  1. Amedeo Vietri Reply

    Salve vorrei sapere come controllare uno smart contract, avendo sentore che non sia proprio corrispondente a quanto concordato con chilo ha scritto
    Grazie saluti
    Amedeo

    • Simone Da Re Reply

      Ciao Amedeo!Hai provato con Etherscan? Ti consiglio di entrare nel nostro gruppo Telegram, così da poterti aiutare più facilmente!
      Simone

Scrivi un commento

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