Release Notes - v0.209.0
v0.209.0
Section titled “v0.209.0”Title: Improve protocol safety, transaction validation, and timing visibility
Version: v0.209.0
This release strengthens protocol input handling, validates transactions against earlier block effects, exposes stage timing data, and corrects Plutus, cost model, and Byron transaction behavior.
Breaking Changes
Section titled “Breaking Changes”- Added aggregate timing data for successful decode, validate, and apply stages through
PipelineStatsandStageTimings; code that createsPipelineStatswith unkeyed literals must add the new fields or switch to keyed literals.
Bug Fixes
Section titled “Bug Fixes”- Corrected Plutus V4 Dijkstra
TxInfodirect deposit and account balance interval maps so they followAccountAddressorder. - Strengthened protocol boundary checks by rejecting unsolicited handshake query replies, bounding block body input, count, and CBOR shapes, and enforcing
leiosnotifyMaxPendingBytesand announcement size limits. - Rejected explicit witnesses that duplicate reference scripts, preventing the same script from serving through both witness paths.
- Preserved independent
CostModelsstate by deep copying it during parameter updates, era upgrades, and genesis initialization. - Applied per-state transaction submission pending message limits of
65,535bytes inInit,Idle, andDone, and2,500,000bytes inTxIdsandTxs;MaxPendingMessageBytescontinues to govern mux ingress. Clients that depend on larger pending messages in the smaller states must account for the reduced65,535byte limit. - Validated block transactions sequentially against preceding effects, supporting chained spends and partial withdrawals while rejecting same-block double spends and applying Dijkstra effect levels and pool re-registration semantics consistently.
- Limited Byron
Produced()UTxOs to output indexes0through65,535; later outputs remain in the transaction and continue to affect its ID.
Additional Changes
Section titled “Additional Changes”- Replaced muxer test sleeps with bounded synchronization so test execution waits for the expected state without relying on fixed delays.
- Made a blockfetch test tolerate the expected connection error race while still checking the intended result.
- Corrected the Leios Fetch README CDDL tag coverage so it defines tags
0through3and9, comments tags6through8, omits tags4and5, and keeps votes separate.
Recommended Network Compatibility ⚠️
Section titled “Recommended Network Compatibility ⚠️”| Network | Compatible |
|---|---|
| mainnet | ⛔ |
| preprod-testnet | ✅ |
| preview-testnet | ✅ |
| musashi | ✅ |
Release: v0.209.0
Docs authored by Doc Holiday