Geth v1.17.5: Actualización de mantenimiento con miras a la bifurcación Amsterdam

imagem 36

Se trata de una versión de mantenimiento que acumula correcciones de errores y mejoras, y se recomienda a todos los usuarios. Continúa los trabajos de implementación de la próxima bifurcación Amsterdam.

Algunos aspectos destacados:

  • El valor predeterminado de GOGC ha cambiado de 20 a 50, sacrificando un mayor pico de memoria a cambio de una menor sobrecarga del recolector de basura. Para mantener el comportamiento anterior, se puede establecer --gogc=20.
  • Ahora se admite Pebble v2 como motor de almacenamiento de clave-valor. Pebble v2 se utiliza cuando Geth se inicia desde cero y se recurre a Pebble v1 para bases de datos preexistentes. Ejecute geth db pebble-upgrade para actualizar explícitamente una base de datos heredada de Pebble v1 a v2.

Implementación de bifurcaciones

  • Se han implementado o actualizado varias EIP de Amsterdam:
    • EIP-2780: Gas intrínseco de transacción basado en recursos (#35212, #35318)
    • EIP-8037: Aumento del costo de gas por creación de estado (#35173, #35318, #35301, #35342, #35279)
    • EIP-8038: Actualización del costo de gas por acceso al estado (#35216)
    • EIP-8246: Eliminación del quemado de SELFDESTRUCT (#35219)
    • EIP-8282: Solicitudes de ejecución del constructor (#35175, #35341)
    • EIP-7997: Contrato de fábrica determinista (#35223, #35285)
    • EIP-7954: Aumento del tamaño máximo de contrato (#35217)
    • EIP-7928: Listas de acceso a nivel de bloque (#35260, #35281, #35261, #35348, #35279)
  • Mejora de la cobertura de pruebas de la bifurcación Amsterdam (#35364)
  • Introducción de la bandera --override.amsterdam (#35213)
  • Eliminación de bifurcaciones con nombre del programador BPO (#35029)
  • Introducción de la bifurcación Bogotá en la configuración de la cadena (#34057)

Núcleo

  • Introducción de un pool de blobs disperso para reducir el uso de memoria del pool de transacciones blob (#34047)
  • Migración de entradas limbo del pool de blobs heredado al nuevo formato sidecar basado en celdas al iniciar (#35209)
  • Eliminación del soporte para sidecars blob v0 en el pool de blobs (#35191)
  • Deducción de gas en línea para corregir una regresión de rendimiento (#35203)
  • Corrección de la decodificación del marcador vacío de lista de acceso a bloque eth/71 que desconectaba erróneamente a los pares (#35286)
  • Desactivación del modo de sincronización snap una vez que se confirma el bloque pivote (#35402, #35405)
  • Aceleración de debug_setHead y rechazo de objetivos irrecuperables (#35252)
  • Corrección de la sincronización snap que fallaba al rellenar bloques con mapeos de hash canónico faltantes (#35190)
  • Reutilización de la caché JUMPDEST de la cadena en la construcción de payloads (#35378)
  • Soporte de Pebble v2 como backend de base de datos (#34009)
  • Soporte de archivos .ere en el almacén era (#34978)
  • Introducción de la API trie.UpdateBatch (#32448)
  • Corrección del error de truncamiento del congelador en tablas vacías recién agregadas después de un apagado incorrecto (#35258)
  • Mejora de los informes de recuperabilidad del estado teniendo en cuenta el estado de sincronización (#35400)
  • Corrección de la captación previa de cuentas para cuentas ausentes (#35256)
  • Varias correcciones de snap v2 (#35321, #35323)
  • Optimización de la validación de bloques (#35403)
  • Varias mejoras de asignación (#35234, #35237, #35232)
  • Continuación del desarrollo del trie binario (#34772)
  • Corrección del cálculo del tamaño de transacción (#35406)

Redes

  • Protección de pares de alto valor contra desconexiones aleatorias basadas en estadísticas de inclusión de transacciones (#34702)
  • Exclusión de nodos no válidos e inalcanzables de los árboles de descubrimiento DNS (#35312)
  • Soporte de un oyente de descubrimiento de doble pila en devp2p, con varias correcciones relacionadas (#35220, #35298, #35243, #35206)

RPC

  • Introducción de la bandera --rpc.http-body-limit para configurar el tamaño máximo del cuerpo de la solicitud HTTP (#35224)
  • Rechazo de gasPrice cuando se combina con una authorizationList (#35320)
  • Rechazo de un parámetro de bloque sin número ni hash (#35271)
  • Coincidencia del esquema de autorización sin distinción entre mayúsculas y minúsculas (#35022)

Trazado

  • Respeto del límite de registro configurado en el registrador struct (#35349)
  • Emisión de marcos de trazado según EIP-2780 (#35396)
  • Inclusión del índice de registro en la salida del trazador ERC-7562 (#35200)
  • Cese de la captura incorrecta de transferencias callcode en el trazador de registros (#35248)

API del motor

  • Paso de TargetGasLimit a través de la API del motor (#35372)
  • Configurabilidad de la profundidad máxima de reorganización (#35335, #35373, #35391)
  • Devolución de listas de acceso a bloques desde engine_getPayloadBodiesV2 (#35347)
  • Límite de MaxBlobsPerBlock configurado por el minero al límite del protocolo (#35295)

Geth y herramientas

  • Introducción de una bandera --gogc y aumento del valor predeterminado de GOGC a 50 (#35363, #34851)
  • Escritura de listas de acceso a nivel de bloque en geth export (#35369)
  • Preservación de los valores de etiquetas de métricas que contengan = (#35168)
  • Actualización de las pruebas eels a v20.0.0 (#35283)

Cuentas y ABI

  • Reenvío del límite de tarifa de blob a los firmantes externos (#35167)
  • Introducción de un método GetABI() en los bindings de contratos generados por abigen v2 (#35221)
  • Corrección de los bindings de abigen v1 para manejar la implementación de dependencias de bibliotecas (#32164)

Compilación

  • Actualización de la dependencia ckzg (#35336)
  • Actualización de la versión de Go de arranque -dlgo a 1.25.12 (#35317)

Para obtener un resumen completo de los cambios, consulte el hito de lanzamiento de Geth 1.17.5.


Como en todos nuestros lanzamientos anteriores, puede encontrar:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *