Spring v1.0.3 is a patch release focusing on stability, performance, and compatibility improvements. It brings key fixes to the Trace API, enhancements to P2P networking, optimized block processing during syncing, and expanded platform support.
Notable Changes
Trace API Fix: Corrected the get_transaction_trace endpoint to properly handle forked blocks.
P2P Stability Improvements: Improved reconnection handling, fixed syncing timeout issue, and optimized processing of invalid vote messages for better network stability.
Optimized block processing: Enhanced responsiveness during syncing—allows quicker shutdowns, faster get_info API responses, and restores periodic logging during replay.
Compatibility Improvements: Resolved build issues with LLVM versions 7–9 and fixed some unit tests on non-x86 and non-Linux platforms.
Complete Change Log
Bug Fixes:
- Fixed P2P stability issue caused by closing file descriptor 1 instead of connection when syncing timed out. (#897)
- Fixed get_transaction_trace endpoint: Addressed an issue in the Trace API where the endpoint failed to return transaction traces if the initial block forked out, ensuring accurate trace retrieval. (#966)
P2P Networking Enhancements:
Performance Improvements:
- Optimized block application: Implemented limits on block application to improve performance during block processing. (#921)
Logging Improvements:
- Updated Prometheus metrics: Enhanced speculative block metrics for produced blocks, providing more accurate monitoring data. (#957)
- Enhanced logging accuracy: Corrected block report log times to exclude the duration of maybe_switch_forks, ensuring precise logging information. (#881)
- Cleaned up logging during restarts: Fixed an issue where restarting with Ctrl-C during fork database replay caused excessive log spamming, ensuring cleaner logs and smoother restarts. (#894)
Testing Improvements:
- Improved test reliability: Updated flaky HTTP plugin unit tests and fixed the production_pause_max_rev_blks_test, strengthening the test suite's stability. (#959, #960)
- Resolved flaky tests due to race conditions: Fixed race conditions causing unreliable tests like nodeos_snapshot_diff_test, p2p_sync_throttle_test, and distributed-transactions-if-test, improving test reliability. (#875, #897, #908)
- Cross-platform test support: Updated eosvmoc_limits_tests to function on non-x86 and non-Linux platforms where OC is not supported, enhancing cross-platform compatibility. (#904)
Other Changes:
- Enhanced compiler compatibility: Fixed building issues with LLVM versions 7, 8, and 9, expanding support for different compiler environments. (#903)
- Version tracking update: Merged version bump from 5.0.3 to 1.0.3 for consistent tracking across releases. (#877)
- Fork handling improvements: Reviewed and implemented alternative methods for handling forks to improve fork management. (#968)
Contributors
Special thanks to the contributors that submitted patches for this release: