This patch release contains SHiP stability fixes, several additional bug fixes, test fixes, logging improvements, and documentation updates.
State History Plugin (SHiP) stability issues were reported with the release of Leap v.3.2.0 where it would crash under heavy load. This has been resolved with a backport of From the backport:
Additional changes:
Block propagation has been improved under high load by exiting a speculative block Previously, for a speculative block, an incoming block would not be processed until the main thread was released from processing the backlog of pending transactions that fit with the completion of When syncing from one peer a sync wait timeout could cause the connected peer to determine the reconnect was a duplicate. This prevented reconnection and required a manual disconnect/reconnect to reestablish the connection.
A previous fix for this corner case did not address that Previously there was no enforcement that when deep-mind was enabled that p2p-accept-transactions and Special thanks to the contributors that submitted patches for this release:
Full Changelog: v3.2.0...v3.2.1
Leap v3.2.1 Release Notes
Bug fixes
SHiP stability fixes
state_history_plugin fixes.
state_history_plugin would send blocks with block_num smaller than the client requests when the state history block head is behind the block head of the client.
session_manager_t and use post to main thread so session_set is only accessed from main thread.
named_thread_pool to simplify SHiP thread. Older versions of boost do not provide an acceptor that takes a strand in constructor, so rely on implicit strand of single thread running io_context which is much simpler than wrapping all calls in boost::asio::bind_executor.
Interrupt speculative block
start_block when a production block is received
start_block when a production block comes into the node and its block header is validated. This allows the block to be processed immediately after the execution of the current transaction.
start_block. This could delay the incoming block processing by as much as 500ms.
Attempt connection retry for duplicate connections
no_retry is was redundantly being checked in connect. This duplicate check has been removed because connect is only called from resolve_and_connect where the no_retry is already verified.
Add validation of plugin configuration for deep-mind
api-accept-transactions be disabled. There is now validation that throws an error when configured incorrectly.
Further details on changes since last release
Contributors
Full list of changes since last release
PRs