4 minutos de leitura
Visão geral
O Python é uma das linguagens de programação mais versáteis que existem, com uma grande variedade de aplicações; podemos criar muitas aplicações com Python, desde o lado do cliente até ao back-end. Neste guia, iremos abordar a criação de um endereço Ethereum em Python utilizando a biblioteca Web3Py.
Pré-requisitos
- Python instalado no seu sistema (versão 3.6 ou superior) e o Pip3.
- Um editor de texto.
O que é um endereço Ethereum?
Ao iniciar sessão em qualquer plataforma na Internet, é necessária uma combinação de nome de utilizador e palavra-passe. Pense no endereço Ethereum como um nome de utilizador, tendo a chave privada correspondente como a palavra-passe. A utilização desta combinação de endereço e chave privada permite-lhe interagir com a blockchain Ethereum. Um endereço Ethereum é a sua identidade na blockchain. Tem o seguinte formato: «0xd5e099c71b797516c10ed0f0d895f429c2781142». O endereço Ethereum é público e pode ser partilhado, mas a chave privada deve ser sempre mantida em segredo. Os endereços Ethereum são gerados utilizando uma chave privada. Segue-se o processo de geração de um endereço Ethereum:
- Gerar uma chave privada aleatória de (64 caracteres hexadecimais / 256 bits / 32 bytes)
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
- Uma chave pública é derivada da chave privada (128 caracteres (hexadecimais) / 512 bits / 64 bytes) utilizando o Algoritmo de Assinatura Digital de Curva Elíptica (ECDSA)
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe3
- Em seguida, aplica-se a função hash Keccak-256 à chave pública (128 caracteres / 64 bytes), o que resulta numa cadeia de hash de (64 caracteres / 32 bytes); os últimos 40 caracteres / 20 bytes, quando precedidos por 0x, constituem o endereço Ethereum.
0xd5e099c71b797516c10ed0f0d895f429c2781142
A seguir, apresentamos alguns elementos que têm de ter um endereço Ethereum:
- Receber/enviar ETH.
- Assinar/enviar transações.
- Ligar-se a aplicações.
O que é o Python?
O Python é uma linguagem de programação de uso geral com uma vasta gama de aplicações. Possui estruturas de dados de alto nível. É uma linguagem de tipagem dinâmica. Possui ligação dinâmica e muitas outras funcionalidades, o que a torna uma ferramenta útil para desenvolver aplicações complexas, uma vez que é utilizada para scripts ou «código de ligação» que conecta diferentes componentes. Também permite efetuar chamadas de sistema em quase todos os sistemas operativos. O Python é uma linguagem universal devido à sua capacidade de ser executada em praticamente todas as arquiteturas de sistema e à sua omnipresença. O Python é uma linguagem de programação interpretada, interativa e orientada para objetos.
O que é o Web3Py?
A Web3.py é uma biblioteca Python que ajuda a interagir com a blockchain Ethereum; utilizando a Web3.py, é possível criar clientes de backend para as suas aplicações descentralizadas (dApps), de modo a gerir a interação com a blockchain, ler dados da mesma, registar transações ou executar a lógica dos contratos inteligentes. A API original foi derivada da API JavaScript Web3.js, mas foi aperfeiçoada ao longo do tempo para melhor servir e responder às necessidades e exigências dos programadores Python.
Como estamos a trabalhar com Python, vamos utilizar o Web3.py.
Agora, vamos ver como podemos gerar um novo endereço Ethereum em Python.
Gerar um endereço Ethereum em Python
O nosso primeiro passo aqui seria verificar se o Python 3.6 ou uma versão superior está instalado no seu sistema; pode verificar se o Python está ou não instalado digitando o seguinte no seu terminal/cmd:
$ python --version
Caso ainda não esteja instalado, pode seguir as instruções na página «Downloads» do site oficial do Python.
Vamos utilizar o Web3Py, uma biblioteca Python utilizada para interagir com a Ethereum. Vamos instalar o Web3Py utilizando o PIP; escreva o seguinte no seu terminal/cmd:
$ pip install web3
Nota: As versões do Python e de outras bibliotecas costumam causar problemas de instalação. Por isso, se tiver algum problema, tente configurar um ambiente virtual e resolva o problema de instalação do web3.py.
Se tudo correr bem, o Web3.py será instalado no seu sistema.
Agora, vamos criar um ficheiro Python e chamá-lo de address.py; copie e cole o código seguinte nesse ficheiro:
de eth_account importar Account
import secrets
priv = segredos.token_hex(32)
chave_privada = "0x" + priv
imprimir ("GUARDE, MAS NÃO PARTILHE ISTO:", chave_privada)
conta = Conta.from_key(chave_privada)
imprimir("Endereço:", conta.endereço)
Explicação do código acima
Linha 1: Importação da conta a partir do módulo eth_account do Web3.py
Linha 2: Importação do módulo `secrets` do Python, que nos ajudará a gerar uma cadeia hexadecimal aleatória.
Linha 3: Gerar uma cadeia hexadecimal aleatória de 32 bytes / 64 caracteres e armazená-la na variável «priv»
Linha 4: Adicionar o prefixo 0x à nossa cadeia hexadecimal de 64 caracteres armazenada em priv e guardar a nova cadeia na variável private_key.
Linha 5: Imprimir a nossa chave privada com um aviso.
Linha 6: Criação de uma nova conta utilizando a chave privada e armazenando-a na variável acct.
Linha 7: Imprimir o endereço da conta armazenado na variável acct, acompanhado da string «Endereço:»
Agora, vamos executar o nosso programa em Python.
$ python address.py
Se seguiu as instruções corretamente, o resultado deverá ser semelhante a este. A primeira linha contém a chave privada e a segunda linha contém o endereço Ethereum.
Conclusão
Agora que já tem o seu próprio endereço Ethereum (e a chave privada), pode enviar transações e interagir com contratos inteligentes; consulte a documentação oficial do Web3.py para obter mais informações.
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 :)
