Pular para o conteúdo principal

Começando com o desenvolvimento na Ethereum

JavaScript
ethers.js
nós
consultas
Alchemy
Iniciante
Elan Halpern
30 de outubro de 2020
5 minutos de leitura

Ethereum and Alchemy logos

Este é um guia para iniciantes sobre como começar a desenvolver na Ethereum. Para este tutorial, usaremos a Alchemy (abre em uma nova aba), a principal plataforma de desenvolvedores de blockchain que capacita milhões de usuários de 70% dos principais aplicativos de blockchain, incluindo Maker, 0x, MyEtherWallet, Dharma e Kyber. A Alchemy nos dará acesso a um endpoint de API na cadeia da Ethereum para que possamos ler e escrever transações.

Vamos levá-lo desde a inscrição na Alchemy até escrever seu primeiro script Web3! Nenhuma experiência em desenvolvimento de blockchain é necessária!

1. Inscreva-se para uma conta gratuita na Alchemy

Criar uma conta na Alchemy é fácil, inscreva-se gratuitamente aqui (abre em uma nova aba).

2. Crie um aplicativo na Alchemy

Para se comunicar com a cadeia da Ethereum e usar os produtos da Alchemy, você precisa de uma chave de API para autenticar suas solicitações.

Você pode criar chaves de API a partir do painel (abre em uma nova aba). Para criar uma nova chave, navegue até “Create App” (Criar aplicativo), conforme mostrado abaixo:

Agradecimentos especiais à ShapeShift (abre em uma nova aba) por nos permitir mostrar o painel deles!

Alchemy dashboard

Preencha os detalhes em “Create App” para obter sua nova chave. Você também pode ver os aplicativos que criou anteriormente e os criados por sua equipe aqui. Obtenha as chaves existentes clicando em “View Key” (Ver chave) para qualquer aplicativo.

Create app with Alchemy screenshot

Você também pode obter chaves de API existentes passando o mouse sobre “Apps” e selecionando um. Você pode clicar em “View Key” aqui, bem como em “Edit App” (Editar aplicativo) para colocar domínios específicos na lista de permissões, ver várias ferramentas de desenvolvedor e visualizar análises.

3. Faça uma solicitação a partir da linha de comando

Interaja com a blockchain do Ethereum através da Alchemy usando JSON-RPC e curl.

Para solicitações manuais, recomendamos interagir com o JSON-RPC via solicitações POST. Basta passar o cabeçalho Content-Type: application/json e sua consulta como o corpo do POST com os seguintes campos:

  • jsonrpc: A versão do JSON-RPC — atualmente, apenas a 2.0 é suportada.
  • method: O método da API de ETH. Veja a referência da API.
  • params: Uma lista de parâmetros para passar para o método.
  • id: O ID da sua solicitação. Será retornado pela resposta para que você possa acompanhar a qual solicitação uma resposta pertence.

Aqui está um exemplo que você pode executar a partir da linha de comando para recuperar o preço do gás atual:

curl https://eth-mainnet.alchemyapi.io/v2/demo \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}'

NOTA: Substitua https://eth-mainnet.alchemyapi.io/v2/demo pela sua própria chave de API https://eth-mainnet.alchemyapi.io/v2/**your-api-key.

Resultados:

{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 10000000000000 }

4. Configure seu cliente Web3

Se você tiver um cliente existente, altere a URL do seu provedor de nó atual para uma URL da Alchemy com sua chave de API: "https://eth-mainnet.alchemyapi.io/v2/your-api-key"

NOTA: Os scripts abaixo precisam ser executados em um contexto de nó ou salvos em um arquivo, e não executados a partir da linha de comando. Se você ainda não tem o Node ou o npm instalados, siga as instruções de instalação do Node.js (abre em uma nova aba).

Existem várias bibliotecas Web3 que você pode integrar com a Alchemy, no entanto, recomendamos usar a Alchemy Web3 (abre em uma nova aba), um substituto direto para a Web3.js, construída e configurada para funcionar perfeitamente com a Alchemy. Isso oferece várias vantagens, como novas tentativas automáticas e suporte robusto a WebSocket.

Para instalar a AlchemyWeb3.js, navegue até o diretório do seu projeto e execute:

Com Yarn:

yarn add @alch/alchemy-web3

Com NPM:

npm install @alch/alchemy-web3

Para interagir com a infraestrutura de nó da Alchemy, execute no NodeJS ou adicione isso a um arquivo JavaScript:

const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
const web3 = createAlchemyWeb3(
  "https://eth-mainnet.alchemyapi.io/v2/your-api-key"
)

5. Escreva seu primeiro script Web3!

Agora, para colocar a mão na massa com um pouco de programação Web3, escreveremos um script simples que imprime o número do bloco mais recente da Rede Principal do Ethereum.

1. Se você ainda não o fez, no seu terminal crie um novo diretório de projeto e entre nele com cd:

mkdir web3-example
cd web3-example

2. Instale a dependência Web3 da Alchemy (ou qualquer Web3) no seu projeto, se ainda não o fez:

npm install @alch/alchemy-web3

3. Crie um arquivo chamado index.js e adicione o seguinte conteúdo:

Você deve, em última análise, substituir demo pela sua chave de API HTTP da Alchemy.

async function main() {
  const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
  const web3 = createAlchemyWeb3("https://eth-mainnet.alchemyapi.io/v2/demo")
  const blockNumber = await web3.eth.getBlockNumber()
  console.log("The latest block number is " + blockNumber)
}
main()

Não está familiarizado com as coisas assíncronas? Confira esta postagem no Medium (abre em uma nova aba).

4. Execute-o no seu terminal usando o node

node index.js

5. Agora você deve ver a saída do número do bloco mais recente no seu console!

The latest block number is 11043912

Uau! Parabéns! Você acabou de escrever seu primeiro script Web3 usando a Alchemy 🎉

Não sabe o que fazer a seguir? Tente implantar seu primeiro contrato inteligente e coloque a mão na massa com um pouco de programação Solidity em nosso Guia de Contrato Inteligente Hello World, ou continue explorando a documentação da Alchemy (abre em uma nova aba) para mais exemplos.

Inscreva-se na Alchemy gratuitamente (abre em uma nova aba), confira nossa documentação (abre em uma nova aba) e, para as últimas notícias, siga-nos no Twitter (abre em uma nova aba).