Cos'è la suite al tartufo? Funzionalità, come installare, come eseguire contratti intelligenti

Pubblicato: 2020-03-24

All'inizio, quando Blockchain ha appena iniziato il suo viaggio nel dominio tecnologico mainstream, dovevi sviluppare Smart Contract usando il linguaggio di programmazione Solidity e distribuirli chiamando le funzioni geth o solc.

Per rendere questo processo un po' più semplice, dovevi scrivere script bash che prima compilassero e poi distribuissero il contratto. Ora, sebbene quest'ultimo approccio fosse migliore del primo, era piuttosto rudimentale, dato che lo scripting bash spesso comporta una mancanza di standardizzazione.

Questa necessità di creare un framework di sviluppo e test senza interruzioni e ottimale per Blockchain Smart Contracts è ciò che ha dato vita a Truffle Etheruem.

Impara il corso di ingegneria del 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

Cos'è la suite al tartufo?

Secondo Truffle Suite , Truffle è un "ambiente di sviluppo, framework di test e pipeline di risorse di livello mondiale per blockchain che utilizzano la macchina virtuale di Ethereum (EVM), con l'obiettivo di semplificare la vita di uno sviluppatore".

In parole semplici, Truffle è un ambiente di sviluppo, un framework di test e una pipeline di asset riuniti in uno. Si basa su Ethereum Blockchain ed è progettato per facilitare lo sviluppo fluido e senza interruzioni di DApp (Applicazioni distribuite). Con Truffle puoi compilare e distribuire Smart Contract, inserirli in app Web e anche sviluppare front-end per DApp. Oggi, Truffle è uno degli IDE più utilizzati per Ethereum Blockchain.

La Tartufo Suite si compone di tre elementi fondamentali:

  • Tartufo : l'ambiente di sviluppo effettivo che integra la compilazione, il test e l'implementazione di Smart Contract.
  • Ganache – È un simulatore Blockchain distribuito localmente. Ganache presenta un'interfaccia utente grafica in grado di simulare reti Blockchain e testare in tempo reale Smart Contract senza che tu debba configurare reti di test reali o utilizzare una rete remota.
  • Drizzle – È un assortimento di librerie front-end che offrono componenti utili per lo sviluppo di applicazioni web in grado di connettersi senza problemi con gli Smart Contract.

Leggi: Come diventare uno sviluppatore Blockchain: una guida per principianti

Quali sono le caratteristiche del tartufo?

Le caratteristiche che rendono Truffle Etheruem uno degli IDE più utilizzati per Blockchain di Ethereum sono:

  • Ha un supporto integrato per la compilazione, la distribuzione e il collegamento di Smart Contract.
  • Consente il test automatizzato dei contratti con Mocha e Chai.
  • La Truffle Console ti consente di lavorare con i tuoi contratti compilati in modo semplice.
  • Ha una pipeline di build configurabile che supporta sia le app console che le app Web.
  • Viene fornito con supporto integrato per JavaScript, CoffeeScript, SASS, ES6 e JSX.
  • Dispone di generatori che aiutano nella creazione di nuovi contratti e test (ad esempio, i binari generano).
  • Ha uno script runner che ti consente di eseguire file JS/Coffee, inclusi i tuoi Smart Contract.
  • Consente la ricostruzione istantanea degli asset durante la fase di sviluppo.
  • Consente la compilazione e la distribuzione del contratto utilizzando il client RPC preferito.
  • Supporta sia la gestione della rete che dei pacchetti.

Come installare Ethereum Tartufo?

Puoi installare Truffle Ethereum utilizzando Node Package Manager (npm). Innanzitutto, devi configurare NPM sul tuo computer, quindi installare Truffle. Per fare ciò, è necessario aprire il terminale e digitare quanto segue:

npm install -g tartufo

Nelle macchine Linux, tuttavia, potrebbe essere necessario aggiungere il prefisso "sudo" all'istruzione precedente. Dopo aver installato il framework Truffle, assicurati di scaricare e installare il simulatore blockchain Ganache. Puoi visitare il sito Web ufficiale di Ganache : contiene programmi di installazione per le piattaforme più popolari.

Ora che hai installato correttamente Tartufo, puoi avviare un progetto Tartufo in due modi. Per creare un semplice progetto, puoi digitare la seguente istruzione:

tartufo init

Tuttavia, puoi anche utilizzare il comando unbox del tartufo per creare un progetto con codice esistente. Ad esempio, puoi creare un token in questo modo:

tartufo unbox metacoin

Eseguendo questo comando, verrà creato un progetto da una scatola di tartufo. Puoi trovare molte scatole di tartufo sul sito ufficiale. Contengono il codice standard e tutte le configurazioni necessarie per i progetti di costruzione e li lanciano rapidamente.

La struttura di un Progetto Tartufo

La cartella Tartufo che crei sarà simile a questa:

├── contratti

│ ├── ConvertLib.sol

│ ├── MetaCoin.sol

│ └── Migrazioni.sol

├── migrazioni

│ ├── 1_initial_migration.js

│ └── 2_deploy_contracts.js

├── prova

│ ├── TestMetacoin.sol

│ └── metacoin.js

├── tartufo-config.js

└── tartufo.js

Ora, discuteremo in dettaglio delle diverse sottocartelle contenute nella tua cartella Tartufo.

Cartella Contratti

La cartella Contratti è quella in cui sono archiviati tutti i tuoi Smart Contract. In questa cartella è presente anche un file speciale noto come file Migrations.sol. Di solito, quando Truffle compila il tuo progetto, navigherà nella cartella Contratti per compilare tutti i file compatibili.

Cartella Migrazioni

La migrazione del tartufo si riferisce a uno script che definisce come i tuoi Smart Contract verranno distribuiti sulla Blockchain di Ethereum. Le migrazioni sono essenziali perché man mano che il tuo progetto diventa più complesso, aumenta anche la complessità delle tue implementazioni. Grazie alle Migrazioni del Tartufo, puoi automatizzare il processo di implementazione degli Smart Contract in maniera sequenziale.

Se guardi indietro alla struttura delle cartelle di Truffle, vedrai un file chiamato 1_initial_migration.js . Questo file distribuisce il contratto Migrations.sol alla Blockchain di Ethereum.

Le migrazioni ti consentono di:

  • Imposta il limite massimo di gas per le distribuzioni
  • Modificare o cambiare dall'indirizzo delle distribuzioni.
  • Chiama le funzioni contrattuali arbitrarie.
  • Distribuisci librerie

Cartella di prova

Quando si tratta di Smart Contract, il test è d'obbligo! Per fortuna, Truffle ha un framework di test integrato che ti consente di scrivere test in Solidity o JavaScript. Se scrivi i tuoi test in Solidity, devi importare gli Smart Contract nei test con la direttiva Solidity import, in questo modo:

importare “../contratti/MetaCoin.sol”;

Tuttavia, se stai scrivendo test in JavaScript, devi importarli usando la funzione di supporto artifacts.require() , in questo modo:

var MetaCoin = artefatti.require(“./MetaCoin.sol”);

File di configurazione

Il file di configurazione, noto anche come tartufo.js o tartufo-config.js, definisce come Truffle può connettersi alle reti Ethereum insieme alle seguenti cose:

  • Ambienti : ti consente di definire l'indirizzo della nota geth, il network_id, il limite massimo di gas per l'implementazione e il prezzo del gas che sei disposto a pagare.
  • Struttura del progetto : è possibile modificare la posizione in cui vengono creati e archiviati i file.
  • Versione e impostazioni del compilatore : è possibile correggere la versione solc e impostare i parametri -O (ottimizzazione).
  • Gestione dei pacchetti – Truffle è compatibile con EthPM (Ethereum Package Manager). Puoi impostare dipendenze per EthPM per i tuoi progetti Tartufo.
  • Descrizione del progetto : indica chi ha sviluppato il progetto, specifica il nome del progetto, gli indirizzi di contatto e così via.

Leggi anche: Idee per progetti Blockchain per principianti

Come eseguire Smart Contract?

Ecco i diversi modi per eseguire Smart Contract:

  • Per compilare Smart Contract, devi eseguire il seguente codice:

compilazione del tartufo

  • Per eseguire le migrazioni, è necessario utilizzare il codice seguente:

migrare il tartufo

Puoi farlo anche menzionando un ambiente specifico:

tartufo migrare – rete live

  • Per testare gli Smart Contract, puoi eseguire il codice seguente:

prova del tartufo

È inoltre possibile eseguire un test specifico utilizzando il codice seguente:

prova del tartufo ./percorso/a/FileTest.sol

In questo post, abbiamo mirato a darti l'idea di base di Truffle Etheruem e di come funziona. Il tartufo è un potente strumento che rende lo sviluppo di DApp e Smart Contract molto più conveniente portando le pratiche di sviluppo standard nel quadro Blockchain.

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 chaincode, dai un'occhiata al programma di certificazione avanzato di IIIT-B e upGrad nella tecnologia blockchain .

Cos'è Vyper su Ethereum?

Vyper è un linguaggio di programmazione pythonic orientato al contratto, tipizzato statisticamente, che prende di mira il mondo virtuale di Ethereum. È stato concepito come un miglioramento rispetto a Solidarnosc. I principi e gli obiettivi principali di Vyper sono la sicurezza, la semplicità del linguaggio e del compilatore e la verificabilità. Vyper è un linguaggio fortemente tipizzato e quindi non consente di utilizzare un tipo di dati come un altro. Viene fornito con molte funzionalità aggiuntive come il controllo di limiti e overflow, tipizzazione forte, lati del compilatore piccoli e comprensibili, supporto limitato per funzioni pure, supporto per interi con segno e numeri decimali a virgola fissa e decidibilità. Ha anche una semplice sintassi che rende impossibile per gli sviluppatori programmare programmi ambigui.

Quali sono gli svantaggi degli Smart Contract?

I contratti intelligenti, anche se hanno così tanti usi e una popolarità più ampia, soffrono di molte limitazioni. C'è una buona regolamentazione legale per l'applicazione dei contratti intelligenti, che la rende più incline agli attacchi informatici. Modificare il processo del contratto intelligente è quasi impossibile poiché qualsiasi errore di codice richiede tempo e denaro da correggere. Sebbene il coinvolgimento di terze parti sia notevolmente ridotto, non può essere eliminato completamente. Ad esempio, gli sviluppatori hanno bisogno di avvocati per comprendere i termini per creare codici per contratti intelligenti. I contratti intelligenti hanno anche un'elevata dipendenza dai programmatori e dall'esposizione ai bug, il che rappresenta uno svantaggio significativo.

Cosa sono la gestione di reti e pacchetti in blockchain?

Un gestore di pacchetti consente di automatizzare l'installazione, l'aggiornamento, la configurazione e la rimozione dell'applicazione. Sono utilizzati nei sistemi operativi e negli ambienti di programmazione e aiutano a evitare l'inferno delle dipendenze. Le funzioni chiave dei gestori di pacchetti includono la garanzia dell'autenticità del pacchetto, il download di software da un repository online, l'aggiornamento del software esistente, ecc. Esistono molti tipi di gestori di pacchetti, pacchetti binari, pacchetti basati su codice sorgente, sistemi ibridi, gestori di meta-pacchetti, applicazioni gestori basati su blockchain, ecc. Esistono anche gestori di pacchetti relativi alla blockchain. Uno di questi gestori è il gestore dei pacchetti di nodi. NPM è il più grande registro software al mondo che consente alle persone di utilizzare risorse condivise tramite il proprio repository open source.