Sobre o projeto
Go Ethereum (geth) é a implementação da camada de execução em Go do protocolo Ethereum. Ele fornece um cliente de linha de comando, pacotes de biblioteca e ferramentas para desenvolvedores para executar nós e criar aplicações na mainnet Ethereum, redes de teste ou cadeias privadas.
## Construindo
O projeto requer Go 1.23 ou posterior e um compilador C. `make geth` compila o cliente principal, enquanto `make all` compila o conjunto completo de utilitários. Arquivos binários pré-compilados são publicados em geth.ethereum.org/downloads.
## Executáveis
O repositório inclui vários comandos no diretório `cmd`.
- `geth` – o cliente CLI Ethereum principal. Pode ser executado como nó completo ou nó de arquivo, conecta-se à mainnet, testnets ou redes privadas, e expõe pontos finais JSON‑RPC sobre HTTP, WebSocket e IPC.
- `devp2p` – utilitários para interagir com a camada de rede sem executar um blockchain completo.
- `abigen` – um gerador de código-fonte que converte ABIs de contratos Ethereum (e opcionalmente fontes Solidity) em pacotes Go tipo-safe em tempo de compilação.
- `evm` – uma versão de desenvolvedor da Máquina Virtual Ethereum para executar trechos de bytecode em um ambiente configurável, útil para depuração em nível de opcode.
- `rlpdump` – uma ferramenta que converte dumps binários RLP em uma representação hierárquica legível.
## Executando geth
O uso típico é `geth console`, que inicia um nó completo sincronizado por snap e fornece um console JavaScript interativo. A flag `--sepolia` conecta à rede de teste Sepolia usando bootnodes separados, ID de rede, estado gênese e diretórios de dados. A configuração também pode ser fornecida por meio de um arquivo TOML com `geth --config`, e as configurações existentes podem ser exportadas com `dumpconfig`.
As recomendações mínimas de hardware são 4+ núcleos de CPU, 8 GB de RAM, um SSD de alto desempenho com pelo menos 2 TB de espaço livre e largura de banda de download de 8 Mbit/s; especificações recomendadas são maiores para crescimento a longo prazo.
Um início rápido com Docker é fornecido: `docker run -d --name ethereum-node -v /Users/alice/ethereum:/root -p 8545:8545 -p 30303:30303 ethereum/client-go`. Observe que o acesso RPC de outros hosts requer definir explicitamente `--http.addr 0.0.0.0`.
## Acesso programático
geth suporta APIs JSON‑RPC sobre HTTP, WebSocket e IPC. A interface IPC está habilitada por padrão e expõe todas as APIs, enquanto HTTP e WS devem ser habilitados explicitamente e expõem um subconjunto consciente de segurança. Flags comuns incluem `--http`, `--http.addr`, `--http.port`, `--http.api`, `--http.corsdomain`, `--ws`, `--ws.origins`, `--ipcdisable` e `--ipcpath`. O README avisa que expor APIs HTTP/WS publicamente apresenta riscos de segurança, pois agentes maliciosos sondam ativamente nós Ethereum expostos.
## Redes privadas
Desde o Merge, executar uma rede privada de nós geth também requer configurar uma cadeia de beacon correspondente. Três alternativas estão documentadas:
- Simulated Backend – para testar contratos inteligentes em CI Go.
- Modo Dev – um ambiente de nó único conveniente para testes.
- Kurtosis – para configurar uma rede de teste com múltiplos nós.
## Contribuição
Contribuições são aceitas via pull requests contra a branch `master`. O código deve seguir as diretrizes oficiais de formatação e comentários do Go, e as mensagens de commit devem ser prefixadas com o(s) pacote(s) modificado(s). Alterações mais complexas devem ser discutidas com os desenvolvedores principais no Discord. Contribuições para o site têm como alvo a branch `website`.
## Licença
A biblioteca go-ethereum (código fora de `cmd`) está licenciada sob LGPL v3.0; os binários (código dentro de `cmd`) estão licenciados sob GPL v3.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.