Introdução

Neste tutorial, vamos explorar o desenvolvimento de DApps (Aplicações Descentralizadas) na rede Fantom, usando o framework Truffle, a biblioteca Web3.js e a plataforma de testes Ganache. A rede Fantom se destaca por oferecer transações rápidas e baratas, tornando-a uma escolha popular para desenvolvedores que buscam criar aplicativos escaláveis e eficientes. Vamos percorrer, passo a passo, desde a instalação das ferramentas necessárias, configuração do ambiente de desenvolvimento, até a implementação de um DApp funcional. Este guia é perfeito para aqueles que já têm noções básicas de Ethereum e desejam expandir suas habilidades no desenvolvimento de blockchain, utilizando as tecnologias mais atuais disponíveis no ecossistema Fantom.

Etapas

  1. Instalação das ferramentas necessárias

    Antes de começarmos, precisamos ter o Node.js instalado em sua máquina. O Truffle e o Ganache são ferramentas que irão facilitar o nosso desenvolvimento. Para isso, utilize os seguintes comandos no terminal.

    commands
    # Instalar o Truffle globalmente
    npm install -g truffle
    # Baixar e instalar o Ganache
    npm install -g ganache-cli

  2. Criar um novo projeto Truffle

    Crie um novo diretório para o projeto e inicialize um novo projeto Truffle.

    commands
    # Criar um diretório para o projeto
    mkdir meu-dapp-fantom
    cd meu-dapp-fantom
    # Inicializar o projeto Truffle
    truffle init

  3. Configuração do Ganache

    Vamos iniciar o Ganache, que nos proporcionará uma blockchain local para testes.

    commands
    # Iniciar o Ganache
    ganache-cli

  4. Configuração do arquivo truffle-config.js

    Agora precisamos configurar o Truffle para se conectar ao Ganache. Abra o arquivo ‘truffle-config.js’ e adicione a seguinte configuração de rede.

    truffle-config.js
    const HDWalletProvider = require('@truffle/hdwallet-provider');
    const Web3 = require('web3');
    
    module.exports = {
      networks: {
        development: {
          host: '127.0.0.1',
          port: 7545, // Porta padrão do Ganache
          network_id: '*' // Qualquer network id
        }
      },
      compilers: {
        solc: {
          version: '0.8.0' // Escolha a versão do Solidity desejada
        }
      }
    };

  5. Criar um contrato inteligente simples

    Vamos criar um contrato inteligente chamado ‘MeuContrato.sol’. Crie a pasta ‘contracts’ no diretório do projeto e adicione o arquivo.

    MeuContrato.sol
    pragma solidity ^0.8.0;
    
    contract MeuContrato {
        string public mensagem;
    
        constructor(string memory _mensagem) {
            mensagem = _mensagem;
        }
    
        function mudarMensagem(string memory _novaMensagem) public {
            mensagem = _novaMensagem;
        }
    }

  6. Compilar o contrato inteligente

    Agora precisamos compilar nosso contrato inteligente para gerar os artefatos que serão usados no deployment. Execute o comando abaixo.

    commands
    # Compilar o contrato
    truffle compile

  7. Implementar o contrato no Ganache

    Crie um arquivo de migração em ‘migrations’ para implementar nosso contrato no Ganache.

    2_deploy_contracts.js
    const MeuContrato = artifacts.require('MeuContrato');
    
    module.exports = function(deployer) {
        deployer.deploy(MeuContrato, 'Olá, Fantom!');
    };

  8. Executar a migração

    Utilize o comando abaixo para executar a migração e implantar seu contrato na rede local do Ganache.

    commands
    # Executar migrações
    truffle migrate

  9. Interagir com o contrato utilizando Web3.js

    Vamos escrever um script para interagir com nosso contrato utilizando a biblioteca Web3.js. Crie um novo arquivo em ‘scripts’.

    interact.js
    const Web3 = require('web3');
    const web3 = new Web3('http://127.0.0.1:7545');
    const MeuContrato = require('./build/contracts/MeuContrato.json');
    
    async function interagir() {
        const accounts = await web3.eth.getAccounts();
        const instancia = new web3.eth.Contract(MeuContrato.abi, MeuContrato.networks[5777].address);
        const mensagem = await instancia.methods.mensagem().call();
        console.log('Mensagem original:', mensagem);
        await instancia.methods.mudarMensagem('Nova mensagem!').send({ from: accounts[0] });
        const novaMensagem = await instancia.methods.mensagem().call();
        console.log('Mensagem atualizada:', novaMensagem);
    }
    
    interagir();

  10. Rodar o script de interação

    Após ter feito todas as configurações e implementações, você pode rodar o script para ver a interação com o contrato.

    commands
    # Rodar o script de interação
    node scripts/interact.js

Conclusão

Neste tutorial, você aprendeu a construir um DApp escalável na rede Fantom utilizando o framework Truffle, a biblioteca Web3.js e o Ganache para testes. Ao longo das etapas, você configurou seu ambiente, criou um contrato inteligente, both realizou a migração e interagiu com o contrato utilizando um script. Com esta base, você está capacitado para explorar ainda mais desenvolvimentos em blockchain e melhorar suas habilidades na criação de DApps. O aprendizado contínuo neste campo pode levar a projetos cada vez mais complexos e inovadores.

Hashtags

#Fantom #DApps #Truffle #Web3 #Ganache #Blockchain