Última atualização da página: November 13, 2020
Recursos para programadores
Introdução
Se és novo a programar em Ethereum, estás no lugar certo. Estes guias escritos pela comunidade irão apresentar-te os conceitos básico do Ethereum e introduzir conceitos que podem ser diferentes de outros ambientes de programação a que podes estar habituado.
Precisas de uma introdução geral? Vai aqui: ethereum.org/learn
- Introdução rápida ao Ethereum 7 Agosto, 2017 - Condon
- Ethereum a fundo, Parte 1 11 de maio de 2018 - Facu Spagnuolo
- Ethereum a fundo, Parte 2 11 de maio de 2018 - Facu Spagnuolo
- Programação em Ethereum passo a passo, Partes 1-5 14 de janeiro de 2018 - dev_zl
- Ethereum 101, Partes 1-7 13 de fevereiro de 2019 - Wil Barnes
- Full Stack Hello World Voting Ethereum Dapp Tutorial Fevereiro de 2019 - Mahesh Murthy
- Dominar o Ethereum - Um manual abrangente - disponível online gratuitamente 1 de dezembro de 2018 - Andreas Antonopoulos e Gavin Wood
- Portal do programador do Ethereum - Tudo o que precisas para começar a construir com Ethereum Atualizado frequentemente - ConsenSys
- Desconstruir um contract escrito em Solidity 13 de agosto de 2018 - Alejandro Santander & Leo Arias
- Tutoriais Fullstack para Dapps Atualizado frequentemente - Joshua Cassidy
Linguagens para smart contracts
Qualquer programa que seja executado na Máquina Virtual Ethereum (EVM) costuma ser referido como "smart contract". As linguagens mais populares para criar smart contracts em Ethereum são Solidity e Vyper, embora haja outras em desenvolvimento.
Solidity - A linguagem mais popular no Ethereum, inspirada em C++, Python e JavaScript.
Vyper - Linguagem para Ethereum focada na segurança e baseada em Python.
Procuras outras opções?
Ferramentas para programadores
O Ethereum tem um grande e crescente número de ferramentas para ajudar programadores a construir, testar e implantar as tuas aplicações. Em baixo estão as ferramentas mais populares para que possas começar. Se você quiseres aprofundar mais, vê esta lista abrangente.
Truffle Um ambiente de desenvolvimento, estrutura de teste, pipeline de builds e outras ferramentas
Embark Um ambiente de desenvolvimento e testes, e outras ferramentas integradas com o Ethereum, IPFS e Whisper.
Waffle Uma estrutura para desenvolvimento e testes inteligentes e avançados nos contracts (baseado em ethers.js).
Etherlime Estrutura baseada em Ethers.js para desenvolvimento dapp (Solidity e Vyper), implementação, depuração, testes e muito mais.
Hardhat Executa tarefas para programadores de smart contracts Ethereum
OpenZeppelin SDK The Ultimate Smart Contract Toolkit: conjunto de ferramentas para te ajudar a desenvolver, compilar, atualizar, implantar e interagir com smart contracts.
Tenderly Plataforma para monitorarizar facilmente os teus smart contracts com rastreamento de erros, alertas, métricas de desempenho e análise detalhada de contracts.
Python Tooling Variedade de bibliotecas para interação com Ethereum via Python
Brownie Ambiente de desenvolvimento e framework de testes baseado em Python.
web3j Biblioteca de integração para Ethereum em Java/Android/Kotlin/Scala
Procuras outras opções?
Ambientes de Desenvolvimento Integrados (IDEs)
Visual Studio Code IDE multiplataforma profissional com suporte oficial para Ethereum
Remix IDE inspirado no desenvolvimento Web com análise estática e uma máquina virtual de teste.
Superblocks IDE baseado na web com máquina virtual integrada no browser, integração MetaMask, logger de transações e outras funcionalidades.
EthFiddle IDE inspirada na Web que permite escrever, compilar e decidir funções para o teu smart contract.
Procuras outras opções?
APIs Javascript para Frontend
Web3.js API Javascript para Ethereum
Ethers.js Implementação completa de wallets em Ethereum e utilitários em JavaScript e TypeScript
light.js Uma biblioteca JS de alto nível otimizada para clientes leves.
Alternativa de tipo Typescript Web3-wrapper para Web3.js
Procuras outras opções?
APIs de Backend
Infura A API do Ethereum como serviço
Cloudflare Ethereum Gateway
Nodesmith - Acesso por API JSON-RPC a mainnet e testnets do Ethereum.
Storage
IPFS InterPlanetary File System é um sistema descentralizado para Ethereum para o armazenamento e a referenciação de ficheiros.
Enxame Plataforma distribuída de armazenamento e serviço de distribuição de conteúdo para a pilha Ethereum web3.
OrbitDB - Base de dados peer-to-peer descentralizada sobre IPFS.
Ferramentas de segurança
Slither Estrutura de análise estática da Solidity escrita em Python 3
MythX API de análise de segurança para smart contracts Ethereum
Mythril Ferramenta de análise de segurança para o bytecode EVM
Manticore Uma interface de linha de comandos que usa uma ferramenta de execução simbólica em smart contracts e binários.
Securify Verificador de segurança para smart contracts Ethereum
Mais informações sobre validação formal
- Como funciona a verificação formal de smart contracts 20 de julho de 2018 - Marick Brian
- Como a verificação formal pode garantir smart contracts com Flawless 29 de janeiro de 2018 - Bernard Mueller
Procuras outras opções?
Ferramentas de teste
Solidity Coverage Ferramenta alternativa para cobertura de código fiável.
hevm Implementação do EVM feita especificamente para testes de unidade e depuração de smart contracts.
Whiteblock Genesis - Uma sandbox de desenvolvimento ponta a ponta com plataforma de testes para blockchain.
Procuras outras opções?
Exploradores de blocos
Os exploradores de blocos são serviços que permitem navegar na Blockchain Ethereum (e suas redes de teste), encontrando informações sobre transações específicas, blocos, contracts e outras atividades na cadeia.
Testnets e faucets
A comunidade Ethereum mantém múltiplas testnets. São usadas pelos programadores para testar as suas aplicações em diferentes condições antes de serem implementadas no mainnet do Ethereum.
Ropsten Blockchain baseado em Proof of Word, o ether de teste pode ser minerado
Rinkeby Blockchain baseado em Proof of Authority, mantido pela equipa de desenvolvimento Geth
Goerli Blockchain baseado em Proof of Authority entre clientes, construído e mantido pela comunidade Goerli
Clientes e Executar o teu próprio nó
A rede Ethereum é composta por muitos nós que executam softwares de clientes compatíveis. A maioria desses nós executa Geth ou Parity , aos quais podem ser configurados de maneiras diferentes, consoante as tuas necessidades.
Geth Clientes Ethereum escritos em Go
Parity - Cliente Ethereum escrito em Rust
Pantheon - Cliente Ethereum escrito em Java.
Ethnode - Executar um nó Ethereum (Geth ou Parity) para o desenvolvimento local.
Recursos de nó Ethereum
- Cheat Sheet para a Configuração de Nós 5 de janeiro de 2019 - Afri Schoeden
Procuras outras opções?
Melhores práticas, padrões e antipadrões
DappSys Módulos básicos para smart contracts, que são seguros, simples e flexíveis.
OpenZeppelin Contracts Biblioteca para o desenvolvimento de smart contracts seguros.
aragonOS Padrões para melhorar a capacidade de atualização e controlo de permissões.
Registo de Vulnerabilidades dos Smart Contracts
Guia de melhores práticas de segurança para Smart Contracts
- consensys.github.io/smart-contract-best-practices/
- GitHub
- Coleção agregada de recomendações de segurança e melhores práticas
Procuras outras opções?
Suporte e formação para programadores
Stackexchange (Ethereum)
ConsenSys Academy Curso completo para programadores Ethereum autoministrado e aberto o ano todo.
Solidity Gitter Chat
Todas as salas de chat Ethereum
Cryptozombies - Aprende a programar jogos Ethereum.
Chainshot Tutoriais de codificação de dapp na Web.
Blockgeeks - Cursos online sobre tecnologias blockchain.
DappUniversity Aprende a criar aplicações descentralizadas no blockchain Ethereum
Ethernaut Jogo de guerra baseado em Solidity, onde cada nível é um contract para ser hackeado
Capture the Ether O jogo de segurança de smart contracts do Ethereum
UI/UX
- Challenge of UX in Ethereum 25 de junho de 2018 - Anna Rose
- Designing for blockchain: what’s different and what’s at stake 22 de março de 2018 - Sarah Baker Mills
Rimble UI Componentes adaptáveis e normas de design para aplicações descentralizadas.
Normas
A comunidade Ethereum adotou muitas normas que são úteis para os programadores. Normalmente estas são introduzidas como Propostas de Melhoria na Ethereum (EIP), que são discutidas pela comunidade através de um processo padrão.
- Lista de EIPs
- EIP github repo
- Fórum EIP
- Ethereum Governance Overview 31 de março de 2019 - Boris Mann
- Playlist de todos os Ethereum Core Dev Meetings (Lista de reprodução YouTube)
Alguns EIPs dizem respeito a normas para aplicações (por exemplo, um formato de smart contract padrão), que são introduzidas como Ethereum Requests for Comment (ERC). Muitos dos ERCs são normas fundamentais utilizadas amplamente em todo o ecossistema Ethereum.