Esta é uma versão de manutenção que acumula correções de bugs e melhorias, sendo recomendada para todos os usuários. Ela dá continuidade ao trabalho de implementação do próximo hardfork Amsterdam.
Alguns destaques importantes:
- O
GOGCpadrão foi alterado de 20 para 50, trocando um pico de memória mais alto por menor sobrecarga do coletor de lixo. Use--gogc=20para manter o comportamento anterior. - O Pebble v2 agora é suportado como backend de armazenamento chave-valor. O Pebble v2 é usado quando o Geth é inicializado do zero e cai para Pebble v1 em bancos de dados pré-existentes. Execute
geth db pebble-upgradepara atualizar explicitamente um banco Pebble v1 legado para v2.
Implementação do Fork
- Várias EIPs do Amsterdam foram implementadas ou atualizadas:
- EIP-2780: Cálculo intrínseco de gás da transação baseado em recursos (#35212, #35318)
- EIP-8037: Aumento do custo de gás para criação de estado (#35173, #35318, #35301, #35342, #35279)
- EIP-8038: Atualização do custo de gás para acesso ao estado (#35216)
- EIP-8246: Remoção da queima do SELFDESTRUCT (#35219)
- EIP-8282: Requisições de execução do construtor (#35175, #35341)
- EIP-7997: Contrato de fábrica determinística (#35223, #35285)
- EIP-7954: Aumento do tamanho máximo do contrato (#35217)
- EIP-7928: Listas de acesso em nível de bloco (#35260, #35281, #35261, #35348, #35279)
- Melhoria na cobertura de testes do fork Amsterdam (#35364)
- Introdução da flag
--override.amsterdam(#35213) - Remoção dos hardforks nomeados do agendamento BPO (#35029)
- Introdução do fork Bogotá na configuração da chain (#34057)
Núcleo
- Introdução de um blobpool esparso para reduzir o uso de memória do pool de transações blob (#34047)
- Migração das entradas legadas do limbo do blobpool para o novo formato sidecar baseado em células na inicialização (#35209)
- Remoção do suporte a sidecars blob v0 no blobpool (#35191)
- Dedução de gás inline para corrigir uma regressão de performance (#35203)
- Correção da decodificação do marcador vazio da lista de acesso de bloco no eth/71, que desconectava peers indevidamente (#35286)
- Desabilitação do modo snap sync assim que o bloco pivô é confirmado (#35402, #35405)
- Aceleração do
debug_setHeade rejeição de alvos irrecuperáveis (#35252) - Correção da falha do snap sync ao preencher blocos com mapeamentos de hash canônico ausentes (#35190)
- Reutilização do cache JUMPDEST da chain na construção de payloads (#35378)
- Suporte ao Pebble v2 como backend de banco de dados (#34009)
- Suporte a arquivos
.ereno era store (#34978) - Introdução da API
trie.UpdateBatch(#32448) - Correção do erro de truncamento do freezer em tabelas vazias recém-adicionadas após desligamento abrupto (#35258)
- Aprimoramento do relatório de recuperabilidade do estado considerando o status de sincronização (#35400)
- Correção da pré-busca de contas para contas ausentes (#35256)
- Diversas correções do snap v2 (#35321, #35323)
- Otimização da validação de blocos (#35403)
- Diversas melhorias de alocação (#35234, #35237, #35232)
- Continuação do desenvolvimento da árvore binária (#34772)
- Correção do cálculo do tamanho da transação (#35406)
Rede
- Proteção de peers de alto valor contra desconexões aleatórias com base em estatísticas de inclusão de transações (#34702)
- Manutenção de nós inválidos e inalcançáveis fora das árvores de descoberta DNS (#35312)
- Suporte a um listener de descoberta dual-stack no
devp2p, com várias correções relacionadas (#35220, #35298, #35243, #35206)
RPC
- Introdução da flag
--rpc.http-body-limitpara configurar o tamanho máximo do corpo da requisição HTTP (#35224) - Rejeição de
gasPricequando combinado com umaauthorizationList(#35320) - Rejeição de um parâmetro de bloco sem número nem hash (#35271)
- Correspondência do esquema de autorização sem distinção entre maiúsculas e minúsculas (#35022)
Rastreamento
- Respeito ao limite de log configurado no logger de estrutura (#35349)
- Emissão de frames de rastreamento conforme a EIP-2780 (#35396)
- Inclusão do índice de log na saída do tracer ERC-7562 (#35200)
- Interrupção da captura incorreta de transferências
callcodeno log tracer (#35248)
API do Motor
- Passagem de
TargetGasLimitvia Engine API (#35372) - Tornar a profundidade máxima de reorganização configurável (#35335, #35373, #35391)
- Retorno das listas de acesso de bloco a partir de
engine_getPayloadBodiesV2(#35347) - Limitação do
MaxBlobsPerBlockconfigurado pelo minerador ao limite do protocolo (#35295)
Geth e Ferramentas
- Introdução da flag
--gogce aumento doGOGCpadrão para 50 (#35363, #34851) - Escrita das listas de acesso em nível de bloco no
geth export(#35369) - Preservação dos valores de tag de métricas contendo
=(#35168) - Atualização dos testes eels para v20.0.0 (#35283)
Contas e ABI
- Encaminhamento do limite de taxa de blob para assinantes externos (#35167)
- Introdução do método
GetABI()nos bindings de contrato gerados pelo abigen v2 (#35221) - Correção dos bindings do abigen v1 para lidar com a implantação de dependências de biblioteca (#32164)
Build
- Atualização da dependência
ckzg(#35336) - Upgrade da versão do Go de bootstrap
-dlgopara 1.25.12 (#35317)
Para um resumo completo das alterações, consulte o milestone de lançamento do Geth 1.17.5.
Como em todos os nossos lançamentos anteriores, você encontra:
- Binários pré-compilados para todas as plataformas em nossa página de downloads
- Imagens Docker publicadas sob
ethereum/client-go(use a tag “stable”) - Pacotes Ubuntu em nosso repositório Launchpad PPA
- Pacotes macOS em nosso repositório Homebrew Tap



