Releases: iotexproject/iotex-core
v2.3.3
Summary
v2.3.3 is a major maintenance release that introduces official support for Archive Mode and Prune Mode, providing flexible storage options for different node types. This release also includes significant block synchronization improvements, API enhancements, and critical bug fixes to improve the stability and performance of the IoTeX network.
Note:
There's no change to the mainnet config.yaml and genesis.yaml. You only need to
restart your node with the new v2.3.3 image.
- Snapshot update: the bundled snapshot no longer contains the legacy
stakingindex. If yourconfig.yamlhasenableStakingIndexer: true, please remove that entry before starting the node.
Key Features and Enhancements
1. Archive Mode Support
v2.3.3 officially introduces Archive Mode, which stores complete historical state data for all blocks. This mode is essential for applications that need to query historical blockchain states at any point in time.
To enable archive mode, set chain.historyIndexPath in config.yaml to the directory where historical state files will be stored.
2. Prune Mode Support
v2.3.3 introduces Prune Mode, which maintains only the most recent 256 blocks of historical state data. This mode significantly reduces storage requirements while still providing recent state access for most operational needs.
To enable prune mode, first enable archive mode, then set chain.historyBlockRetention in config.yaml to the number of recent blocks whose state you want to retain.
3. Block Synchronization Optimization
Significant improvements have been made to the block synchronization mechanism to enhance sync speed, reliability, and network efficiency.
4. API and Compatibility Enhancements
Enhanced API support and EVM compatibility to improve developer experience and integration capabilities.
- Web3 API for RollDPoS Protocol: Added comprehensive Web3 API support for the RollDPoS (Roll-Delegated Proof of Stake) protocol, enabling developers to interact with consensus-related data through standard Web3 interfaces.
- Web3 API for Poll Protocol: Implemented ETH ABI compatibility for the poll protocol, allowing seamless integration with Ethereum tools and improving interoperability with EVM-based services.
5. Bug Fixes
Critical bug fixes to improve system stability and reliability.
- WebSocket Connection Stability: Fixed a double-close issue in WebSocket connections that could lead to connection instability and unexpected disconnections for clients using WebSocket subscriptions.
- Query Range Limits: Implemented configurable query range limitations to prevent excessive resource consumption and improve API response times.
Upgrade Priority
v2.3.3 is a maintenance release, so nodes are recommended to upgrade for better performance and stability.
| Node type | Action |
|---|---|
| Delegate | Recommended |
| Fullnode | Recommended |
| API node | Recommended |
Commits
v2.3.2
This is a maintenance release, Fixing an issue that the contract staking indexer failed to catch up when it fell behind the chain height.
We recommend you upgrade at your convenience to fix the catch up issues.
Full Changelog: v2.3.1...v2.3.2
v2.3.1
increase to 6 workers to handle block request
v2.3.0
Summary
v2.3.0 has a hardfork, which will be activated at block height 41648761
(ETA is around Nov-04-2025 03:45:07 AM +UTC) on IoTeX L1 mainnet.
All nodes must upgrade to this release, otherwise the node runs the risk of
not being able to sync with the IoTeX blockchain after other nodes have upgraded.
Note:
There's no change to the mainnet config.yaml and genesis.yaml. You only need to
restart your node with the new v2.3.0 image.
This release enables IIP-50, which introduces slashing mechanisms for unproductive delegates. This enhancement significantly improves network security and delegate accountability by applying penalties to the self-stake of delegates who fail to meet productivity requirements.
Additionally, this release enhances candidate registration capabilities by supporting BLS PublicKey registration and updates, laying the foundation for future BLS signature aggregation improvements outlined in IIP-52.
Key Features and Enhancements
- IIP-50 Slash Candidates: Implement slashing mechanism that applies penalties to self-stake of unproductive delegates, enhancing network security and delegate accountability.
- Enhanced Candidate Registration: Add support for BLS PublicKey registration and updates in CandidateRegister and CandidateUpdate transactions, preparing the groundwork for IIP-52 BLS signature aggregation.
Upgrade Priority
v2.3.0 comes with a hardfork, so all nodes must upgrade in order to keep
syncing with the IoTeX blockchain
| Node type | Action |
|---|---|
| Delegate | Must upgrade |
| Fullnode | Must upgrade |
| API node | Must upgrade |
Commits
v2.2.2
This version mainly improves the API nodes, specifically including:
- eth_getTransactionRecipt return TransactionLogs in events way
- Fix retval for contract creation only when simulate
Full Changelog: v2.2.1...v2.2.2
v2.2.1
Summary
v2.2.1 is a performance and compatibility enhancement release that optimizes
node operations and expands API capabilities.
All nodes are strongly recommended to upgrade to this release, especially
API nodes operating under high TPS conditions, to benefit from significant
performance improvements and enhanced compatibility features.
Note:
There's no change to the mainnet config.yaml and genesis.yaml. You only need to
restart your node with the new v2.2.1 image.
This release focuses on optimizing staking view operations through deferred
replication, expanding Ethereum API compatibility with EIP-1898 support, and
introducing enhanced administrative controls for blockchain operations.
Key Features and Enhancements
-
Staking View Performance Optimization: Implemented deferred replication
for staking view copying, significantly improving node performance, especially
for API nodes under high TPS conditions. This optimization reduces computational
overhead during view operations and enhances overall network responsiveness. -
EIP-1898 Support: Added full support for EIP-1898, enabling API nodes
to handle requests with bothblockHashandblockNumberparameters. This
enhancement improves Ethereum compatibility and provides more flexible block
querying capabilities for developers. -
Admin Interface Enhancements: Added new administrative interfaces that
support pausing and resuming blockchain operations, providing operators with
better control over node behavior during maintenance or emergency situations.
Bug Fix and Performance Improvements
-
Dependency Management Fix: Resolved compilation issues where dependency
libraries were incorrectly being removed, ensuring stable build processes. -
Performance Optimization: Enhanced overall system performance through
optimized staking view operations and reduced memory overhead.
Upgrade Priority
v2.2.1 provides significant performance improvements and enhanced functionality.
All nodes are strongly recommended to upgrade, with API nodes receiving
the most substantial benefits.
| Node type | Action |
|---|---|
| Delegate | Recommended |
| Fullnode | Recommended |
| API node | Highly Recommended |
Commits
v2.2.0
Summary
v2.2.0 has a hardfork, which will be activated at block height 36,893,881
(ETA is around 06/19/2025 01:28:35 AM +UTC) on IoTeX L1 mainnet.
All nodes must upgrade to this release, otherwise the node runs the risk of
not being able to sync with the IoTeX blockchain after other nodes have upgraded.
Note:
There's no change to the mainnet config.yaml and genesis.yaml. You only need to
restart your node with the new v2.2.0 image.
This release reduces the block interval from 5 seconds to 2.5 seconds, effectively doubling the block production rate. This improvement enhances overall network responsiveness, and reduces transaction confirmation times. Users and developers can expect faster feedback for submitted transactions and more frequent block updates across the network. System Staking Contract Version 3 is introduced, which is optimized for the new 2.5-second block interval. It replaces Version 2, which is now deprecated. It will remain compatible even if the block interval changes again in the future.
Key Features and Enhancements
- Reduce block interval from 5 seconds to 2.5 seconds.
- Introduce system staking contract version 3 and deprecate system staking contract version 2.
Bug Fix and Performance Improvements:
- Enhanced the P2P network by introducing stricter rate limit.
- Upgraded golang and some dependencies.
- Fixed minting and validation inconsistency.
Upgrade Priority
v2.2.0 comes with a hardfork, so all nodes must upgrade in order to keep
syncing with the IoTeX blockchain
| Node type | Action |
|---|---|
| Delegate | Must upgrade |
| Fullnode | Must upgrade |
| API node | Must upgrade |
Commits
v2.1.2
v2.1.2 Release Note
Summary
v2.1.2 is a major maintenance release to improve IoTeX network stability and robustness, and expanding API support.
All nodes are strongly recommended to upgrade to this release, to make sure the node is update-to-date with latest release and ensure smooth block producing.
Note:
There's no change to the mainnet config.yaml and genesis.yaml. You only need to restart your node with the new v2.1.2 image.
This release introduces key enhancements to improve p2p network robustness, expand Ethereum API compatibility, and refine API service readiness for better system reliability.
Key Features and Enhancements
- p2p robustness enhancement: add a rate-limit mechanism at p2p netowrk level. This helps to regulate network traffic effectively, mitigate potential congestion, and enhance security by reducing the risk of malicious attacks.
- implementation of 2 new Ethereum-Compatible APIs:
eth_blobBaseFee: returns the base fee per gas for blob transactions (EIP-4844).
eth_feeHistory: provides historical gas fee data for improved fee estimation. - API service readiness refinement: during the start-up, the API will wait all necessary internal components are fully initialized and ready before start accepting requests, reducing potential API error after service restart
Upgrade Priority
v2.1.2 comes with an important functional upgrade, all nodes are strongly recommended to upgrade in order to keep update-to-date with latest release and ensure smooth block producing.
| Node type | Action |
|---|---|
| Delegate | Recommended |
| Fullnode | Recommended |
| API node | Recommended |
Commits
v2.1.1
This version mainly improves the API nodes, specifically including:
- Support for the eth_feeHistory and eth_blobbasefee APIs
- Fix panic caused by API requests
Full Changelog: v2.1.0...v2.1.1
v2.1.0
Summary
v2.1.0 has a hardfork, which will be activated at block height 33,730,921 (ETA is around 12/17/2024 02:20:40 AM +UTC) on IoTeX L1 mainnet.
All nodes must upgrade to this release, otherwise the node runs the risk of not being able to sync with the IoTeX blockchain after other nodes have upgraded.
Note:
There's no change to the mainnet config.yaml and genesis.yaml. You only need to restart your node with the new v2.1.0 image.
This release introduces support for the Cancun EVM upgrade, bringing compatibility with the latest opcodes and Solidity compiler, and enabling more advanced smart contract functionality. A key highlight is the integration of EIP-4844, which supports BlobTx transactions. This allows users to send transactions with blob data that is stored on-chain for at least 20 days, optimizing data availability and on-chain storage. Additional improvements includes staking enhancements, network stability, and overall transaction processing efficiency.
Key Features and Enhancements
- Cancun EVM Compatibility: Implements the latest EVM opcodes, allowing developers to compile contracts with the most recent Solidity compiler and take advantage of the newest protocol capabilities. The recommended solidity compiler version for Cancun EVM is 0.8.25, and these new features are enabled particularly in Cancun EVM:
a) EIP-1153: Transient storage opcodes
b) EIP-4844: Shard blob transactions (Proto-Danksharding)
c) EIP-5656: MCOPY - Memory copying instruction
d) EIP-6780: SELFDESTRUCT only in same transaction
e) EIP-7516: BLOBBASEFEE opcode - Support for EIP-4844 Blob Transactions: Enables users to send transactions containing blob data, which is verified and stored on-chain for a minimum of 20 days, optimizing data availability and chain storage efficiency.
- Support for EIP-1559 Dynamic Fee Transactions: Allows users to send transactions with dynamic fees, where the priority fee is rewarded directly to the block miner, ensuring fair and efficient fee allocation.
- Support for EIP-2930 Access List Transactions: Reduces gas consumption by allowing users to specify an access list in transactions, making execution more cost-effective.
Bug Fix and Performance Improvements:
- Staking Bucket Reset: Resolved an issue where staking bucket amounts were not properly cleared after an unstake, ensuring accurate tracking.
- Fix for Unlimited Native Staking Duration: Corrected the staking duration limit for native assets to prevent indefinite staking periods.
- LibP2P Upgrade: Enhanced the P2P network by upgrading LibP2P to newer version 0.32.2, leading to improved connectivity (an average of 80~100+ connected peers) and network stability.
- Consistency Between Minting and Validation: Standardized behavior between minting and validation processes to prevent potential discrepancies and ensure stable operation.
Upgrade Priority
v2.1.0 comes with a hardfork, so all nodes must upgrade in order to keep syncing with the IoTeX blockchain
| Node type | Action |
|---|---|
| Delegate | Must upgrade |
| Fullnode | Must upgrade |
| API node | Must upgrade |