SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
21.11.2024

Aula 096: Usando Ganache para Blockchain Local

Nesta aula, vamos explorar o Ganache, uma ferramenta popular para desenvolver e testar contratos inteligentes no Ethereum em uma blockchain local pessoal. O Ganache fornece uma interface amigável e permite que os desenvolvedores implantem rapidamente contratos, gerenciem contas e testem transações sem a necessidade de um nó completo do Ethereum.

O que é Ganache?

O Ganache é parte do Truffle Suite, que é um conjunto de ferramentas para desenvolvimento no Ethereum. Ele cria um ambiente de blockchain local onde você pode implantar seus contratos, executar transações e inspecionar alterações de estado. O Ganache imita o comportamento da rede Ethereum, o que o torna perfeito para testes e desenvolvimento.

Como Começar com o Ganache

Primeiro, certifique-se de ter os seguintes pré-requisitos instalados em sua máquina:

  1. Node.js – Verifique se você tem o Node.js instalado executando:

    node -v
  2. Truffle – Se você ainda não instalou o Truffle, pode fazê-lo usando o npm:

    npm install -g truffle
  3. Ganache – Você pode usar o Ganache CLI ou a aplicação desktop. Para esta aula, usaremos o Ganache CLI, que pode ser instalado globalmente com:

    npm install -g ganache-cli

Iniciando o Ganache

Para iniciar o Ganache, basta executar o seguinte comando no seu terminal:

ganache-cli

Por padrão, isso iniciará uma blockchain Ethereum local em http://localhost:8545 com 10 contas pré-financiadas. Você pode ver suas contas e seus saldos no terminal.

Implantando um Simples Contrato Inteligente

Vamos criar um simples contrato inteligente e implantá-lo em nossa blockchain local do Ganache.

Etapa 1: Criar um Novo Projeto Truffle

  1. Crie um novo diretório para o seu projeto e navegue até ele:

    mkdir MeuProjetoContratoInteligente
    cd MeuProjetoContratoInteligente
  2. Inicialize um novo projeto Truffle:

    truffle init

Etapa 2: Escrever um Simples Contrato Inteligente

Crie um novo arquivo no diretório contracts chamado SimpleStorage.sol e adicione o seguinte código:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract SimpleStorage {
    uint256 private storedData;

    function set(uint256 x) public {
        storedData = x;
    }

    function get() public view returns (uint256) {
        return storedData;
    }
}

Etapa 3: Criar um Script de Migração

O Truffle usa scripts de migração para implantar contratos. Crie um novo arquivo no diretório migrations chamado 2_deploy_contracts.js:

const SimpleStorage = artifacts.require("SimpleStorage");

module.exports = function (deployer) {
  deployer.deploy(SimpleStorage);
};

Etapa 4: Configurar o Truffle

Abra o arquivo truffle-config.js e configure-o para se conectar ao Ganache. Você pode usar a seguinte configuração:

const HDWalletProvider = require('@truffle/hdwallet-provider');
const Web3 = require('web3');

const provider = new HDWalletProvider(
  'SUA_MNEMONICA', // Substitua pela sua frase mnemônica do Ganache
  'http://127.0.0.1:8545' // Endpoint padrão do Ganache
);

const web3 = new Web3(provider);

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",    
      port: 8545,           
      network_id: "*",      
    },
  },
  compilers: {
    solc: {
      version: "0.8.0"  
    }
  }
};

Substitua SUA_MNEMONICA pela frase mnemônica fornecida pelo Ganache ao iniciar.

Etapa 5: Implantar o Contrato

Primeiro, certifique-se de que o Ganache está em execução. Em seguida, execute o seguinte comando para implantar seu contrato:

truffle migrate --network development

Você deve ver uma saída indicando que o SimpleStorage foi implantado com seu endereço de contrato.

Etapa 6: Interagindo com o Contrato

Você pode interagir com o contrato implantado usando o Truffle Console. Inicie-o com:

truffle console --network development

Dentro do console, use os seguintes comandos:

const instance = await SimpleStorage.deployed();

// Defina um valor
await instance.set(42);

// Obtenha o valor
const value = await instance.get();
console.log(value.toString());  // Saída: 42

Conclusão

Nesta aula, você aprendeu como configurar o Ganache, implantar um simples contrato inteligente e interagir com ele usando o Truffle. O Ganache facilita a criação de uma blockchain local para desenvolvimento e testes, permitindo que você se concentre na construção de seus contratos inteligentes sem lidar com as complexidades de uma rede ao vivo.

Agora que você tem uma compreensão de como usar o Ganache, pode começar a explorar conceitos mais avançados, otimizações de desempenho e integrar com aplicativos front-end!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!