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
GOGCha 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-upgradepara 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_setHeady 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
.ereen 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-limitpara configurar el tamaño máximo del cuerpo de la solicitud HTTP (#35224) - Rechazo de
gasPricecuando se combina con unaauthorizationList(#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
callcodeen el trazador de registros (#35248)
API del motor
- Paso de
TargetGasLimita 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
MaxBlobsPerBlockconfigurado por el minero al límite del protocolo (#35295)
Geth y herramientas
- Introducción de una bandera
--gogcy aumento del valor predeterminado deGOGCa 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
-dlgoa 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:
- Binarios precompilados para todas las plataformas en nuestra página de descargas
- Imágenes de Docker publicadas bajo
ethereum/client-go(use la etiqueta «stable») - Paquetes de Ubuntu en nuestro repositorio PPA de Launchpad
- Paquetes de macOS en nuestro repositorio Homebrew Tap



