Skip to content

Release Notes - v0.195.0

Title: Improve governance, block fetch, and transaction validation

Date: August 24, 2026

Version: v0.195.0

This release strengthens Conway governance validation, adds optional BlockFetch request pipelining, improves transaction validation, and updates consensus behavior and dependencies.

  • Improved Conway governance validation: Hard fork succession and proposal ancestry checks now reject invalid relationships. Same transaction propose and vote actions resolve correctly, while DRep, constitutional committee, stake pool operator, and Bootstrap restrictions use the resolved action contents. Stake pool operators can no longer vote on ParameterChange actions outside the security group. Optional governance action contents, purpose root state, and SecurityGroupFields() provide the state needed for these checks. Learn more.

  • Added BlockFetch request pipelining: The client can opt into concurrent range requests with Client.RequestRange(ctx, RangeRequest) and Config.RequestPipelining. FIFO requests receive responses in order and one Config.RangeDoneFunc callback each. Context aware admission limits requests by expected serialized bytes; the default Config.MaxInFlightBytes is 9,011,200 bytes (100 x 88 KiB). Disabled pipelining retains the single outstanding request behavior. GetBlock now returns the exported blockfetch.ErrNoBlocks error when a batch contains no block. Protocol.SendMessageContext and AllowPipelinedSend now support context aware pipelined sends. Learn more.

  • Centralized Plutus script validation: Shared transaction input and Plutus script helpers now support Conway and Dijkstra validation. Native and non Plutus reference scripts no longer appear among available Plutus scripts, and the Dijkstra fallback reuses resolved inputs to avoid redundant lookups. Learn more.

  • Changed Praos deep fork selection: Deep forks now follow canonical Genesis density first behavior by comparing integer block counts within the configured Genesis window. Shallow forks retain ordinary selection. The ChainTip interface now exposes BlocksInWindow instead of density, and selector APIs use ForkPoint and block rollback values. ComputeGenesisWindow now uses ceiling division and guards invalid coefficients. Update implementations that provide ChainTip and callers of selector APIs to use the new fields and rollback values before upgrading. Learn more.
  • Corrected Babbage Plutus V1 inline datum checks: Validation now applies the inline datum restriction only to scripts required by transaction purposes. It scans resolved consumed inputs, reference inputs, and outputs, includes Plutus V4 witnesses, and avoids reporting duplicate input resolution errors. Learn more.

  • Accepted duplicate legacy inputs: Untagged Shelley through Babbage input sets now coalesce duplicate members while preserving their original CBOR bytes. Tagged Alonzo and Babbage sets continue to reject duplicates, preserving validation for explicitly tagged sets. Learn more.

  • Updated CBOR decoding: The root module and eight example modules now use github.com/fxamacker/cbor/v2 v2.9.3, which mitigates a potential panic when certain CBOR values decode into time.Time. Production code remains unchanged. Learn more.

  • Standardized Go formatting: Formatting now matches the gofumpt rules required by golangci-lint v2.13.0. Runtime behavior remains unchanged. Learn more.

  • Refreshed example test dependencies: The examples/ping module now uses github.com/stretchr/testify v1.12.1 and go.yaml.in/yaml/v3 v3.0.5. Source and API behavior remain unchanged. Learn more.

  • Aligned protobuf dependencies: The root module and eight example modules now use google.golang.org/protobuf v1.36.12, keeping replace based example builds consistent. API behavior remains unchanged. Learn more.

  • Upgraded root test dependencies: The root module now uses github.com/stretchr/testify v1.12.1 with refreshed indirect YAML and transitive dependencies. Project APIs remain unchanged. Learn more.



Doc Holiday logo

Docs authored by Doc Holiday

Edit page

Last updated: