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
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-cliCriar 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 initConfiguração do Ganache
Vamos iniciar o Ganache, que nos proporcionará uma blockchain local para testes.
commands# Iniciar o Ganache
ganache-cliConfiguraçã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.jsconst 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 } } };
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.solpragma solidity ^0.8.0; contract MeuContrato { string public mensagem; constructor(string memory _mensagem) { mensagem = _mensagem; } function mudarMensagem(string memory _novaMensagem) public { mensagem = _novaMensagem; } }
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 compileImplementar o contrato no Ganache
Crie um arquivo de migração em ‘migrations’ para implementar nosso contrato no Ganache.
2_deploy_contracts.jsconst MeuContrato = artifacts.require('MeuContrato'); module.exports = function(deployer) { deployer.deploy(MeuContrato, 'Olá, Fantom!'); };
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 migrateInteragir 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.jsconst 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();
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.