Ú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

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.

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.

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

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

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

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

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.

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.