Geth 1.17.4: Atualização de Manutenção com Correções e Preparativos para o Hardfork Amsterdam

imagem 5

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:

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 OnGasChangeV2 para gas multidimensional (#34946)
  • engine_newPayloadWithWitnessV5 foi adicionado e o formato do witness agora segue a ordenação de campos da especificação canônica (#35009)
  • A ferramenta evm t8n foi 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, --memory do 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_baseFee foi adicionado, retornando a taxa base do próximo bloco (#34904, #35023)

  • eth_capabilities foi adicionado, permitindo que os clientes descubram quais dados históricos um nó pode fornecer (#33886)

  • debug_clearTxpool foi 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 como latest quando 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_setHead agora propaga erros de rebobinagem em vez de ignorá-los silenciosamente (#35001)

  • Transações EIP-7702 com endereço To nulo 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 > 0 e end == 0 agora são rejeitadas (#35032)
  • O resolver Block.raw agora 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_hasBlobs foi adicionado, e engine_getBlobs agora conta apenas blobs realmente disponíveis (#34859, #35028)
  • Um cache para requisições GetBlobs reduz 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_commitBlockV1 foi adicionado como o complemento de escrita para testing_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:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *