Skip to content

Releases: iotexproject/iotex-core

v2.1.0

04 Dec 02:18
Compare
Choose a tag to compare

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

  1. 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
  2. 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.
  3. 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.
  4. 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:

  1. Staking Bucket Reset: Resolved an issue where staking bucket amounts were not properly cleared after an unstake, ensuring accurate tracking.
  2. Fix for Unlimited Native Staking Duration: Corrected the staking duration limit for native assets to prevent indefinite staking periods.
  3. 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.
  4. 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...v2.1.0

v2.0.8

19 Nov 05:15
Compare
Choose a tag to compare

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

18 Nov 05:57
Compare
Choose a tag to compare

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

30 Oct 06:57
Compare
Choose a tag to compare

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

24 Oct 06:07
Compare
Choose a tag to compare

Full Changelog: v2.0.4...v2.0.5

v2.0.4

03 Sep 03:59
Compare
Choose a tag to compare

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:

  1. [API] increase limit for eth_subscribe (#4374)
  2. [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)

  1. [API] increase api listener limit #4374
  2. [api] fix estimateGas for migrateStake #4377

v2.0.3

26 Aug 05:49
Compare
Choose a tag to compare

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:

  1. 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)

  1. [api] Fix parsing of log filter #4376

v2.0.2

30 Jul 04:32
Compare
Choose a tag to compare

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:

  1. Corrected delegate's total votes for ioctl and API query.
  2. Fixed the issue that certain ioctl commands are missing transaction hash in the send result display.
  3. 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)

  1. [ioctl] add ID into candidate display #4348
  2. [ioctl] print act hash when execute act #4347
  3. [api] Fix nft bucket votes counting #4346

v2.0.1

19 Jul 04:25
Compare
Choose a tag to compare

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:

  1. Corrected return data of readCandidates API to maintain backward-compatibility with existing ioPay and web staking portal.
  2. Fixed the issue of log loss when querying the latest logs by eth_getLogs.
  3. Fixed the issue of not cleaning up the self-stake bucket after the bucket is unstaked.
  4. 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

  1. [api] correct candidate selfstake in api #4335
  2. [api] fix inaccurate result of getLogs #4334
  3. [evm] fix invalid contract address causing SimulateExecution panic #4333
  4. [staking] candidates v1 compatability #4332

Full Changelog: v2.0.0...v2.0.1

v2.0.0

11 Jul 18:27
Compare
Choose a tag to compare

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

  1. New NFT staking contract: introducing a new NFT staking contract that offers users enhanced flexibility and reduced constraints when staking their tokens
  2. 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
  3. Delegate ownership transfer: delegates now have the option to transfer their ownership to newcomer, providing a streamlined process for management changes
  4. 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:

  1. 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.
  2. 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)

  1. [staking] update new staking contract abi #4326
  2. [genesis] set Upernavik to activate at Jul-22-2024 00:05:55AM +UTC #4328
  3. [ioctl] print action hash when send action #4323
  4. [genesis] set default staking contract v2 address & start height for mainnet #4329
  5. [api] set candidate id for fetching api #4324
  6. [e2etest] add more test #4322
  7. more e2etest for native staking migration #4321
  8. [ioctl] stake migrate #4325
  9. [api] fix estimateGas panic for StakeMigrate #4320
  10. transfer back #4319
  11. [staking] only validate duplicate candidate id after HF #4318
  12. [workingset] purge actpool when run action fails #4317
  13. enabling features at Upernavik height #4309
  14. revise self stake buckets #4312
  15. Enforce legacy endorsement feature ctx #4315
  16. add endorsement op but only allow legacy #4314
  17. fix a bug in vote reviser #4313
  18. return keys for function States #4311
  19. [db] Share db for two contract indexer #4307
  20. [rewarding] keep both v1 and v2 claimRewardingInterfaceABI for backward compatibility #4304
  21. [rewarding] move claim address check to LoadProto() and SanityCheck()
  22. [evm] defer Cancun enabling #4308
  23. [action] New MigrateStake Action #4299
  24. [staking] enable new staking index #4305
  25. [ioctl] make function comment match function names #4303
  26. [workingset] remove action from actpool upon tx container unfold error #4306
  27. feat(ioctl): del require datasource in ws #4298
  28. [action] evm tx container #4278
  29. [api] clear candidate selfstake if endorsement expired #4288
  30. [staking] ReadState API support Candidate ID #4276
  31. [e2etest] add tests for original actions after candidate ownership transfer #4295
  32. sign action with chainID #4294
  33. [stakingindex] implement indexer for new staking contract #4237
  34. [staking] implement staking abi v3 #4273
  35. [action]: add unit test for eth tx decode verify #4291
  36. [staking] refactor to split staking abi into separate version #4272
  37. [staking] refactor statereader to support multiple contract indexers #4255
  38. [ioctl] Add stake2 transferownership command #4250
  39. [staking] enable CandidateTransferOwnership at CandidateIdentifiedByOwner feature #4275
  40. fix some function names #4286
  41. use GetIdentifier() instead of Owner for staking #4245
  42. [action] add claim reward account #4277
  43. Add delegate transfer ownership handler #4239
  44. [action] Transfering delegate ownership, add CandidateTransferOwnership #4236
  45. chore: fix function names #4260
  46. [api] readState support to non-rolldpos mode #4247
  47. [action] add GasTipCap and GasFeeCap to AbstractAction #4252
  48. [action] use AbstractAction in envelope
  49. [action] add EvmTransaction to represent actions that run in EVM #4227
  50. [action] add execution.To() method
  51. move struct cache to blockDAO #4226
  52. [evm] use common.Address as map key to reduce byte slice copy/conversion #4230
  53. [db] add KvVersioned interface #4041
  54. [evm] clean-up #4225
  55. [evm] EIP-1153 enable transient storage feature #4214
  56. [api] add unit test for coreService #4213
  57. [evm] panic on unrecoverable error #4178
  58. [evm] panic on duplicate revert version
  59. [test]fix TestHash genesis hash not match mainnet genesis hash #4190
  60. [blockindex]: change private to public #4205
  61. [evm] rename suicide to selfDestruct #4215
  62. [genesis] add Upernavik block height #4206
  63. [evm] EVM upgrade to cancun #4210
  64. [evm] gate the generation of suicide transaction log #4198