|
| 1 | +# v1.11.0 Release Note |
| 2 | + |
| 3 | +## Summary |
| 4 | +**v1.11.0 has a hardfork, which will be activated at block height |
| 5 | +24,838,201 (ETA is around 07/20/2023 11pm UTC) on IoTeX mainnet.** |
| 6 | + |
| 7 | +All nodes **must** upgrade to this release, or otherwise the node won't be able |
| 8 | +to sync with the IoTeX blockchain after the activation block. |
| 9 | + |
| 10 | +**Note:** |
| 11 | +You must upgrade to the latest config.yaml and genesis.yaml before re-starting the |
| 12 | +node. These 2 files contain new configurations necessary for v1.11.0 to work correctly. |
| 13 | + |
| 14 | +## Breaking Changes |
| 15 | +v1.11.0 enables 3 important features: |
| 16 | +1. IIP-13 Represent Staking Buckets As Non-fungible Tokens |
| 17 | +2. IIP-14 Account Abstraction |
| 18 | +3. Enforce ChainID in transaction to prevent possible replay |
| 19 | + |
| 20 | +### IIP-13 Represent Staking Buckets As Non-fungible Tokens |
| 21 | +IIP-13 supports native representation of staking buckets as Non-fungible Tokens |
| 22 | +on the IoTeX blockchain, which opens opportunities for applications such as |
| 23 | +Liquid Staking Derivatives (LSD), where these buckets can be traded or used as |
| 24 | +collateral in other DeFi protocols. This in turn increases the overall staking |
| 25 | +ratio and therefore enhances the degrees of security and decentralization of the |
| 26 | +IoTeX blockchain. |
| 27 | + |
| 28 | +### IIP-14 Account Abstraction |
| 29 | +IIP-14 Account abstraction is a ground-breaking proposal that aims to enhance |
| 30 | +the IoTeX platform by abstracting various account operations and properties, |
| 31 | +such as authentication, authorization, replay protection, gas payment, batching, |
| 32 | +and atomicity. IIP-14, based on EIP-4337, makes IoTeX a more user-friendly and |
| 33 | +secure platform, surpassing the limitations of externally owned accounts (EOAs). |
| 34 | +For more information on the implementation details, please refer to our github |
| 35 | +repo [here](https://github.com/iotexproject/account-abstraction-contracts) |
| 36 | + |
| 37 | +### Enforce ChainID in transaction for enhanced transaction security |
| 38 | +In v1.8 release, we added ChainID into transaction to distinguish transactions on |
| 39 | +different networks. In this v1.11 release, the additional constraint is enforced |
| 40 | +that each transaction must bear with it the correct ChainID (1 for mainnet, and 2 |
| 41 | +for testnet), and the default ChainID value 0 will be rejected. This would further |
| 42 | +enhance the security of the IoTeX blockchain. |
| 43 | + |
| 44 | +## Other Improvements |
| 45 | +v1.11 release also comes with a couple of small improvements: |
| 46 | +1. Added an `ioctl bc delegate` command to retrieve the detailed info of a delegate |
| 47 | +2. Added summary about the node status into console log output |
| 48 | +3. Enabled message batch in API service to improving network data efficiency |
| 49 | +4. Added an `ioctl did service` command |
| 50 | +5. Added system action validation step in the block validation process |
| 51 | + |
| 52 | +## Upgrade Priority |
| 53 | +v1.11.0 comes with a hardfork, so all nodes **must** upgrade in order to keep |
| 54 | +syncing with the IoTeX blockchain |
| 55 | + |
| 56 | +| Node type | Action | |
| 57 | +| ---------- | ------------ | |
| 58 | +| Delegate | Must upgrade | |
| 59 | +| Fullnode | Must upgrade | |
| 60 | + |
| 61 | +## Important Commits (not a complete list) |
| 62 | +1. [genesis] set Quebec to activate at 07-12-2023 11pm UTC [#3895](https://github.com/iotexproject/iotex-core/pull/3895) |
| 63 | +2. [chainservice] check SystemStakingContract and SystemSGDContract address [#3896](https://github.com/iotexproject/iotex-core/pull/3896) |
| 64 | +3. [iip-13] set mainnet contract address and height [#3894](https://github.com/iotexproject/iotex-core/pull/3894) |
| 65 | +4. [ioctl] add bc delegate command [#3891](https://github.com/iotexproject/iotex-core/pull/3891) |
| 66 | +5. [contract_indexer] improve robustness [#3892](https://github.com/iotexproject/iotex-core/pull/3892) |
| 67 | +6. Process batch serialise concurrently [#3877](https://github.com/iotexproject/iotex-core/pull/3877) |
| 68 | +7. [contract_indexer] fix vote bug when change delegate [#3888](https://github.com/iotexproject/iotex-core/pull/3888) |
| 69 | +8. [contract_indexer] fix transfer event handling [#3887](https://github.com/iotexproject/iotex-core/pull/3887) |
| 70 | +9. Log summary about the node status [#3870](https://github.com/iotexproject/iotex-core/pull/3870) |
| 71 | +10. [api] ReadStateBucketByIndices return existing buckets [#3878](https://github.com/iotexproject/iotex-core/pull/3878) |
| 72 | +11. [iip-13] contract indexer handle BucketExpanded event [#3881](https://github.com/iotexproject/iotex-core/pull/3881) |
| 73 | +12. [staking] fix readStateCandidates returning empty [#3882](https://github.com/iotexproject/iotex-core/pull/3882) |
| 74 | +13. [staking] validate address of contract indexer [#3874](https://github.com/iotexproject/iotex-core/pull/3874) |
| 75 | +14. [staking] add BucketTypes web3 api [#3876](https://github.com/iotexproject/iotex-core/pull/3876) |
| 76 | +15. implement composite buckets web3 api [#3875](https://github.com/iotexproject/iotex-core/pull/3875) |
| 77 | +16. [actpool] forbid processing system action [#3867](https://github.com/iotexproject/iotex-core/pull/3867) |
| 78 | +17. [iip-15] sgd indexer to ignore block less than start height [#3873](https://github.com/iotexproject/iotex-core/pull/3873) |
| 79 | +18. [iip-15] sgdRegistry implementation [#3845](https://github.com/iotexproject/iotex-core/pull/3845) |
| 80 | +19. [blockdao] introduce blockindexer with start height [#3869](https://github.com/iotexproject/iotex-core/pull/3869) |
| 81 | +20. [IIP-13] contract indexer ignore blocks lower than height of contract deployment [#3868](https://github.com/iotexproject/iotex-core/pull/3868) |
| 82 | +21. [config] enforce correct chainID and enable IIP-13 at Quebec height [#3866](https://github.com/iotexproject/iotex-core/pull/3866) |
| 83 | +22. [IIP-13] enable contract staking indexer [#3865](https://github.com/iotexproject/iotex-core/pull/3865) |
| 84 | +23. [IIP-13] combine native and LSD buckets [#3859](https://github.com/iotexproject/iotex-core/pull/3859) |
| 85 | +24. [IIP-13] handle contract staking events to store buckets into index [#3863](https://github.com/iotexproject/iotex-core/pull/3863) |
| 86 | +25. [IIP-13] introduce read contract staking buckets [#3862](https://github.com/iotexproject/iotex-core/pull/3862) |
| 87 | +26. [IIP-13] contract staking struct definition [#3861](https://github.com/iotexproject/iotex-core/pull/3861) |
| 88 | +27. [api] Enable message batching [#3857](https://github.com/iotexproject/iotex-core/pull/3857) |
| 89 | +28. [iip-15] Sharing gas-fee for DApps [#3844](https://github.com/iotexproject/iotex-core/pull/3844) |
| 90 | +29. [IIP-13] Combine native and liquid stake votes [#3855](https://github.com/iotexproject/iotex-core/pull/3855) |
| 91 | +30. unitest for iip15-manager contract [#3850](https://github.com/iotexproject/iotex-core/pull/3850) |
| 92 | +31. [context] remove EnableWeb3Rewarding flag [#3852](https://github.com/iotexproject/iotex-core/pull/3852) |
| 93 | +32. [context] remove FixRewardErroCheckPosition flag [#3851](https://github.com/iotexproject/iotex-core/pull/3851) |
| 94 | +33. [ioctl] add did service command [#3848](https://github.com/iotexproject/iotex-core/pull/3848) |
| 95 | +34. refactor did ioctl to new resolver [#3841](https://github.com/iotexproject/iotex-core/pull/3841) |
| 96 | +35. [state] validate system action layout [#3838](https://github.com/iotexproject/iotex-core/pull/3838) |
| 97 | +36. [state] fix test and speedup validation [#3842](https://github.com/iotexproject/iotex-core/pull/3842) |
| 98 | +37. [api] ServerV2.Stop() use correct context [#3837](https://github.com/iotexproject/iotex-core/pull/3837) |
0 commit comments