0.9.0
Helios 0.9.0 Release Notes
Overview
Helios 0.9.0 brings significant improvements to monitoring capabilities, performance optimizations, architectural enhancements, and modernized tooling support. This release includes a new terminal user interface, pluggable historical block provider system, parallel transaction processing, and comprehensive TypeScript/JavaScript ecosystem improvements.
New Features
Terminal User Interface (TUI) #631
- Introduced a comprehensive terminal user interface accessible with the
--tuiflag - Real-time monitoring of current block numbers (latest, safe, finalized where applicable)
- Sync status visualization with progress indication
- Block production metrics including rate and age
- Recent block history with timestamps in local timezone
- Detailed block information panel showing block details
- Network-aware display that adapts based on chain type
- Auto-refreshing display with 1-second intervals
Pluggable Historical Block Provider System #625
- New
HistoricalBlockProvidertrait for pluggable historical block sources - EIP-2935 provider for Ethereum/OpStack using verified storage access
- Linea historical provider moved to linea crate with shared verification logic
- Enhanced security by removing dependency on untrusted RPC calls
- Support for block retrieval by both number and hash
- WASM32 compatibility with conditional async_trait annotations
Block Consistency Validation #624
- Added block consistency validation to BlockCache
- Improved reliability of cached block data
- Enhanced error detection and recovery mechanisms
Nightly Installation Support #638
- Added
--nightlyflag to heliosup for installing pre-release builds - Enhanced installer to fetch most recent releases including pre-releases
- Clear indication of stable vs nightly version during installation
- Maintained backward compatibility with default stable releases
TypeScript/JavaScript Ecosystem Improvements
-
Migration to Vite #616
- Replaced Webpack with Vite for better developer experience
- Added ESM bundle support alongside existing UMD
- Node.js support for both UMD and ESM modules
- Simplified build configuration
-
NPM Publishing Support #620
- Prepared helios-ts package for NPM distribution
- Added automated GitHub workflows for release and publishing
- Created comprehensive README for the NPM package
- Updated package.json with proper metadata and configuration
Improved TypeScript Initialization API #635
- Refactored TypeScript initialization API for better usability
- Enhanced type safety and developer experience
- Streamlined configuration options
Custom VM Support #621
- Refactored architecture to support custom virtual machines
- Enhanced flexibility for different execution environments
- Improved modularity and extensibility
Improved Internals #608
- Various internal improvements for better code organization
- Enhanced maintainability and performance
Performance Improvements
Parallel Transaction Signature Recovery #634
- Parallelized CPU-intensive signature recovery operations using rayon
- Significantly reduced sync delays and block conversion time
- Dedicated thread pool with 4MB stack size for signature recovery
- Maintained compatibility with WASM targets using sequential processing
Refactored RPC Equivalence Tests #626
- Improved test performance and error handling
- Better organization and maintainability of test suite
- Enhanced reliability of integration tests
Bug Fixes
WASM Build Fixes
- Fixed interval import for WASM targets #618
- Removed spawn_blocking for payload_to_block conversions #636
- Fixed unused import warnings in WASM builds #637
Infrastructure Updates
Alloy Library Upgrade to v1.0 #628
- Upgraded Alloy from 0.14.0 to 1.0.3 across all crates
- Updated related dependencies (alloy-rlp, op-alloy-*)
- Migrated deprecated methods to new APIs
- Ensured compatibility across all modules
Dependency Updates #604
- Bumped alloy, revm, and other core crates
- Updated to latest stable versions for improved performance and security
Improved Logging System #630
- Enhanced logging for block updates
- Better debugging capabilities
- More informative log messages
URL Type Consistency #629
- Refactored to use Url type consistently for URL representation
- Improved type safety and reduced potential errors
Network Support
New Network Support
Documentation
- Added Linea instructions to README #619
- Fixed broken documentation links #623
- Updated JSONRPC spec link to latest official documentation #606
- Fixed general documentation link issues #600
Development Improvements
- Updated deprecated GitHub Actions from v1 to v4 #613
- Enhanced CI/CD pipelines for automated releases
- Improved build processes and tooling
Breaking Changes
- Alloy v1.0 upgrade may require code updates for projects using deprecated APIs
- TypeScript initialization API changes may require updates to existing integrations
Migration Guide
For Alloy v1.0:
- Replace
on_clientwithconnect_client - Replace
on_httpwithconnect_http - Add import for
SignerRecoverabletrait where needed
For TypeScript/JavaScript:
- Update imports to use new ESM modules if desired
- Review initialization API changes in #635
Contributors
Thank you to all contributors who made this release possible: Noah Citron, Karen Sarkisyan, Dhruv Agarwal, Aurélien, Joseph Bao, Ragnar, GarmashAlex, MozirDmitriy, David Klank, and Oisín Kyne.
For a complete list of changes, see the comparison between v0.8.8 and v0.9.0.