Saltar al contenido

Notas de la versión - v0.202.1

Título: Mejora la validación de confianza de Byron y la seguridad de la descodificación

Fecha: 27 de agosto de 2026

Versión: v0.202.1

Esta versión devuelve errores descriptivos ante entradas malformadas en lugar de permitir que causen pánicos, y valida las anclas de confianza de Byron y la configuración de los tiempos de la red antes de utilizarlas.

  • Mejoró el manejo del CBOR malformado: La descodificación del CBOR del ledger y el análisis de los cuerpos de los bloques ahora comprueban la forma de los arrays descodificados antes de indexarlos. ApplyTxError.UnmarshalCBOR rechaza los arrays de UtxowFailure con menos de dos elementos mediante un error descriptivo, OutsideValidityIntervalUtxo.Error verifica que el valor concreto de ValidityInterval sea []any y comprueba su longitud descodificada, y GetTxBodies rechaza las filas de transacciones vacías con un error indexado que indica el número mínimo de campos, pero acepta las filas que contienen solo un cuerpo. Las pruebas de regresión cubren los arrays de UtxowFailure cortos, las formas malformadas de ValidityInterval, las filas de transacciones vacías y las filas que contienen solo un cuerpo.
  • Reforzó la validación de confianza y tiempos de Byron: Los encabezados de Byron ahora fallan de forma segura cuando las raíces de confianza del génesis están vacías y devuelven ErrGenesisIssuerSetEmpty. ComputeGenesisWindow ahora devuelve (uint64, error) y rechaza un securityParam igual a cero, un activeSlotCoeff nulo o fuera de rango y los desbordamientos. NewGenesisSelector ahora devuelve (*GenesisSelector, error), calcula la ventana de génesis cuando falta y rechaza las discrepancias. NewNetworkConfigFromReader valida securityParam, ActiveSlotCoeff, los límites de slotLength expresados en nanosegundos enteros y de time.Duration, epochLength, SlotsPerKESPeriod y MaxKESEvolutions. SlotDuration devuelve cero cuando la conversión no puede representarse, y la descodificación JSON de cbor.Rat rechaza un denominador cero. Cambio importante: Los llamadores deben gestionar los errores que devuelven ComputeGenesisWindow y NewGenesisSelector. Las configuraciones inválidas de Byron, de la red y del génesis ahora fallan de forma segura en lugar de continuar con valores inseguros.

Comparar: v0.202.0…v0.202.1


Doc Holiday logo

Docs authored by Doc Holiday

Editar página

Última actualización: