4 minutos de leitura
Visão geral
No que diz respeito à programação, é difícil encontrar alguém que nunca tenha utilizado ou ouvido falar do JavaScript. O JavaScript foi inicialmente criado para scripts do lado do cliente, mas tornou-se uma linguagem orientada para objetos e procedural, com funcionalidades completas, amplamente utilizada atualmente em aplicações tanto do lado do cliente como do lado do servidor. A sintaxe do JavaScript inspira-se no Java e no C++ e baseia-se na especificação ECMAScript. Com mais de 1 444 231 bibliotecas — e este número continua a crescer —, o JavaScript é hoje utilizado praticamente em todo o lado, incluindo na criação de dApps (aplicações descentralizadas) na Ethereum. Neste guia, iremos abordar a criação de um endereço Ethereum em JavaScript utilizando o Ethers.js.
Pré-requisitos
- O Node.js está instalado no seu sistema.
- Um editor de texto
- Terminal, também conhecido como linha de comandos
O que é um endereço Ethereum?
Ao iniciar sessão em qualquer plataforma na Internet, é necessário autenticar-se utilizando uma combinação de credenciais. Considere um endereço Ethereum como o seu nome de utilizador e a chave privada correspondente como a palavra-passe. Embora o seu endereço Ethereum seja público e possa ser partilhado, a chave privada deve ser sempre mantida em segredo. A utilização desta combinação permite-lhe interagir com a blockchain Ethereum. Um endereço Ethereum é a sua identidade na blockchain e tem o seguinte formato: «0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE». É necessário ter um endereço Ethereum válido para:
- Receber/enviar moeda Ethereum
- Assinatura/Envio de transações
- Ligar-se a aplicações descentralizadas
Como é gerado um endereço Ethereum:
Primeiro, é gerada uma chave privada aleatória com 64 caracteres (hexadecimais) (256 bits / 32 bytes). Por exemplo:
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
Em seguida, é derivada uma chave pública de 128 (hex) caracteres (64 bytes) a partir da chave privada gerada, utilizando o Algoritmo de Assinatura Digital de Curva Elíptica (ECDSA). Por exemplo:
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe3
A função hash Keccak-256 é então aplicada à chave pública (128 caracteres / 64 bytes) para obter uma cadeia hash de 64 caracteres (32 bytes). Os últimos 40 caracteres / 20 bytes desta cadeia, precedidos por 0x, constituem o endereço final da Ethereum. Por exemplo:
0xd5e099c71b797516c10ed0f0d895f429c2781142
Nota: «0x» na codificação indica que o número/cadeia de caracteres está escrito em hexadecimal.
O que é o Ethers.js?
O Ethers.js é uma alternativa leve ao Web3.js, que é atualmente a biblioteca Ethereum mais utilizada. O Ethers.js é considerado por alguns como mais estável e com menos erros do que outras bibliotecas, além de dispor de uma documentação abrangente. Esta biblioteca é também muito acessível para principiantes. O Ethers.js é muito bem mantido e é preferido ao Web3.js por muitos programadores novatos.
Pode saber mais sobre o Ethers.js e sobre como se ligar à rede Ethereum com o Ethers.js aqui.
Gerar um endereço Ethereum em JavaScript
O nosso primeiro passo será verificar se o Node.js está instalado no sistema. Para tal, copie e cole o seguinte no seu terminal/cmd:
$ node -v
Se ainda não estiver instalado, pode descarregar a versão LTS do NodeJS a partir do site oficial.
Se o Node.js estiver devidamente instalado, vamos adicionar a biblioteca Ethers.js (versão 6) utilizando o npm (Node Package Manager, que faz parte do Node.js).
$ npm i ethers
O problema mais comum nesta etapa é uma falha interna do `node-gyp`. Pode seguir as instruções de instalação do node-gyp aqui.
Nota: Se se deparar com o problema do node-gyp, terá de garantir que a sua versão do Python corresponde a uma das versões compatíveis indicadas nas instruções acima.
Outro problema comum é um cache desatualizado; limpe o cache do npm introduzindo o seguinte comando:
$ npm cache clean
Se o Ethers.js tiver sido instalado com sucesso, vamos avançar com a criação de um endereço Ethereum.
Crie um ficheiro chamado address.js, que será um pequeno script para gerar uma chave privada aleatória e um endereço Ethereum a partir dessa chave; copie e cole o seguinte no seu ficheiro address.js:
var ethers = require('ethers');
var crypto = require('crypto');
var id = crypto.randomBytes(32).toString('hex');
var chavePrivada = "0x"+id;
console.log("GUARDE, MAS NÃO PARTILHE ISTO:", privateKey);
var carteira = new ethers.Carteira(chave privada);
console.log("Endereço: " + carteira.endereço);
Explicação do código acima
Linhas 1-2: Importação da biblioteca «ethers» e do módulo «crypto» que vêm com o Node.js
Linha 4: Gerar uma cadeia hexadecimal aleatória de 32 bytes utilizando o objeto «crypto» e armazená-la na variável «id ».
Linha 4: Adicionar o prefixo «0x» à cadeia de caracteres em id e armazenar a nova cadeia de caracteres numa variável chamada privateKey.
Linha 6: Imprimir a nossa chave privada com um aviso.
Linha 8: Criação de uma nova carteira utilizando a chave privada e armazenando-a na variável «wallet ».
Linha 9: Imprimir o endereço da carteira recém-criada com a mensagem «Endereço:»
Guarde e execute o seu script para gerar um novo endereço Ethereum.
$ node address
Se o seu código for executado com sucesso, o resultado será semelhante ao da imagem abaixo. A primeira linha contém a chave privada e a segunda linha contém o seu novo endereço Ethereum.
Conclusão
O teu endereço Ethereum é a tua identidade na rede Ethereum. É necessário para interagir com a rede e efetuar transações. Para continuares a aprender a utilizar o Ethers.js, consulta este guia sobre «Como enviar uma transação Ethereum utilizando o Ethers.js». Obtém mais informações sobre o Ethers.js na documentação oficial. Como viu, a geração de um novo endereço Ethereum é feita rapidamente com JavaScript e as bibliotecas mais recentes. O desenvolvimento de dApps na blockchain Ethereum é apoiado por uma variedade de ferramentas que são continuamente atualizadas e melhoradas pela comunidade Ethereum, em rápido crescimento. Fique atento a mais guias fáceis de seguir da Quicknode — o seu fornecedor de nós Ethereum acessíveis e ultrarrápidos. Saiba como começar a utilizar a Quicknode e configurar o seu próprio ponto de extremidade Ethereum em poucos minutos.
Subscreve a nossa newsletter para receberes mais artigos e guias sobre o Ethereum. Se tiveres algum comentário, não hesites em contactar-nos através do Twitter. Podes sempre conversar connosco no nosso servidor da comunidade Discord, onde encontrarás alguns dos programadores mais fantásticos que alguma vez conhecerás :)
