Skip to content

Release Notes - v0.202.1

Title: Improve Byron trust validation and decoding safety

Date: August 27, 2026

Version: v0.202.1

The decoder now returns descriptive errors for malformed input instead of allowing it to cause panics, while Byron trust anchors and network timing configuration receive additional validation before use.

  • Improved malformed CBOR handling: Ledger CBOR decoding and block body parsing now validate decoded array shapes before indexing. ApplyTxError.UnmarshalCBOR rejects UtxowFailure arrays shorter than two elements with a descriptive error, OutsideValidityIntervalUtxo.Error verifies that the concrete ValidityInterval value is []any and checks its decoded length, and GetTxBodies rejects empty transaction rows with an indexed error that reports the minimum field count while accepting rows that contain only a body. Regression tests cover short UtxowFailure arrays, malformed ValidityInterval shapes, empty transaction rows, and body only rows.
  • Strengthened Byron trust and timing validation: Byron headers now fail closed when genesis trust roots are empty and report ErrGenesisIssuerSetEmpty. ComputeGenesisWindow now returns (uint64, error) and rejects zero securityParam, nil or out of range activeSlotCoeff, and overflow. NewGenesisSelector now returns (*GenesisSelector, error), calculates a missing genesis window, and rejects mismatches. NewNetworkConfigFromReader validates securityParam, ActiveSlotCoeff, whole nanosecond slotLength and time.Duration bounds, epochLength, SlotsPerKESPeriod, and MaxKESEvolutions. SlotDuration returns zero when conversion cannot be represented, and cbor.Rat JSON decoding rejects a zero denominator. Breaking change: Callers must handle the errors returned by ComputeGenesisWindow and NewGenesisSelector. Invalid Byron, network, and genesis configurations now fail safely rather than proceeding with unsafe values.

Compare: v0.202.0…v0.202.1


Doc Holiday logo

Docs authored by Doc Holiday

Edit page

Last updated: