Uma pequena aplicação para demonstrar o fluxo de desenvolvimento com Ethereum e seu ferramental atual, usando Truffle Suite (Truffle, Ganache e Drizzle).
A aplicação consiste em um contrato para guardar e ler um número na blockchain e uma interface web com React e Drizzle para uso desse contrato.
Essa aplicação foi usada como demo na palestra sobre Smart Contracts Ethereum que ministrei dia 11/03/2019 no High5Devs
-
Instalar o Truffle:
npm i -g truffle
-
Instalar o Ganache (ou Ganache CLI):
npm i -g ganache-cli
-
Clonar o repo
-
Executar o Ganache (ou Ganache CLI)
-
Na root do projeto compilar os contratos:
# Isso vai gerar os json dos contratos para utilização futura truffle compile
-
Depois disso, ainda na root do projeto, executar os testes:
truffle test
-
Ainda na root do projeto, migrar os contratos:
# Isso vai efetuar o deploy dos contratos na sua Blockchain executada pelo Ganache truffle migrate
-
Entrar na pasta app e instalar os pacotes npm:
cd app npm i
-
Ainda na pasta app, executar o projeto React:
npm start
-
Instalar o MetaMask em seu browser e conectar com a sua rede local a. Criar (ou importar) uma wallet b. Configurar um Custom RPC com o ip local do Ganache (normalmente http://localhost:7545) c. No Ganache, pegar a private key da conta que quiser usar (na GUI tem uma chave do lado direito para isso) d. No MetaMask, importar a chave privada da conta que pegou do Ganache
-
Quando acessar o app local (http://localhost:3000/, normalmente), aceitar a conexão do app com a Wallet no MetaMask
-
Pronto! Quando usar o input para armazenar um número, basta aceitar a transação no MetaMask
- VSCode: Ótimo editor de código com muitas extensões, sempre atualizado e diversas configurações
- Solidity para VSCode: Excelente extensão para syntax highlighting e completion (e mais)
- Documentação de Solidity: Contém conceitos importantes da linguagem e diversos exemplos
- Tutorial básico de Truffle (PetShop): Como fazer um smart contract simples e uma interface web
- Tutorial de Drizzle com React: Como fazer uma interface web com React e Drizzle
- Documentação do Drizzle:
- Truffle Boxes: Projetos básicos feitos com Truffle Suite
- Infura.io: API de acesso à plataforma Ethereum sem uso de um node local
- Homepage Ethereum: Página inicial da plataforma Ethereum
- MetaMask: Página inicial do MetaMask, plugin para Browser para uso de Smart Contracts na Web