Lançamento do Geth v1.17.5: manutenção e avanços rumo ao hardfork Amsterdam

imagem 36

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 GOGC padrão foi alterado de 20 para 50, trocando um pico de memória mais alto por menor sobrecarga do coletor de lixo. Use --gogc=20 para 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-upgrade para 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_setHead e 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 .ere no 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-limit para configurar o tamanho máximo do corpo da requisição HTTP (#35224)
  • Rejeição de gasPrice quando combinado com uma authorizationList (#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 callcode no log tracer (#35248)

API do Motor

  • Passagem de TargetGasLimit via 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 MaxBlobsPerBlock configurado pelo minerador ao limite do protocolo (#35295)

Geth e Ferramentas

  • Introdução da flag --gogc e aumento do GOGC padrã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 -dlgo para 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:

Deixe um comentário

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