learnxinyminutes-docs/it-it/solidity.html.markdown
2022-07-19 11:53:03 +02:00

4.8 KiB

language filename contributors translators lang
Solidity learnSolidity.sol
Nemil Dalal
https://www.nemil.com
Joseph Chow
Bhoomtawath Plinsut
https://github.com/varshard
Shooter
https://github.com/liushooter
Patrick Collins
https://gist.github.com/PatrickAlphaC
Alias
http://github.com/al-ias
it-it

Solidity permette di programmare su Ethereum, una macchina virtuale basata sulla blockchain che consente la creazione e l'esecuzione degli smart contract senza che sia richiesta centralizzazione o fiducia negli attori coinvolti.

Solidity è un linguaggio di programmazione di contratti tipizzato staticamente e ha molte cose in comune con Javascript e C. Come per gli oggetti nella programmazione ad oggetti, ogni contratto contiene variabili di stato, funzioni e tipi di dato semplici. Tra le funzionalità specifiche dei contratti troviamo le clausole (guardie) dei modifier, gli event notifier per i listener, e le variabili globali custom.

Come esempi di contratti su Ethereum troviamo sistemi di crowdfunding, voto, finanza decentralizzata e aste al buio.

Compiere errori nel codice Solidity può portare a rischi e costi alti, quindi bisogna fare attenzione a testare e rilasciare le modifiche lentamente. A CAUSA DEI CONTINUI CAMBIAMENTI DI ETHEREUM È IMPROBABILE CHE QUESTO DOCUMENTO RESTI AGGIORNATO, QUINDI COSNIGLIAMO DI SEGUIRE LA CHAT ROOM DI SOLIDITY E IL BLOG DI ETHEREUM PER TENERSI AGGIORNATI. TUTTO IL CODICE QUI PRESENTE E' FORNITO COSÌ COM'È, CON ANNESSI RISCHI SOSTANZIALI DI ERRORI O PATTERN DI PROGRAMMAZIONE DEPRECATI.

A differenza di altri tipi di codice, potresti aver bisogno di usare pattern di pausing, deprecation e throttling usage per ridurre il rischio. Questo documento tratta principalmene la sintassi e quindi esclude molti design pattern in voga.

Visto che Solidity e Ethereum sono in continuo sviluppo, le funzionalità sperimentali o beta sono evidenziate e soggette a cambiamenti. Ogni Pull Request è ben accetta.

Lavorare con Remix e Metamask

Uno dei modi più semplici di scrivere, distribuire e testare il codice Solidity è usare :

  1. L'ambiente di sviluppo online Remix
  2. Il wallet Metamask.

Per cominciare, scarichiamo l'estesione per browser di Metamask.

Una volta installata, potremo iniziare ad usare Remix. Il codice seguente è pre-inizializzato, ma prima di addentrarci, diamo un'occhiata a qualche trucchetto per iniziare ad usare Remix. Carica tutto il necessario clickando su questo link.

  1. Scegli il compilatore per Solidity

Solidity-in-remix

  1. Apri il file che si caricherà su quel link

Solidity-choose-file

  1. Compila il file

Solidity-compile

  1. Fai il deploy

Solidity-deploy

  1. Smanetta con i contratti

Solidity-deploy

Hai distribuito il tuo primo contrattto! Congratulazioni!

Potrai testarlo e smanettare con le funzioni già definite. Dai un'occhiata ai commenti per scoprire cosa fanno.

Lavorare su una testnet

Distribuire e testare su una testnet è il modo più accurato per mettere alla prova i tuoi smart contract in Solidity. Per farlo procuriamoci prima degli ETH di test dalla testnet Kovan.

Entra in questo Gitter Channel e scrivici l'indirizzo del tuo wallet Metamask.

Sul tuo Metamask, dovrai cambiare la testnet in Kovan.

Solidity-in-remix

Riceverai degli Ethereum di test gratuiti. Per distribuire degli smart contract su una testnet abbiamo bisogno di Ethereum.

Nell'esempio precedente non avevamo usato una testnet, ma avevamo distribuito su un ambiente virtuale fittizio. Quando si lavora su una testnet, possiamo davvero monitorare e interagire con i nostri contratti in maniera persistente.

Per distribuire su una testnet, allo step #4 Fai il deploy, cambia l'environment selezionato in injected web3. In questo modo verrà usato come network su cui fare il deploy qualsiasi network selezionato sul tuo Metamask.

Solidity-in-remix

Per ora continua a usare la Javascript VM a meno che non ti sia detto di cambiarla. Quando distribuisci su una testnet, Metamask aprirà un pop up che ti chiederà di "confermare" la transazione. Premi yes e dopo un certo lasso di tempo, ti apparirà la stessa interfaccia per il contratto nella parte inferiore dello schermo.