Esta é uma versão de manutenção que reúne correções de bugs e melhorias acumuladas, sendo recomendada para todos os usuários. Além disso, o desenvolvimento continua avançando com a implementação do futuro hardfork Amsterdam.
Um destaque importante:
- O Clef foi removido. O assinador independente
cleffoi transferido para https://github.com/ethereum/clef (#35097).
Implementação do Hardfork (Amsterdam)
- EIP-7928: Listas de Acesso em Nível de Bloco: a lista de acesso do bloco agora é construída e verificada durante a execução do bloco, com o lado servidor das mensagens BAL do eth/71 implementado (#34652, #34803, #34879, #34957, #34967, #34972, #34977, #35110)
- EIP-8189: snap/2, um novo protocolo de sincronização de estado baseado em listas de acesso de bloco, foi adicionado (#34626, #34807, #35098, #35155, #35158, #35163, #35178, #35180, #35181)
- EIP-8037: aumento do custo de gas para criação de estado, foi implementado (#33601)
- O sistema de rastreamento fornece um novo hook
OnGasChangeV2para gas multidimensional (#34946)
- O sistema de rastreamento fornece um novo hook
engine_newPayloadWithWitnessV5foi adicionado e o formato do witness agora segue a ordenação de campos da especificação canônica (#35009)- A ferramenta
evm t8nfoi atualizada para Amsterdam, adicionando suporte a BAL, número de slot e exportação de folhas da trie binária (#34843, #35025) - Para a EIP-7843, o número do slot agora é configurado para o bloco pendente após Amsterdam (#34792, #35036)
Geth
- Os caches agora são dimensionados com base no limite de memória do cgroup (por exemplo,
--memorydo Docker) quando definido (#34947) - Vários pequenos problemas com flags de linha de comando e logging foram corrigidos (#33880, #34732, #34943, #34948, #35011, #35104, #35116, #35136)
- Diversas flags de linha de comando que estavam depreciadas há muito tempo foram removidas (#35021)
RPC
-
eth_baseFeefoi adicionado, retornando a taxa base do próximo bloco (#34904, #35023) -
eth_capabilitiesfoi adicionado, permitindo que os clientes descubram quais dados históricos um nó pode fornecer (#33886) -
debug_clearTxpoolfoi adicionado para limpar o pool de transações (#33347, #35130) -
Os métodos de leitura de estado (
eth_getBalance,eth_getCode,eth_getStorageAt, etc.) agora assumem o parâmetro de bloco comolatestquando omitido (#35100) -
Correções para
eth_simulateV1: um código de erro de “taxa base muito baixa” incorreto e uma regressão na retirada pré-Shanghai (#34951, #34939) -
debug_setHeadagora propaga erros de rebobinagem em vez de ignorá-los silenciosamente (#35001) -
Transações EIP-7702 com endereço
Tonulo agora são rejeitadas (#35094) -
As respostas HTTP RPC agora sempre definem
Content-Length, e foi corrigido um bug no código de status do handshake WebSocket (#35072, #35111) -
O cliente agora pode configurar a propagação de contexto de trace via cabeçalho
traceparent, e as escritas de resposta agora são rastreadas (#35132, #35049)
GraphQL
- Os corpos das requisições GraphQL agora são limitados a 5 MiB (#35034)
- Consultas de intervalo de logs com
begin > 0eend == 0agora são rejeitadas (#35032) - O resolver
Block.rawagora retorna bytes vazios quando o corpo do bloco está ausente (#35027)
Core
- Um cache global para bitmaps JUMPDEST acelera a execução da EVM (#34850)
- As operações de pilha da EVM agora são computadas in-place, evitando cópias por operando (#35156)
- Novos medidores de hit/miss no cache de código foram adicionados (#34821)
- Uma condição de corrida no shutdown durante a geração de snapshot foi corrigida (#33540)
Engine API & Blobs
- A codificação JSON da Engine API para payloads grandes de blob foi otimizada, e o gzip está desabilitado na Engine API (#33969, #35057)
engine_hasBlobsfoi adicionado, eengine_getBlobsagora conta apenas blobs realmente disponíveis (#34859, #35028)- Um cache para requisições
GetBlobsreduz a latência da Engine API, e tracing otel foi adicionado aos endpoints GetBlobs (#35124, #35026) - Transações de sidecar blob v0 reorganizadas agora são descartadas em vez de convertidas (#35099)
testing_commitBlockV1foi adicionado como o complemento de escrita paratesting_buildBlockV1(#34995)- Novos payloads agora são importados no genesis independentemente do status de sincronização (#32673)
Rede
- A descoberta NAT STUN não falha mais em servidores IPv6 (#35084)
- Várias correções de robustez no snap-sync: estado não coberto é removido antes de retomar, uma parada no catch-up foi corrigida, a sincronização reinicia quando o BAL necessário está indisponível, e o pivot é congelado assim que o download de estado é concluído (#35159)
Para uma visão completa das mudanças, consulte o milestone de lançamento do Geth 1.17.4.
Como em todas as nossas versões anteriores, você encontra:
- Binários pré-compilados para todas as plataformas na nossa página de downloads.
- Imagens Docker publicadas em
ethereum/client-go(use a tag “stable”). - Pacotes Ubuntu em nosso repositório PPA do Launchpad.
- Pacotes macOS em nosso repositório Homebrew Tap.


