|
| 1 | +# v2.0.0 Release Note |
| 2 | + |
| 3 | +## Summary |
| 4 | +**v2.0.0 has a hardfork, which will be activated at block height 31,174,201 |
| 5 | +(ETA is around 07/22/2024 00:05:55 AM UTC) on IoTeX mainnet.** |
| 6 | + |
| 7 | +All nodes **must** upgrade to this release, otherwise the node runs the risk of |
| 8 | +not being able to sync with the IoTeX blockchain after other nodes have upgraded. |
| 9 | + |
| 10 | +**Note:** |
| 11 | +There's no change to the mainnet config.yaml and genesis.yaml. You only need to |
| 12 | +restart your node with the new v2.0.0 image. |
| 13 | + |
| 14 | +We are excited to unveil IoTeX Blockchain v2.0.0, a milestone in our journey |
| 15 | +towards a more scalable, secure, and user-centric blockchain ecosystem. This |
| 16 | +release introduces impactful features designed to elevate user experience and |
| 17 | +expand the capabilities of our staking eco-system, and includes enhancements |
| 18 | +aimed at improving the security and robustness of the blockchain system. |
| 19 | + |
| 20 | +Users and developers are encouraged to review the updated documentation and |
| 21 | +migration guides ahead of the release to fully leverage these new features. We |
| 22 | +are excited to continue empowering decentralized infra for DePIN globally with |
| 23 | +the new IoTeX Blockchain v2.0.0 release. |
| 24 | + |
| 25 | +## Key Features and Enhancements |
| 26 | +1. New NFT staking contract: introducing a new NFT staking contract that offers |
| 27 | +users enhanced flexibility and reduced constraints when staking their tokens |
| 28 | +2. Migrate native staking bucket to NFT staking: users with native staking buckets |
| 29 | +can now seamlessly migrate to NFT-based staking, enjoying the benefits and flexibility |
| 30 | +provided by NFT-based staking |
| 31 | +3. Delegate ownership transfer: delegates now have the option to transfer their |
| 32 | +ownership to newcomer, providing a streamlined process for management changes |
| 33 | +4. Enhanced transaction handling: transactions sent in web3js API/format are now |
| 34 | +wrapped in a general container format, which improves accuracy of execution and |
| 35 | +compatibility across various tools and frameworks |
| 36 | + |
| 37 | +## Bug Fix and Performance Improvements: |
| 38 | +1. Purge failed transactions: failed transactions are automatically purged from |
| 39 | +the action pool, ensuring they do not hinder block production. This enhancement |
| 40 | +optimizes network efficacy, reliability, and throughput. |
| 41 | +2. Error handling in EVM module: handles missing transaction logs on contract's |
| 42 | +SelfDestruct() and managing unrecoverable errors effectively, enhancing robustness |
| 43 | +and stability of the system by ensuring that critical errors are properly taken |
| 44 | +care of |
| 45 | + |
| 46 | +## Upgrade Priority |
| 47 | +v2.0.0 comes with a hardfork, so all nodes **must** upgrade in order to keep |
| 48 | +syncing with the IoTeX blockchain |
| 49 | + |
| 50 | +| Node type | Action | |
| 51 | +| ---------- | ------------ | |
| 52 | +| Delegate | Must upgrade | |
| 53 | +| Fullnode | Must upgrade | |
| 54 | +| API node | Must upgrade | |
| 55 | + |
| 56 | +## Important Commits (not a complete list) |
| 57 | +1. [staking] update new staking contract abi [#4326](https://github.com/iotexproject/iotex-core/pull/4326) |
| 58 | +2. [genesis] set Upernavik to activate at Jul-22-2024 00:05:55AM +UTC [#4328](https://github.com/iotexproject/iotex-core/pull/4328) |
| 59 | +3. [ioctl] print action hash when send action [#4323](https://github.com/iotexproject/iotex-core/pull/4323) |
| 60 | +4. [genesis] set default staking contract v2 address & start height for mainnet [#4329](https://github.com/iotexproject/iotex-core/pull/4329) |
| 61 | +5. [api] set candidate id for fetching api [#4324](https://github.com/iotexproject/iotex-core/pull/4324) |
| 62 | +6. [e2etest] add more test [#4322](https://github.com/iotexproject/iotex-core/pull/4322) |
| 63 | +7. more e2etest for native staking migration [#4321](https://github.com/iotexproject/iotex-core/pull/4321) |
| 64 | +8. [ioctl] stake migrate [#4325](https://github.com/iotexproject/iotex-core/pull/4325) |
| 65 | +9. [api] fix estimateGas panic for StakeMigrate [#4320](https://github.com/iotexproject/iotex-core/pull/4320) |
| 66 | +10. transfer back [#4319](https://github.com/iotexproject/iotex-core/pull/4319) |
| 67 | +11. [staking] only validate duplicate candidate id after HF [#4318](https://github.com/iotexproject/iotex-core/pull/4318) |
| 68 | +12. [workingset] purge actpool when run action fails [#4317](https://github.com/iotexproject/iotex-core/pull/4317) |
| 69 | +13. enabling features at Upernavik height [#4309](https://github.com/iotexproject/iotex-core/pull/4309) |
| 70 | +14. revise self stake buckets [#4312](https://github.com/iotexproject/iotex-core/pull/4312) |
| 71 | +15. Enforce legacy endorsement feature ctx [#4315](https://github.com/iotexproject/iotex-core/pull/4315) |
| 72 | +16. add endorsement op but only allow legacy [#4314](https://github.com/iotexproject/iotex-core/pull/4314) |
| 73 | +17. fix a bug in vote reviser [#4313](https://github.com/iotexproject/iotex-core/pull/4313) |
| 74 | +18. return keys for function States [#4311](https://github.com/iotexproject/iotex-core/pull/4311) |
| 75 | +19. [db] Share db for two contract indexer [#4307](https://github.com/iotexproject/iotex-core/pull/4307) |
| 76 | +20. [rewarding] keep both v1 and v2 claimRewardingInterfaceABI for backward compatibility [#4304](https://github.com/iotexproject/iotex-core/pull/4304) |
| 77 | +21. [rewarding] move claim address check to LoadProto() and SanityCheck() |
| 78 | +22. [evm] defer Cancun enabling [#4308](https://github.com/iotexproject/iotex-core/pull/4308) |
| 79 | +23. [action] New MigrateStake Action [#4299](https://github.com/iotexproject/iotex-core/pull/4299) |
| 80 | +24. [staking] enable new staking index [#4305](https://github.com/iotexproject/iotex-core/pull/4305) |
| 81 | +25. [ioctl] make function comment match function names [#4303](https://github.com/iotexproject/iotex-core/pull/4303) |
| 82 | +26. [workingset] remove action from actpool upon tx container unfold error [#4306](https://github.com/iotexproject/iotex-core/pull/4306) |
| 83 | +27. feat(ioctl): del require datasource in ws [#4298](https://github.com/iotexproject/iotex-core/pull/4298) |
| 84 | +28. [action] evm tx container [#4278](https://github.com/iotexproject/iotex-core/pull/4278) |
| 85 | +29. [api] clear candidate selfstake if endorsement expired [#4288](https://github.com/iotexproject/iotex-core/pull/4288) |
| 86 | +30. [staking] ReadState API support Candidate ID [#4276](https://github.com/iotexproject/iotex-core/pull/4276) |
| 87 | +31. [e2etest] add tests for original actions after candidate ownership transfer [#4295](https://github.com/iotexproject/iotex-core/pull/4295) |
| 88 | +32. sign action with chainID [#4294](https://github.com/iotexproject/iotex-core/pull/4294) |
| 89 | +33. [stakingindex] implement indexer for new staking contract [#4237](https://github.com/iotexproject/iotex-core/pull/4237) |
| 90 | +34. [staking] implement staking abi v3 [#4273](https://github.com/iotexproject/iotex-core/pull/4273) |
| 91 | +35. [action]: add unit test for eth tx decode verify [#4291](https://github.com/iotexproject/iotex-core/pull/4291) |
| 92 | +36. [staking] refactor to split staking abi into separate version [#4272](https://github.com/iotexproject/iotex-core/pull/4272) |
| 93 | +37. [staking] refactor statereader to support multiple contract indexers [#4255](https://github.com/iotexproject/iotex-core/pull/4255) |
| 94 | +38. [ioctl] Add stake2 transferownership command [#4250](https://github.com/iotexproject/iotex-core/pull/4250) |
| 95 | +39. [staking] enable CandidateTransferOwnership at CandidateIdentifiedByOwner feature [#4275](https://github.com/iotexproject/iotex-core/pull/4275) |
| 96 | +40. fix some function names [#4286](https://github.com/iotexproject/iotex-core/pull/4286) |
| 97 | +41. use GetIdentifier() instead of Owner for staking [#4245](https://github.com/iotexproject/iotex-core/pull/4245) |
| 98 | +42. [action] add claim reward account [#4277](https://github.com/iotexproject/iotex-core/pull/4277) |
| 99 | +43. Add delegate transfer ownership handler [#4239](https://github.com/iotexproject/iotex-core/pull/4239) |
| 100 | +44. [action] Transfering delegate ownership, add CandidateTransferOwnership [#4236](https://github.com/iotexproject/iotex-core/pull/4236) |
| 101 | +45. chore: fix function names [#4260](https://github.com/iotexproject/iotex-core/pull/4260) |
| 102 | +46. [api] readState support to non-rolldpos mode [#4247](https://github.com/iotexproject/iotex-core/pull/4247) |
| 103 | +47. [action] add GasTipCap and GasFeeCap to AbstractAction [#4252](https://github.com/iotexproject/iotex-core/pull/4252) |
| 104 | +48. [action] use AbstractAction in envelope |
| 105 | +49. [action] add EvmTransaction to represent actions that run in EVM [#4227](https://github.com/iotexproject/iotex-core/pull/4227) |
| 106 | +50. [action] add execution.To() method |
| 107 | +51. move struct cache to blockDAO [#4226](https://github.com/iotexproject/iotex-core/pull/4226) |
| 108 | +52. [evm] use common.Address as map key to reduce byte slice copy/conversion [#4230](https://github.com/iotexproject/iotex-core/pull/4230) |
| 109 | +53. [db] add KvVersioned interface [#4041](https://github.com/iotexproject/iotex-core/pull/4041) |
| 110 | +54. [evm] clean-up [#4225](https://github.com/iotexproject/iotex-core/pull/4225) |
| 111 | +55. [evm] EIP-1153 enable transient storage feature [#4214](https://github.com/iotexproject/iotex-core/pull/4214) |
| 112 | +56. [api] add unit test for coreService [#4213](https://github.com/iotexproject/iotex-core/pull/4213) |
| 113 | +57. [evm] panic on unrecoverable error [#4178](https://github.com/iotexproject/iotex-core/pull/4178) |
| 114 | +58. [evm] panic on duplicate revert version |
| 115 | +59. [test]fix TestHash genesis hash not match mainnet genesis hash [#4190](https://github.com/iotexproject/iotex-core/pull/4190) |
| 116 | +60. [blockindex]: change private to public [#4205](https://github.com/iotexproject/iotex-core/pull/4205) |
| 117 | +61. [evm] rename suicide to selfDestruct [#4215](https://github.com/iotexproject/iotex-core/pull/4215) |
| 118 | +62. [genesis] add Upernavik block height [#4206](https://github.com/iotexproject/iotex-core/pull/4206) |
| 119 | +63. [evm] EVM upgrade to cancun [#4210](https://github.com/iotexproject/iotex-core/pull/4210) |
| 120 | +64. [evm] gate the generation of suicide transaction log [#4198](https://github.com/iotexproject/iotex-core/pull/4198) |
0 commit comments