Primeiros passos com Geth
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á…
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
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.
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
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
Verificar o saldo:
eth.getBalance(“0xd4c6ecb9a68831d45ca5bc7fe523da915bd3e406”)
Vamos criar uma nova conta
personal.newAccount(“password123@1”)
Ao listar as contas vamos ver que existe uma nova conta com saldo zero.
Vamos transferir ether da conta que tem saldo para essa nova.
eth.sendTransaction({from: “0xd4c6ecb9a68831d45ca5bc7fe523da915bd3e406”, to: “0x4659debb8980e7bf4327fd7b6b8aa09c8f5df4da”, value: web3.toWei(1, “ether”) })
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.
E agora ao consultar o saldo é possível ver que ele tem 1 ether.
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
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:
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..🚀👊🏼