Releases: iotexproject/iotex-core
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 |
Commits
v2.0.8
This version mainly improves mint performance, both API/delegate nodes are recommended to upgrade
Full Changelog: v2.0.7...v2.0.8
v2.0.7
This version mainly focuses on some issue fixes for the API node, and delegate nodes do not need to upgrade.
Full Changelog: v2.0.6...v2.0.7
v2.0.6
This version mainly focuses on some performance optimizations and issue fixes for the API node, and delegate nodes do not need to upgrade.
Full Changelog: v2.0.5...v2.0.6
v2.0.5
Full Changelog: v2.0.4...v2.0.5
v2.0.4
Summary
v2.0.4 is also an maintenance release after the latest release v2.0.3. It
comes with two API fixes.
Bug Fix and Performance Improvements:
- [API] increase limit for
eth_subscribe
(#4374) - [API] fix estimateGas for migrateStake transaction (#4377)
Upgrade Priority
v2.0.4 does not have a hardfork, but contains an API fix.
All API nodes are recommended to upgrade to v2.0.4 in order to provide the most
up-to-date results and service
Node type | Action |
---|---|
Delegate | Not required |
Fullnode | Not required |
API node | Recommended |
Important Commits (not a complete list)
v2.0.3
Summary
v2.0.3 is also an maintenance release after the latest release v2.0.0. It
comes with an API fix.
Bug Fix and Performance Improvements:
- fix logs mismatched in
eth_getLogs
API
Upgrade Priority
v2.0.3 does not have a hardfork, but contains an API fix.
All API nodes are recommended to upgrade to v2.0.3 in order to provide the most
up-to-date results and service
Node type | Action |
---|---|
Delegate | Not required |
Fullnode | Not required |
API node | Recommended |
Important Commits (not a complete list)
- [api] Fix parsing of log filter #4376
v2.0.2
Summary
v2.0.2 is the second maintenance release after the latest release v2.0.0. It comes with an API fix to return correct number of total votes for delegate, and two ioctl command improvements.
Bug Fix and Performance Improvements:
- Corrected delegate's total votes for ioctl and API query.
- Fixed the issue that certain ioctl commands are missing transaction hash in the send result display.
- Showed delegate's ID in
ioctl bc delegate
command output.
Upgrade Priority
v2.0.2 does not have a hardfork, but contains several API and ioctl command fixes. All API nodes are recommended to upgrade to v2.0.2 in order to provide the most up-to-date results and service
Node type | Action |
---|---|
Delegate | Not required |
Fullnode | Not required |
API node | Recommended |
Important Commits (not a complete list)
v2.0.1
v2.0.1 Release Note
Summary
v2.0.1 is the first maintenance release after the latest release v2.0.0. It comes with several API fixes to maintain backward-compatibility with existing ioPay and web staking portal.
Bug Fix and Performance Improvements:
- Corrected return data of readCandidates API to maintain backward-compatibility with existing ioPay and web staking portal.
- Fixed the issue of log loss when querying the latest logs by eth_getLogs.
- Fixed the issue of not cleaning up the self-stake bucket after the bucket is unstaked.
- Fixed invalid contract address causing SimulateExecution to panic.
Upgrade Priority
v2.0.1 does not have a hardfork, but contains several API fixes. All API nodes are recommended to upgrade to v2.0.1 in order to provide the best up-to-date service
Node type | Action |
---|---|
Delegate | Not required |
Fullnode | Not required |
API node | Recommended |
Important Commits
- [api] correct candidate selfstake in api #4335
- [api] fix inaccurate result of getLogs #4334
- [evm] fix invalid contract address causing SimulateExecution panic #4333
- [staking] candidates v1 compatability #4332
Full Changelog: v2.0.0...v2.0.1
v2.0.0
Summary
v2.0.0 has a hardfork, which will be activated at block height 31,174,201 (ETA is around 07/22/2024 00:05:55 AM UTC) on IoTeX 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.0.0 image.
We are excited to unveil IoTeX Blockchain v2.0.0, a milestone in our journey towards a more scalable, secure, and user-centric blockchain ecosystem. This release introduces impactful features designed to elevate user experience and expand the capabilities of our staking eco-system, and includes enhancements aimed at improving the security and robustness of the blockchain system.
Users and developers are encouraged to review the updated documentation and migration guides ahead of the release to fully leverage these new features. We are excited to continue empowering decentralized infra for DePIN globally with the new IoTeX Blockchain v2.0.0 release.
Key Features and Enhancements
- New NFT staking contract: introducing a new NFT staking contract that offers users enhanced flexibility and reduced constraints when staking their tokens
- Migrate native staking bucket to NFT staking: users with native staking buckets can now seamlessly migrate to NFT-based staking, enjoying the benefits and flexibility provided by NFT-based staking
- Delegate ownership transfer: delegates now have the option to transfer their ownership to newcomer, providing a streamlined process for management changes
- Enhanced transaction handling: transactions sent in web3js API/format are now wrapped in a general container format, which improves accuracy of execution and compatibility across various tools and frameworks
Bug Fix and Performance Improvements:
- Purge failed transactions: failed transactions are automatically purged from the action pool, ensuring they do not hinder block production. This enhancement optimizes network efficacy, reliability, and throughput.
- Error handling in EVM module: handles missing transaction logs on contract's SelfDestruct() and managing unrecoverable errors effectively, enhancing robustness and stability of the system by ensuring that critical errors are properly taken care of
Upgrade Priority
v2.0.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 |
Important Commits (not a complete list)
- [staking] update new staking contract abi #4326
- [genesis] set Upernavik to activate at Jul-22-2024 00:05:55AM +UTC #4328
- [ioctl] print action hash when send action #4323
- [genesis] set default staking contract v2 address & start height for mainnet #4329
- [api] set candidate id for fetching api #4324
- [e2etest] add more test #4322
- more e2etest for native staking migration #4321
- [ioctl] stake migrate #4325
- [api] fix estimateGas panic for StakeMigrate #4320
- transfer back #4319
- [staking] only validate duplicate candidate id after HF #4318
- [workingset] purge actpool when run action fails #4317
- enabling features at Upernavik height #4309
- revise self stake buckets #4312
- Enforce legacy endorsement feature ctx #4315
- add endorsement op but only allow legacy #4314
- fix a bug in vote reviser #4313
- return keys for function States #4311
- [db] Share db for two contract indexer #4307
- [rewarding] keep both v1 and v2 claimRewardingInterfaceABI for backward compatibility #4304
- [rewarding] move claim address check to LoadProto() and SanityCheck()
- [evm] defer Cancun enabling #4308
- [action] New MigrateStake Action #4299
- [staking] enable new staking index #4305
- [ioctl] make function comment match function names #4303
- [workingset] remove action from actpool upon tx container unfold error #4306
- feat(ioctl): del require datasource in ws #4298
- [action] evm tx container #4278
- [api] clear candidate selfstake if endorsement expired #4288
- [staking] ReadState API support Candidate ID #4276
- [e2etest] add tests for original actions after candidate ownership transfer #4295
- sign action with chainID #4294
- [stakingindex] implement indexer for new staking contract #4237
- [staking] implement staking abi v3 #4273
- [action]: add unit test for eth tx decode verify #4291
- [staking] refactor to split staking abi into separate version #4272
- [staking] refactor statereader to support multiple contract indexers #4255
- [ioctl] Add stake2 transferownership command #4250
- [staking] enable CandidateTransferOwnership at CandidateIdentifiedByOwner feature #4275
- fix some function names #4286
- use GetIdentifier() instead of Owner for staking #4245
- [action] add claim reward account #4277
- Add delegate transfer ownership handler #4239
- [action] Transfering delegate ownership, add CandidateTransferOwnership #4236
- chore: fix function names #4260
- [api] readState support to non-rolldpos mode #4247
- [action] add GasTipCap and GasFeeCap to AbstractAction #4252
- [action] use AbstractAction in envelope
- [action] add EvmTransaction to represent actions that run in EVM #4227
- [action] add execution.To() method
- move struct cache to blockDAO #4226
- [evm] use common.Address as map key to reduce byte slice copy/conversion #4230
- [db] add KvVersioned interface #4041
- [evm] clean-up #4225
- [evm] EIP-1153 enable transient storage feature #4214
- [api] add unit test for coreService #4213
- [evm] panic on unrecoverable error #4178
- [evm] panic on duplicate revert version
- [test]fix TestHash genesis hash not match mainnet genesis hash #4190
- [blockindex]: change private to public #4205
- [evm] rename suicide to selfDestruct #4215
- [genesis] add Upernavik block height #4206
- [evm] EVM upgrade to cancun #4210
- [evm] gate the generation of suicide transaction log #4198