Skip to content

v1.11.0

Compare
Choose a tag to compare
@github-actions github-actions released this 05 Jul 22:08
· 396 commits to master since this release
020f965

Summary

Version 1.11.0 includes a hardfork that will be activated on the IoTeX mainnet at block height 24,838,201 (ETA approximately 07/20/2023 11pm UTC). It is imperative that all nodes upgrade to this release. Failure to do so will result in the inability to sync with the IoTeX blockchain after the activation block.

Note:
Prior to restarting the node, you must upgrade to the latest config.yaml file. It contain new configurations required for v1.11.0 to function properly.

Instructions for configuring a node can be found here: https://github.com/iotexproject/iotex-bootstrap#join-mainnet

Breaking Changes

v1.11.0 enables 3 important features:

  1. IIP-13 Represent Staking Buckets As Non-fungible Tokens
  2. IIP-14 Account Abstraction
  3. Enforce ChainID in transaction to prevent possible replay

IIP-13 Represent Staking Buckets As Non-fungible Tokens

IIP-13 supports native representation of staking buckets as Non-fungible Tokens
on the IoTeX blockchain, which opens opportunities for applications such as
Liquid Staking Derivatives (LSD), where these buckets can be traded or used as
collateral in other DeFi protocols. This in turn increases the overall staking
ratio and therefore enhances the degrees of security and decentralization of the
IoTeX blockchain.

IIP-14 Account Abstraction

IIP-14 Account abstraction is a ground-breaking proposal that aims to enhance
the IoTeX platform by abstracting various account operations and properties,
such as authentication, authorization, replay protection, gas payment, batching,
and atomicity. IIP-14, based on EIP-4337, makes IoTeX a more user-friendly and
secure platform, surpassing the limitations of externally owned accounts (EOAs).
For more information on the implementation details, please refer to ​our github
repo here

Enforce ChainID in transaction for enhanced transaction security

In v1.8 release, we added ChainID into transaction to distinguish transactions on
different networks. In this v1.11 release, the additional constraint is enforced
that each transaction must bear with it the correct ChainID (1 for mainnet, and 2
for testnet), and the default ChainID value 0 will be rejected. This would further
enhance the security of the IoTeX blockchain.

Other Improvements

v1.11 release also comes with a couple of small improvements:

  1. Added an ioctl bc delegate command to retrieve the detailed info of a delegate
  2. Added summary about the node status into console log output
  3. Enabled message batch in API service to improving network data efficiency
  4. Added an ioctl did service command
  5. Added system action validation step in the block validation process

Upgrade Priority

v1.11.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

Important Commits (not a complete list)

  1. [genesis] set Quebec to activate at 07-12-2023 11pm UTC #3895
  2. [chainservice] check SystemStakingContract and SystemSGDContract address #3896
  3. [iip-13] set mainnet contract address and height #3894
  4. [ioctl] add bc delegate command #3891
  5. [contract_indexer] improve robustness #3892
  6. Process batch serialise concurrently #3877
  7. [contract_indexer] fix vote bug when change delegate #3888
  8. [contract_indexer] fix transfer event handling #3887
  9. Log summary about the node status #3870
  10. [api] ReadStateBucketByIndices return existing buckets #3878
  11. [iip-13] contract indexer handle BucketExpanded event #3881
  12. [staking] fix readStateCandidates returning empty #3882
  13. [staking] validate address of contract indexer #3874
  14. [staking] add BucketTypes web3 api #3876
  15. implement composite buckets web3 api #3875
  16. [actpool] forbid processing system action #3867
  17. [iip-15] sgd indexer to ignore block less than start height #3873
  18. [iip-15] sgdRegistry implementation #3845
  19. [blockdao] introduce blockindexer with start height #3869
  20. [IIP-13] contract indexer ignore blocks lower than height of contract deployment #3868
  21. [config] enforce correct chainID and enable IIP-13 at Quebec height #3866
  22. [IIP-13] enable contract staking indexer #3865
  23. [IIP-13] combine native and LSD buckets #3859
  24. [IIP-13] handle contract staking events to store buckets into index #3863
  25. [IIP-13] introduce read contract staking buckets #3862
  26. [IIP-13] contract staking struct definition #3861
  27. [api] Enable message batching #3857
  28. [iip-15] Sharing gas-fee for DApps #3844
  29. [IIP-13] Combine native and liquid stake votes #3855
  30. unitest for iip15-manager contract #3850
  31. [context] remove EnableWeb3Rewarding flag #3852
  32. [context] remove FixRewardErroCheckPosition flag #3851
  33. [ioctl] add did service command #3848
  34. refactor did ioctl to new resolver #3841
  35. [state] validate system action layout #3838
  36. [state] fix test and speedup validation #3842
  37. [api] ServerV2.Stop() use correct context #3837