Skip to content

Release Notes - v0.208.4

Title: Improve protocol range delivery and muxer responsiveness

Version: v0.208.4

This release improves BlockFetch and ChainSync range delivery across same-slot Byron boundaries and keeps the muxer responsive when one protocol consumer falls behind.

  • Fixed BlockFetch ranges that cross from a Byron epoch boundary block (EBB) to the first main block in the same slot. The client still checks the requested slot limits, the correct endpoint identity, and the link to the previous block, and it rejects later blocks after the requested end even when they share its slot.
  • Restored ChainSync delivery for valid one-block ranges after RequestNext and same-slot ranges with different Byron block hashes. ChainSync now treats a point as the tip only when both its slot and hash match, permits a one-block range after RequestNext when the next point shares the tip slot instead of treating equal slots as empty, and avoids another RequestNext when the intersect is already at or beyond the tip.
  • Improved muxer responsiveness with a bounded input queue and forwarding path for each protocol and role, so a slow BlockFetch consumer no longer stalls connection maintenance traffic or other protocols. Muxer.SetIngressLimit, Muxer.SetIngressBackpressure, optional Muxer.SetMetrics, ProtocolConfig.IngressLimit, and protocol ingress hooks provide configuration and observability. Each protocol read pass handles at most 10 queued segments; estimated BlockFetch requests add the estimate, 10 percent, and one maximum-size message to the ingress allowance, while unestimated ranges apply backpressure. A per-role overflow terminates the connection with muxer.ErrIngressOverflow, and the muxer handles unregister and Stop or Register races more safely.
NetworkCompatible
mainnet⛔
preprod-testnet✅
preview-testnet✅
musashi✅

Release: v0.208.4

Compare: v0.208.3…v0.208.4


Doc Holiday logo

Docs authored by Doc Holiday

Edit page

Last updated: