Última atualização: December 4, 2020
Recursos para Desenvolvedores
Introdução
Se você é novo desenvolvendo na Ethereum, você está no lugar certo. Estes guias escritos pela comunidade da Ethereum o introduzirão aos fundamentos básicos da arquitetura da Ethereum e a conceitos que podem diferir de outras plataformas de desenvolvimento de aplicativos com os quais você está familiarizado.
Quer começar a programar imediatamente? Começe a construir aqui.
Precisa de uma introdução geral? Confira nossos recursos de aprendizado.
Recursos úteis
- Getting up to speed on Ethereum Aug 7, 2017 - Matt Condon
- Ethereum In Depth, Part 1 May 11, 2018 - Facu Spagnuolo
- Ethereum In Depth, Part 2 July 24, 2018 - Facu Spagnuolo
- Ethereum Development Walkthrough, Parts 1-5 Jan 14, 2018 - dev_zl
- Ethereum 101, Parts 1-7 Feb 13, 2019 - Wil Barnes
- Full Stack Hello World Voting Ethereum Dapp Tutorial Jan 18, 2017 - Mahesh Murthy
- Mastering Ethereum - A comprehensive textbook available for free online Dec 1, 2018 - Andreas Antonopoulos & Gavin Wood
- Ethereum Developer Portal - Everything you need to get started building on Ethereum Atualizado frequentemente - ConsenSys
- Deconstructing a Solidity Contract Aug 13, 2018 - Alejandro Santander & Leo Arias
- Full Stack Dapp Tutorial Series Atualizado frequentemente - Joshua Cassidy
Linguagens para Smart Contracts
Todo programa rodando na Máquina Virtual da Ethereum (EVM) é comumente chamado de "contrato inteligente" (smart contract). As linguagens mais populares para programar smart contracts na Ethereum são Solidity e Vyper, embora existam outras em desenvolvimento.
Solidity -***A linguagem mais popular na Ethereum, inspirada pelo C++, Python e JavaScript.***
Vyper -***Linguagem focada em segurança para a Ethereum, baseada em Python.***
Procurando outras opções?
Recursos específicos de linguagem
Estamos construindo um conjunto de páginas de linguagens específicas para programadores aprenderem sobre a Ethereum em suas linguagens de programação favoritas.
- Ethereum para desenvolvedores Java
- Ethereum para desenvolvedores Python
- Ethereum para desenvolvedores JavaScript
- Ethereum para desenvolvedores Go
- Ethereum para desenvolvedores Rust
- Ethereum para desenvolvedores .NET
- Mais em breve! Não vê o seu idioma aqui? Abra uma questão!
Ferramentas de desenvolvedor
Ethereum possui uma grande e crescente quantidade de ferramentas para auxiliar os desenvolvedores na compilação, no teste e na implementação de seus aplicativos. Abaixo estão as ferramentas mais populares para começar. Se você quer ir mais a fundo, dê uma olhada na lista completa.
Frameworks
Truffle -***Um ambiente de desenvolvimento, teste de framework, compilação e outras ferramentas.***
Embark -***Um ambiente de desenvolvimento, teste de framework e outras ferramentas integradas com a Ethereum, IPFS e Whisper.***
Waffle -***Um framework para desenvolvimento avançado de smart contracts e testes (baseado em ethers.js).***
Etherlime - Framework baseado em Ethers.js para o desenvolvimento (Solidity & Vyper), implantação, debug e teste de dapps.
Outras Ferramentas
Hardhat - Um executor de tarefas para desenvolvedores de smart contracts da Ethereum.
OpenZeppelin SDK - O Kit Completo para Smart Contracts: Um conjunto de ferramentas para o desenvolvimento, compilação, atualização, implantação e interação com smart contracts.
The Graph - Um protocolo para indexação de dados de Ethereum e IPFS e sua consulta usando GraphQL.
Tenderly - Uma plataforma para facilmente monitorar seus smart contracts com rastreamento de erros, alertas, métricas de desempenho e análises detalhadas de contratos.
Python Tooling - Variedade de bibliotecas para interação com a Ethereum via Python.
Brownie - Ambiente de desenvolvimento e framework de testes em Python.
web3j - Uma biblioteca de integração para Ethereum em Java/Android/Kotlin/Scala.
One Click Dapp - Gere um frontend diretamente do ABI para desenvolvimento rápido e teste.
Procurando outras opções?
Ambientes Integrados de Desenvolvimento (IDEs)
Ethereum Studio - IDE baseada na web ideal para novos desenvolvedores procurando experimentar smart contracts. Ethereum Studio apresenta vários modelos, integração com o MetaMask, logger de transações e uma Máquina Virtual Ethereum (EVM) integrada no navegador para ajudar você a começar a desenvolver na Ethereum o mais rápido possível.
Visual Studio Code - IDE profissional multiplataforma com suporte oficial da Ethereum.
- Visual Studio Code
- Azure Blockchain Development Kit para Ethereum
- Plug-in do Azure Blockchain Workbench
- Amostras de código
- GitHub
Remix - IDE baseado na web com análise estática integrada e uma máquina virtual de blockchain para testes.
EthFiddle - IDE baseado na web que permite que você escreva, compile e depure seu smart contract.
Procurando outras opções?
APIs de Frontend em JavaScript
Web3.js - API de Ethereum em JavaScript.
Ethers.js - Utilitários e implementação completa de uma carteira Ethereum em JavaScript e TypeScript.
light.js - Uma biblioteca em alto nível reativa em JS otimizada para clientes leves.
Web3-wrapper - Alternativa ao Web3.js em Typescript.
Procurando outras opções?
APIs de Backend
Infura - A API da Ethereum como um serviço.
Gateway Cloudflare de Ethereum.
Nodesmith - Acesso por API JSON-RPC a mainnet e testnets da Ethereum.
Chainstack -Nós Ethereum compartilhados e dedicados como um serviço**
Armazenamento
IPFS - InterPlanetary File System é um sistema descentralizado de armazenamento e referenciamento de arquivos para a Ethereum.
Swarm - Uma plataforma de armazenamento distribuído e serviço de distribuição de conteúdo para a pilha Ethereum web3.
OrbitDB - Um banco de dados descentralizado peer to peer em cima do IPFS.
Ferramentas de Segurança
Segurança do smart contract
Slither - Framework de análise estática para Solidity escrito em Python 3.
MythX - API de análise de segurança para contratos inteligentes na Ethereum.
Mythril - Ferramente de análise de segurança para bytecode EVM.
SmartContract.Codes - Mecanismo de pesquisa para código fonte solidity verificado.
Manticore - Uma interface de linha de comando que usa uma ferramenta de execução simbólica em smart contracts e binários.
Securify - Scanner de segurança para smart contracts na Ethereum.
ERC20 Verifier - Uma ferramenta de verificação usada para conferir se um contrato está de acordo com o padrão ERC20.
Verificação Formal
Informações sobre Verificação Formal
- How formal verification of smart-contacts works July 20, 2018 - Brian Marick
- How Formal Verification Can Ensure Flawless Smart Contracts Jan 29, 2018 - Bernard Mueller
Procurando outras opções?
Ferramentas de Teste
Solidity-Coverage - Ferramenta de cobertura de código alternativa para solidity.
hevm - Implementação do EVM feita especificamente para testes de unidade e depuração de smart contracts.
Whiteblock Genesis - Uma sandbox de desenvolvimento completa e plataforma de testes para blockchain.
Procurando outras opções?
Exploradores de Blocos
Exploradores de blocos são serviços que permitem que você navegue no blockchain Ethereum (e suas redes de testes), encontrando informações sobre transações específicas, blocos, contratos e outras atividades.
Redes de teste e Faucets
A comunidade Ethereum mantém múltiplas redes de teste. Estas são utilizadas por desenvolvedores para testar seus aplicativos em diferentes condições antes de implementá-los na rede principal Ethereum.
Ropsten - Blockchain baseado em Proof of Work, o ether de teste pode ser minerado.
Rinkeby - Blockchain baseado em Proof of Authority, mantido pela equipe de desenvolvimento do Geth.
Goerli - Blockchain baseado em Proof of Authority com vários clientes, construído e mantido pela comunidade Goerli
Clientes & Executando seu próprio nó
A rede Ethereum é composta por muitos nodos, cada um dos quais executa software compatível com o cliente. A maioria destes nodos roda Geth ou Parity, e cada um deles pode ser configurado de diferentes maneiras de acordo com suas necessidades.
Clientes
Geth - Cliente Ethereum escrito em Go.
Parity - Cliente Ethereum escrito em Rust.
Pantheon - Cliente Ethereum escrito em Java.
Nethermind - Cliente Ethereum escrito em C# .NET Core.
Executando seu próprio nó
Ethnode - Execute um nó Ethereum (Geth ou Parity) para desenvolvimento local.
Recursos de Nodo Ethereum
- Node Configuration Cheat Sheet Jan 5, 2019 - Afri Schoeden
Procurando outras opções?
Melhores Práticas, Padrões e Anti-padrões
Contratos Inteligentes
DappSys - Blocos de código seguros, simples e flexíveis para smart contracts.
OpenZeppelin Contracts - Biblioteca para o desenvolvimento de smart contracts seguros.
aragonOS - Padrões para atualização & controle de permissões.
Registro de Falhas do Contrato Inteligente
Segurança
Guia de melhores práticas de segurança para Contrato Inteligente
- consensys.github.io/smart-contract-best-practices/
- GitHub
- Coleção agregada de recomendações de segurança e melhores práticas
Smart Contract Security Verification Standard (SCSVS)
Procurando outras opções?
Treinamento & Suporte ao desenvolvedor
Aprendizado Geral
Ethereum Stackexchange
ConsenSys Academy - Um curso de desenvolvedor Ethereum individualizado e completo aberto o ano todo.
Sala de bate-papo sobre Solidity no Gitter
Todas as Salas de bate-papo sobre Ethereum no Gitter
Chainshot - Tutoriais de programação de dapps baseados em Web.
Blockgeeks - Cursos online sobre tecnologia blockchain.
DappUniversity - Aprenda a criar aplicações descentralizadas (dapps) no blockchain da Ethereum.
B9lab Academy - Possui o curso profissional mais antigo de desenvolvimento de dapps em Ethereum & outras leituras para auditores e dúvidas. Inclui mentorias e revisão de código.
Aprendizado baseado em Jogos
Cryptozombies - Aprenda a programar jogos na Ethereum.
Ethernaut - Jogo de guerra em Solidity em que cada nível é um contrato a ser hackeado.
Capture the Ether - O jogo de segurança de smart contracts de Ethereum.
Design UI/UX
- Challenge of UX in Ethereum June 25, 2018 - Anna Rose
- Designing for blockchain: what’s different and what’s at stake March 22, 2018 - Sarah Baker Mills
Rimble UI -Componentes e padrões de design adaptáveis para aplicações descentralizadas.
Padrões
A comunidade Ethereum adotou muitos padrões que são úteis para os desenvolvedores. Tipicamente, estes são introduzidos como Propostas de Melhoria na Ethereum (EIPs), as quais são discutidas pela comunidade através de um processo padronizado.
- Lista de EIPs
- Repositório de Github de EIP
- Tabela de discussão de EIP
- Ethereum Governance Overview March 31, 2019 - Boris Mann
- Lista de reprodução de todas as reuniões de Ethereum Core Dev (YouTube Playlist)
Determinadas EIPs dizem respeito a padrões de aplicativo (por exemplo, um formato de contrato inteligente padrão), que são introduzidos como Ethereum Requests for Comment (ERC). Muitos dos ERCs são padrões críticos utilizados amplamente em todo o ecossistema Ethereum.