Release Notes - v0.204.6
v0.204.6
Section titled “v0.204.6”Title: Improve shutdown handling and ledger decoding
Version: v0.204.6
This release improves callback shutdown handling, reference script compatibility, hash consistency, and CBOR and metadata decoding limits.
🐛 Bug Fixes
Section titled “🐛 Bug Fixes”-
Improved callback shutdown handling:
NewClientandNewServernow populateCallbackContext.ConnectionDoneChanfromProtocolOptions.ConnectionDoneChan. The channel closes when the owning connection begins shutdown, remains separate from the protocol completion channel, and is nil without an owning connection, allowing callbacks to exit promptly. -
Corrected reference script version checks: Stored reference scripts now receive well-formedness checks during decoding, while the execution-time version gate runs immediately before script execution. Valid PlutusV2 scripts using UPLC 1.1.0 can therefore remain usable below the van Rossem boundary, while execution checks still reject under-versioned scripts and malformed UPLC 1.2.0 references. The release also updates
plutigoto v0.7.0, Go to 1.26.0, bumpsgolang.org/x/cryptoto v0.56.0, and updates relatedx/sysdependencies. -
Synchronized hash memoization: Blake2b256 hash caches now support safe concurrent access and reset operations. Replacing or clearing CBOR through
SetCbororSetCborReferenceinvalidates hashes for transaction bodies and Shelley, Babbage, and Byron block headers, and copying a value limits invalidation to the changed copy. Callers must still synchronize mutations that occur concurrently withIdorHashoperations. -
Expanded CBOR nesting limits: General and diagnostic CBOR decoding now supports nesting up to 16,384 levels, while a single-pass metadata decoder supports up to 1,024 levels. The decoder also clones input, validates UTF-8 in indefinite text chunks, detects semantic duplicate keys, and rejects malformed, unsupported, or trailing data.
Release: v0.204.6
Compare: v0.204.5…v0.204.6
Docs authored by Doc Holiday