Programadores

Sam Richards
Last edit: @samajammin, September 3, 2020
See contributors
Edit page

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

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.

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.

Buidler 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

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

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

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

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.

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.