Primeiros passos com Geth

Henrique Leite
GoBlockchain
Published in
4 min readNov 24, 2021

Olá, esse será o primeiro artigo de uma jornada de como se tornar um desenvolvedor Ethereum.

O que você precisa saber antes de começarmos: Noções básicas de linux e Javascript.

Ahh e não vou me preocupar com formatações, etc.. A idéia é que esses artigos sejam objetivos com foco técnico.

Vamos lá…

Instalar o geth

Testar a instalação:

geth help

Nesse momento aproveite para ler os comandos apresentados no help, passe um a um com calma.

Rodar o geth em modo de desenvolvimento:

geth — datadir blockchain — dev
Geth em modo de desenv

O parâmetro datadir vai servir para informar o local do diretório para o database e keystore.

No modo dev o geth criar automaticamente uma conta com ether para testes, é possível ver na imagem a cima que existe um arquivo dentro da pasta keystore.

Vamos agora verificar o saldo dessa conta e criar uma outra conta.

Podemos abrir uma nova aba no terminal e abrir uma nova conexão com o geth para que ele habilite o client em javascript para a gente executar comandos.

Para isso iremos usar o arquivo .ipc que é o responsável por conter as configurações do nó(client ethereum) que esta rodando.

endereço do arquivo ipc que utilizamos para nos referência a nó que queremos nos conectar

Com isso pegamos o o endereço do arquivo e abrimos uma nova aba e executamos:

geth attach /Users/hgl/Documents/temp/blockchain/geth.ipc console
cliente javascript com módulos disponíveis para interagir com o nó

Note que ele disponibiliza os seguintes módulos para a gente interagir com o server que esta rodando

modules: admin:1.0 clique:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

Documentação: JSON-RPC Server | Go Ethereum

Agora vamos verificar as contas que existem:

eth.accounts
conta default em modo dev

Verificar o saldo:

eth.getBalance(“0xd4c6ecb9a68831d45ca5bc7fe523da915bd3e406”)
consulta de saldo da conta default

Vamos criar uma nova conta

personal.newAccount(“password123@1”)
criação da conta nova

Ao listar as contas vamos ver que existe uma nova conta com saldo zero.

contas existentes e verificação do saldo da conta nova

Vamos transferir ether da conta que tem saldo para essa nova.

eth.sendTransaction({from: “0xd4c6ecb9a68831d45ca5bc7fe523da915bd3e406”, to: “0x4659debb8980e7bf4327fd7b6b8aa09c8f5df4da”, value: web3.toWei(1, “ether”) })
envio da transação

Toda operação de escrita no Blockchain gera uma transação, se olharmos para a aba que esta rodando o nó do geth vamos encontrar o hash dela.

detalhes da transação que o nó recebeu de transferência

E agora ao consultar o saldo é possível ver que ele tem 1 ether.

saldo verificado

Importante ressaltar que o Ether tem 18 casas decimais, por isso vemos o 1 + 18 zeros e sua menor unidade é o wei.

1 00000000000000000 0(wei)

Vejam mais aqui no link: Ether — Ethereum Homestead 0.1 documentation

Notem que agora o diretório da keystore tem um novo arquivo referente a essa conta

pastas com arquivos da chave privada das contas

Agora vamos importar essa conta no metamask

Para isso precisamos liberar o protocolo http para que o nó possa receber requisições externas, ou seja para a gente fazer o que fizemos no client aqui em cima a gente precisa passar novos comandos para rodar o geth.

— http — http.api web3,eth,debug,personal,net

Vai ficar assim:

geth — datadir blockchain — dev — http — http.api web3,eth,debug,personal,net

Olha só o que aparece agora no log do geth:

servidor http disponível

Com isso o Metamask consegue se conectar ao nosso nó local

Instalar o Metamask: MetaMask — A crypto wallet & gateway to blockchain apps

Após configuração será necessário mudar a rede para localhost.

Caso não encontre podemos adicionar manualmente no botão “Adicionar rede“

Após conectado vamos importar nossa conta criada.

Selecione o arquivo que foi criado na pasta keystore e informe a senha que foi utilizada no comando personal.newAccount({senha}).

Veja que a conta criada localmente agora esta no Metamask e com o saldo que foi transferido para ela.

Próximo iremos conectar o remix diretamente ao nó local e criaremos um contrato.

Tchau..🚀👊🏼

--

--

Henrique Leite
GoBlockchain

GoBlockchain Founder | Clarisse’s father.. | Married | In Blockchain we trust | Surfer