Skip to content

Release Notes - v0.208.3

Title: Fix ChainSync peer pipelining and asynchronous replies

Version: v0.208.3

This release corrects peer pipelined message handling during ChainSync agency transitions and clarifies asynchronous server reply behavior. Servers can use AwaitReply with pipelined requests while preserving request order and protocol state transitions.

  • Fixed peer pipelined messages by deferring them until peer agency becomes active, so the protocol processes them only when its state permits.
  • Removed the separate early handling path and transition marker for peer pipelined messages so state transitions follow the regular protocol flow.
  • Clarified pipelined message state semantics so state checks reflect whether the protocol can handle a pipelined message at that point.
  • Corrected ChainSync MustReply admission to accept pipelined MsgRequestNext messages for both NtN and NtC, including when the CanAwait view still lags behind the permitted state.
  • Enabled RequestNextFunc callbacks to send replies before the callback returns, after it returns, or from another goroutine, supporting asynchronous ChainSync server replies with AwaitReply and pipelined requests.
  • Ensured the server dispatches a pipelined RequestNext only after the previous request receives its reply and the server returns to Idle, preserving request sequencing for asynchronous replies.

Release: v0.208.3

Compare: v0.208.2…v0.208.3


Doc Holiday logo

Docs authored by Doc Holiday

Edit page

Last updated: