Skip to content

Release Notes - v0.205.3

Title: Improve consensus selection, decoding controls, and query efficiency

Version: v0.205.3

This release makes mixed candidate selection deterministic, adds configurable CBOR nesting limits, updates the Plutigo dependency, and caches successful current-era queries during an acquired snapshot.

  • Configured CBOR nesting limits: cbor.MaxNestedLevels and cbor.MaxUntrustedNestedLevels are now package variables with a default of 16384. Set both values before the first Decode call because decoder modes cache lazily; ParseDiagnostic also enforces the configured MaxNestedLevels value.
  • Improved consensus candidate selection: PraosChainSelector now compares every candidate on one scale selected by GenesisWindowSlots. Configured selectors use block counts within the window and project legacy ChainTip.Density onto that window, saturating at uint64 limits; unconfigured selectors use normalized legacy density. Mixed candidate selection remains deterministic regardless of arrival order, including NaN and uint64 boundary cases. The selector is copyable again for go vet, and exported comments accurately describe the API.

  • Optimized current era queries: Successful LocalStateQuery.GetCurrentEra results now cache for the acquired snapshot. Releasing or reacquiring invalidates the cache, failed reacquisition and failed queries do not populate it, and calls after shutdown return ErrProtocolShuttingDown even when a cached result exists.

  • Updated Plutigo dependency: The root module and every example module now use github.com/blinklabs-io/plutigo v0.7.1, with synchronized checksums.

Release: v0.205.3

Compare: v0.205.2…v0.205.3


Doc Holiday logo

Docs authored by Doc Holiday

Edit page

Last updated: