Come scrivere e distribuire il tuo primo contratto intelligente?
Pubblicato: 2020-02-13Gli Smart Contract sono oggi una tendenza leader nella tecnologia Blockchain. Se stai pensando di costruirti una carriera nel settore, questo articolo ti aiuterà con tutto ciò che devi sapere per scrivere il tuo primo smart contract !
Impara i corsi di software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Sommario
Come scrivere il tuo primo contratto intelligente?
L'era digitale di oggi ha consentito a due parti di stipulare accordi senza il coinvolgimento di terze parti. Questi contratti digitali vengono elaborati dalla blockchain e archiviati su un database pubblico. Quindi, le transazioni sono tracciabili e irreversibili.
Se vuoi scrivere il tuo primo contratto intelligente , le risorse compilate di seguito ti metteranno sulla buona strada.
Leggi: 10 tendenze e previsioni Blockchain per il 2020
Definizione di contratti intelligenti
Il termine "Smart Contract" è stato proposto per la prima volta dallo scienziato informatico americano Nick Szabo nel 1996. È un computer o un protocollo digitale che facilita, verifica e impone l'esecuzione di un contratto. Come calcolo generico, uno smart contract risiede su una Blockchain o un libro mastro distribuito.

In altre parole, il contratto è integrato nel codice sotto forma di un programma per computer. E gli attori designati ricevono il permesso di eseguire la funzione del programma. Le regole predefinite dovrebbero essere soddisfatte per la corretta esecuzione dello smart contract.
Prendi un ordine di acquisto (PO), per esempio. È un semplice contratto tra un acquirente e un venditore. Alcune condizioni devono essere soddisfatte per l'esecuzione dell'OP. Tali specifiche comprendono l'avvenuto pagamento da parte dell'acquirente, la consegna della merce da parte del fornitore secondo i termini concordati al momento dell'acquisto, le condizioni per la restituzione ecc.
Pertanto, l'acquirente può effettuare un ordine e il fornitore può evadere l'ordine in formato digitale. Su una rete informatica, tutte le azioni sono chiamate transazioni. E tutte le transazioni sono verificate e applicate dalla rete. Una volta confermate, le transazioni non possono essere ripristinate.
Leggi: Prerequisiti per imparare Blockchain. Non è quello che pensi che sia
Requisiti per la creazione di un contratto intelligente
Sono disponibili vari linguaggi di programmazione per la creazione di contratti intelligenti. La scelta della lingua dipende principalmente dalla piattaforma blockchain. Ad esempio, Solidity, Vyper, eWASM ed Ethereum bytecode sono alcuni dei linguaggi smart contract più popolari per la piattaforma blockchain di Ethereum.
Ambiente di sviluppo di contratti intelligenti
Prima di scrivere il tuo primo smart contract , configura il playground per il suo sviluppo. Andare più a fondo nel mondo blockchain sarebbe complicato senza la conoscenza degli ambienti di sviluppo. Puoi scegliere tra le seguenti alternative.
- Remix IDE: è un ambiente di sviluppo integrato per la creazione e il test di contratti intelligenti. Questa opzione interamente online è altamente raccomandata per i principianti, poiché non richiede installazione. Inoltre, pone meno sfide per la prototipazione e la rapida convalida dei contratti intelligenti.
- Configurazione locale: le macchine locali forniscono un'altra risorsa per lo sviluppo di contratti intelligenti. Gli strumenti offrono una maggiore flessibilità per le applicazioni di livello aziendale. E sebbene la configurazione di questo ambiente richieda tempo, la selezione degli strumenti per le applicazioni distribuite o le DApp è un processo ragionevolmente semplice.
Struttura di uno Smart Contract
Esploriamo un contratto di ordine di acquisto sviluppato utilizzando il linguaggio di programmazione Solidity.
Uno smart contract Solidity segue una struttura standard, che comprende "dati" e "funzione". Sebbene i dati mantengano lo stato corrente del contratto intelligente, la funzione applica la logica alla transizione di questo stato.
Il contratto inizia con la dichiarazione chiamata ' direttiva pragma .' La parola chiave "pragma" abilita i controlli o le funzionalità del compilatore. Considera la seguente dichiarazione:
solidità pragma >=0.4.0 <=0.6.0
La dichiarazione intende garantire che lo smart contract non venga compilato con una versione del compilatore precedente alla 0.40 e successiva alla 0.60.
Poi viene la " dichiarazione di contratto ". La seguente istruzione utilizza la parola chiave "contratto" e identifica un contratto vuoto con il nome "Ordine di acquisto".
contratto Ordine d'acquisto{}
Memorizzazione dei dati
Ogni contratto o programma per computer contiene dati memorizzati. Le variabili forniscono un modo per archiviare, etichettare, recuperare e manipolare i dati. Esistono due tipi di variabili in Solidity: Value e Reference. Le variabili di tipo valore vengono sempre copiate quando vengono utilizzate come argomenti di funzione, ad esempio booleani, numeri interi, ecc.
Considerando che, le variabili del tipo di riferimento memorizzano la posizione dei dati. Qualsiasi modifica in una variabile di riferimento influisce su un'altra variabile. Pertanto, devono essere gestiti con attenzione. Gli esempi includono array e strutture.
Aggiunta di dati
In un ordine di acquisto in genere è associata una quantità di prodotto. Quindi, ora, aggiungiamo una variabile di dati allo smart contract. Aggiungeremo una variabile product_quantity con il presupposto che avrà solo valori positivi.
Innanzitutto, introduciamo un intero senza segno rappresentato da uint256. Qui, senza segno (u) indica il tipo di variabile che può rappresentare solo numeri interi positivi e 256 indica la memorizzazione di 256 bit.
contratto Ordine di acquisto{uint256 product_quantity;}
Costruttore
Il costruttore inizializza lo smart contract con alcuni valori quando il contratto viene distribuito. Supponiamo che la quantità di prodotto sia impostata su 100.

costruttore() pubblico{quantità_prodotto = 100;}
Si noti che la parola chiave o il modificatore di accesso “pubblico” specifica che la funzione non è ristretta. Quindi, è accessibile a chiunque.
Aggiunta di funzioni
L'aggiunta di funzioni rende il tuo programma interattivo. Si tratta di capacità controllate precedute dalla parola chiave "funzione". La dichiarazione include il nome della funzione, il modificatore di accesso, il mutatore di stato e il valore restituito.
Per leggere il valore memorizzato, aggiungiamo la "funzione get". Con "get_quantity", questa funzione ottiene la capacità di recuperare o leggere i dati archiviati. Guarda la dichiarazione riportata di seguito.
funzione get_quantity() visualizzazione pubblica restituisce(uint256){return product_quantity;}
Scomponendolo ulteriormente, vediamo che:
- Nome della funzione: get_quantity (Il "()" significa che non vengono passati parametri)
- Modificatore di accesso: pubblico (l'accesso non è limitato)
- State Mutator: visualizza (indica che la funzione non modifica lo stato del contratto, ma solo lo legge)
- Restituisce: definisce cosa viene restituito dalla funzione, ovvero una variabile di tipo uint256
Funzioni di setter
La funzione setter entra in gioco quando si desidera scrivere o aggiornare i dati. Questa funzione prende un parametro di input dall'utente, in base al quale aggiorna il valore della variabile “product_quantity”. La funzione set (update_quantity) è inserita in questo modo:
update_quantity(valore uint256) public {quantità_prodotto = quantità_prodotto + valore;}
Ora, collega tutte le affermazioni sopra riportate per scrivere il tuo primo contratto intelligente .

Implementazione del contratto intelligente
Una volta che hai completato i passaggi come menzionato in precedenza, è il momento di testare il tuo contratto intelligente. Puoi fare lo stesso usando Remix IDE, che fornisce la funzionalità del compilatore Solidity per creare, testare e convalidare il tuo smart contract online.
Ecco le istruzioni dettagliate per progettare e distribuire uno smart contract con Remix Online IDE:
- Fare clic sull'icona più per creare un nuovo file (vuoto).
- Fare clic per aprire il file vuoto
- Incolla il tuo contratto in questo file
- Vai al menu a sinistra e fai clic sulla seconda icona, appena sotto l'icona del file. Con questo, apparirà l'opzione del compilatore di solidità
- Vai all'etichetta del compilatore per selezionare la versione del compilatore
- Clicca sul file per compilare lo smart contract
- Dopo la compilazione, fare clic sul pulsante dei dettagli del compilatore per comprendere il bytecode e l'interfaccia binaria dell'applicazione. Bytecode contiene il codice operativo di Ethereum e la logica dello smart contract dopo la conversione e la compilazione
- Nel menu a sinistra, fai clic sull'icona sotto l'icona di compilazione per distribuire il tuo contratto intelligente
Interazione con il contratto distribuito
I metodi pubblici menzionati nel contratto forniscono modalità di interazione con il contratto implementato. Nel contesto dell'ordine di acquisto, "update_quantity" e "get_quantity" sono i due metodi di interazione disponibili. Puoi anche inserire i tuoi parametri usando la casella di inserimento. Ricorda che qualsiasi operazione che modifichi le variabili del contratto risulterà in una transazione.
Con questo, abbiamo coperto le basi di come scrivere il tuo primo contratto intelligente e come testarlo e distribuirlo utilizzando il linguaggio di programmazione Solidity in un ambiente di sviluppo online. Abbiamo anche compreso il processo di interazione con uno smart contract e l'avvio di transazioni. Quindi, applica il tuo apprendimento e crea un contratto intelligente oggi. Dopotutto, la pratica rende perfetti!
Avvolgendo
C'è un aumento delle carriere nella tecnologia blockchain e la blockchain ha cambiato enormemente per sempre il volto stesso dell'industria tecnologica. Se sei interessato a diventare uno sviluppatore blockchain e creare contratti intelligenti e codici a catena, dai un'occhiata al programma di certificati avanzati di IIIT-B e upGrad nella tecnologia blockchain
Quali sono alcune possibili applicazioni degli smart contract?
I contratti intelligenti sono programmi per computer che eseguono automaticamente le condizioni di un contratto. Usano la tecnologia blockchain, che è un database distribuito che consente transazioni sicure, trasparenti e a prova di manomissione. Noleggio auto, prenotazioni alberghiere e biglietti per eventi sono solo alcuni esempi di come potrebbero essere impiegati contratti intelligenti.
Perché i contratti intelligenti sono considerati più sicuri dei normali contratti?
Poiché i contratti intelligenti sono implementati su una rete blockchain, sono considerati più sicuri dei contratti tradizionali. Una blockchain è un database distribuito protetto crittograficamente. Ciò significa che le informazioni sulla blockchain non possono essere manomesse o violate. Di conseguenza, l'esecuzione di un contratto intelligente è garantita per essere precisa e affidabile. Sono anche pubblici e verificabili, il che significa che tutti sulla blockchain possono visualizzare le condizioni del contratto e verificare che venga eseguito. D'altra parte, i contratti intelligenti possono aiutare a ridurre il rischio di frodi e conflitti. La linea di fondo è che hanno molte funzionalità e sono facili da usare.
Perché i contratti intelligenti stanno diventando più popolari?
Uno dei vantaggi più essenziali degli smart contract è che possono aiutare le organizzazioni ad automatizzare le procedure e ridurre i costi. Ad esempio, un'azienda può utilizzare un contratto intelligente per pagare i propri fornitori subito dopo aver effettuato una consegna. Ciò ridurrebbe la necessità per l'azienda di elaborare i pagamenti manualmente, risparmiando tempo e denaro. Può anche essere utilizzato per creare fiducia tra le aziende e i loro clienti. Ad esempio, uno smart contract potrebbe essere utilizzato per costruire un sistema di pagamento online sicuro. Ciò consentirebbe ai clienti di effettuare pagamenti senza temere che le loro informazioni personali vengano compromesse. Ultimo ma non meno importante, può essere utilizzato per costruire identità digitali sia per le persone che per le aziende. Le aziende sarebbero in grado di autenticare le identità dei propri clienti e proteggerli dalle frodi a seguito di ciò.