Skip to content

v2.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 11 Jul 18:27
· 137 commits to master since this release

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