Si scrivano con un tool Browser chiamato "Remix".
Uno smart contract è codice di programmazione distribuito ed eseguito all'interno dell'ecosistema di Ethereum per opera delle Ethereum Virtual Machine.
Si può utilizzare un authoring tool come Visual Studio, ma in questo caso è più comodo utilizzare Remix che è volto appositamente alla scrittura di SC. Esso mette a disposizione un ambiente di sviluppo integrato per la scrittura di SC.
Uso di Remix
Possono esserci SC già preimpostati.
Premendo sul "+" si crea un nuovo SC. Si inserisce il nome (es. "HelloWorld.sol
"), senza dimenticare l'estensione .sol (Solidity).
Contratto Hello World di esempio:
pragma solidity ^0.4.0;
contract HelloWorld {
string private stateVariable = "Hello World";
function GetHelloWorld() public view returns (string) {
return stateVariable;
}
}
Distribuzione contratti intelligenti
Distribuire, eseguire un contratto, invocare una funzione dentro a un contratto sono operazioni equivalenti a fare una TRANSAZIONE, e devono essere gestite come tali (quindi pagati in Gas).
I passaggi:
- scrivere codice sorgente in Solidity (con Remix o VSC);
- usare il compilatore di Solidity per convertire il codice e produrre:
- bytecode del contratto (letto dalle EVM) e distribuito sul network
- definizione ABI
Le transazioni verranno gestite e registrate dai miners nel Ledger.
Remix
La piattaforma è disponibile su https://remix.ethereum.org.
Configurazioni:
- Run > Environment: selezionare JavaScript VM
Network di Ethereum
- Main Network: noto anche come "Homestead" è il network di default di Ethereum, disponibile per tutti i nodi che partecipano al funzionamento dell'ecosistema. Qui chiunque può aprire un account e gestire le sue transazioni, interagendo anche con gli Smart Contracts.
- Test Network: dedicati agli sviluppatori degli SC e delle dAPPs. Permettono di eseguire il codice in modo gratuito (senza pagare il "fee"). Possono essere:
- Ropsten: primo e più popolare tra i test network. Si basa su Protocollo di Consenso Proof-of-Work (quello dei Puzzle), accesibile dal tool Geth attraverso l'opzione di comando: --testnet
- Rinkebey: utilizza il protocollo "Proof-of-Authority" che permette maggiore controllo sui Miners.
- Kovan: non è accessibile a tutti. Solo i Parity Clients (Parity è un altro tool per connettersi ad Ethereum) possono accedervi.
- Private Network e Consortium Network: questi due tipi di nodo segono le stesse regole. Non sono delle blockchain in senso stretto, hanno un nodo proprietario, sono quindi sistema ibrido tra centralizzato e decentralizzato. Sono utilizzati da istituzioni o aziende. Metodo molto comune nell'attuale diffusione dell'utlizzo della tecnologia blockchain tra le aziende. I Consortium Network sono grandi network private che fanno capo a diverse organizzazioni. Possono essere disponibili anche via VPN.