Fazendo o Deploy com Geth no modo Dev
Segundo artigo da série da jornada para se tornar um desenvolvedor em Blockchain.
Fazendo o Deploy com Geth no modo Dev
Segundo artigo da série da jornada para se tornar um desenvolvedor em Blockchain.
O artigo anterior é essencial para o que vamos fazer hoje. Sem seguir ele, você não conseguirá acompanhar este.
https://medium.com/goblockchain-colabs/primeiros-passos-com-geth-860607031c43
Vamos rodar um nó com Geth local em modo desenvolvedor e fazer o deploy do nosso primeiro smart contract nela.
Fazer o deploy significa enviar este contrato para a blockchain e este ficar visível nela. O seu código para o mundo! Neste caso, faremos o deploy local para fim de estudo e mostrar o processo da criação até a transação chegar no Blockchain.
Lembrando que o ambiente dev é um ambiente de teste. Assim, você não precisa se preocupar pois não usaremos dinheiro real.
Vamos lá :)
geth --dev --datadir /path/para/pasta/que/voce/quer
O código acima, como explicado no último artigo, diz que queremos criar uma blockchain local de test (--dev) no nosso pc em uma pasta. Você escolhe sua pasta onde deseja salvar a blockchain. Para isso, use “--datadir” e logo após o diretório de sua escolha.
Não precisa executar o código acima, é apenas para recapitular o que foi dito no último artigo.
Nosso objetivo é:
- Criar a blockchain
- Criar uma conta
- Transferir ETH para esta conta
- Conectá-la com o Remix
- Fazer o deploy usando a conta criada.
Criando blockchain:
Executando o código abaixo:
geth --http --http.corsdomain=”*” --http.api web3,eth,debug,personal,net --datadir /home/caiosa/go1/eth --dev console
Obtemos o resultado como mostrado abaixo. Lembrando que o código depois de “--datadir” e antes de “--dev” vai ser o local onde você armazenará a blockchain, que será diferente do caminho que digitei acima, pois estava usando o meu pc.

Resultado do Código
Vamos analisar os comandos separadamente:
geth --http --http.corsdomain=”*” --http.api web3,eth,debug,personal,net --vmdebug --datadir /sua/pasta --dev console
Os comandos “--http” , “--http.corsdomain=’*’” ,“--http.api web3,eth,debug,personal,net”,”--vmdebud” e “console” significam respectivamente:
- Habilite o servidor HTTP-RPC
- Lista de domínios dos quais vamos aceitar solicitações de informações. “*” significa que permitimos qualquer domínio solicitar informações da nossa blockchain, inclusive o servidor do Remix. Estamos usando este asterisco apenas no modo dev (desenvolvimento). Usá-lo na vida real é muito perigoso e arriscado. Geralmente especifique o domínio para o qual você aceita solicitações.
- Autoriza o uso de todas aquelas APIs para uso entre os servidores conectados.
- Registre informações importantes para a Virtual Machine e debug dos contratos
- Inicia um ambiente interativo em Javascript para fazermos transações, criar contas, saldos, etc. Super importante!
Abaixo temos destacados o console e o endpoint no qual o Remix vai se conectar.

No console, digite “eth.accounts” e dê um enter:

Logo, há apenas uma conta criada automaticamente. Mas queremos ter a nossa própria conta com algum saldo de ETH. Vamos criar uma!

Usando o comando acima e passando uma senha dentro das aspas, criamos nossa conta com saldo de 0 ETH.

checando saldo da conta criada — conta 1
Você pode usar o mesmo comando para ver o saldo da conta 0, que é gigantesco. Conseguimos mandar ETH de uma conta para a outra usando o código abaixo:
eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei( quantidade que você quer transferir ,"ether")})
Como mostrado abaixo, transferi 0.5 ETH. A transação foi bem sucedida, um hash foi criado para representá-la e algumas outras informações são mostradas.

transação de ETH entre contas da blockchain
Pronto! Agora você tem uma conta em uma blockchain no seu computador com alguns ETH imaginários que podemos gastar. ETH imaginários são também chamados de faucets. Deixamos claro que qualquer servidor pode se conectar com essa blockchain. Vamos então para o Remix .
Lá no Remix, você pode criar seu próprio contrato em Solidity e fazer o deploy. Para aprender a criar um contrato em Solidity personalizado, clique aqui. Eu vou usar o contrato criado pelo Remix — e também aconselho você — para não perdemos tempo. Depois crie o seu próprio e repita o processo para fazer o deploy do seu próprio contrato.

contrato que vamos fazer o deploy
Vamos compilar. Basta clicar no segundo ícone na barra vertical de ícones à esquerda e depois no botão azul.

Agora vamos selecionar o provedor da blockchain na qual vamos fazer o deploy do nosso contrato. Clique no terceiro ícone à esquerda no menu e depois na setinha em enviroment. Haverá algumas opções. Vamos escolher Web3 Provider pois nós temos uma blockchain pessoal e o provedor dela é dado por nós. As outras opções estão relacionadas a provedores já fornecidos pelas blockchain utilizadas.

clique no icone em losango, enviroment e Web3 Provider
Essa janelinha vai aparecer:

Tenha certeza que o endereço ali em Web3 Provider Endpoint é o mesmo endereço que destacado em amarelo lá em cima no artigo, logo depois de executarmos o primeiro comando. No nosso caso, o nosso é exatamente este aí: http://127.00.1:8545. Clique em OK :).

Vualá! Você está conectado ao Remix. Ao clicar ali nas duas setinhas para cima ou baixo, você pode trocar a conta e usar a que criamos:

saldo de 0,5 ETH como esperado
Clique em deploy e seu contrato será deployado!

Agora vamos lá no terminal e ver o que aconteceu:

Ops, parece que algo deu errado, não é?! Esse erro acontece devido a precisarmos desbloquear nossa conta que criamos. Dessa forma, o contrato ainda não foi deployado. Para resolver este problema, vamos segurar CTRL+D. Assim a blockchain será stopped, ou seja, vai sofrer um pausa por agora.
Bem, não se preocupe. A nossa conta criada ainda está lá pois tudo que fazemos na blockchain é registrado e estes registros estão salvos no mesmo diretório que havíamos usados antes.
O problema ali descrito é que nossa conta recentemente criada está bloquada para fazer a transação de criação de um contrato. Para resolver o problema, vamos permitir que o desbloqueio de nossa conta seja feito mesmo que estejamos conectados em um servidor HTTP, como o Remix. Para isso, passamos o parâmetro “--allow-insecure-unlock”, pois o Geth considera liberar uma conta mesmo conectada ao HTTP como algo inseguro. Não se preocupe, entretanto, pois estamos apenas no ambiente dev, fazendo simulações do mundo real.
Dessa forma, execute o comando abaixo — similar ao primeiro, mas com a adição do novo parâmetro destacado em negrito, lembrando de colocar o diretório que você está usando depois de “--datadir”:
geth --http --http.corsdomain="*" --http.api web3,eth,debug,personal,net --vmdebug --datadir /sua/pasta/ --dev --allow-insecure-unlock console
A blockchain novamente aparecerá no terminal. Agora, vamos fazer o desbloqueio da conta, usando o comando abaixo no console:
personal.unlockAccount(endereço, senha, tempo)
O tempo é em segundos, então usaremos 15000 segundos — este é o tempo que estamos habilitando nossa conta criada para estar disponível e desbloqueada para ser usada em servidores HTTP.

Voltamos lá no Remix, novamente vamos compilar, conectar nosso provedor e fazer o deploy assim como foi mostrado anteriormente no artigo. Depois disso vamos ao terminal:

Vualá! “Submitted contract creation” quer dizer que nosso contrato foi disponibilizado na blockchain com sucesso! Também é possível perceber lá no Remix ou usando eth.getBalance que nossa conta perdeu alguns ETH devido ao gas usado na criação do contrato. Você agora pode ir no Remix, e interagir com o contrato e ver como aparecerá lá no terminal todas as mudanças que você está fazendo. Por exemplo, vou fazer o store do número 155555 (escolhi aleatoriamente):

Quando clico em store, essa transação irá para a blockchain e será exibida lá no meu terminal:

Transação submetida com sucesso!
Assim, você pode ficar brincando com seu contrato e testando as funcionalidades dele na blockchain criada localmente.
Como exercício, deixo aí para vocês fazer os mesmos passos! Como desafio fazer o mesmo com um contrato criado por você. Para aprender mais sobre os contratos em Solidity, visite o final deste artigo no nosso blog.
메타데이터
- post_id
- 45ae8a942ab5
- slug
- fazendo-o-deploy-com-geth-no-modo-dev-45ae8a942ab5
- url
- https://medium.com/goblockchain-colabs/fazendo-o-deploy-com-geth-no-modo-dev-45ae8a942ab5
- canonical_url
- https://medium.com/goblockchain-colabs/fazendo-o-deploy-com-geth-no-modo-dev-45ae8a942ab5
- author_url
- https://medium.com/@caiosa
- status
- ok
- fetched_at
- 2026-06-20 20:29:01