Smart Contracts

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.

Previous Post Next Post