v1.11.0
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:
- IIP-13 Represent Staking Buckets As Non-fungible Tokens
- IIP-14 Account Abstraction
- 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:
- Added an
ioctl bc delegate
command to retrieve the detailed info of a delegate - Added summary about the node status into console log output
- Enabled message batch in API service to improving network data efficiency
- Added an
ioctl did service
command - 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)
- [genesis] set Quebec to activate at 07-12-2023 11pm UTC #3895
- [chainservice] check SystemStakingContract and SystemSGDContract address #3896
- [iip-13] set mainnet contract address and height #3894
- [ioctl] add bc delegate command #3891
- [contract_indexer] improve robustness #3892
- Process batch serialise concurrently #3877
- [contract_indexer] fix vote bug when change delegate #3888
- [contract_indexer] fix transfer event handling #3887
- Log summary about the node status #3870
- [api] ReadStateBucketByIndices return existing buckets #3878
- [iip-13] contract indexer handle BucketExpanded event #3881
- [staking] fix readStateCandidates returning empty #3882
- [staking] validate address of contract indexer #3874
- [staking] add BucketTypes web3 api #3876
- implement composite buckets web3 api #3875
- [actpool] forbid processing system action #3867
- [iip-15] sgd indexer to ignore block less than start height #3873
- [iip-15] sgdRegistry implementation #3845
- [blockdao] introduce blockindexer with start height #3869
- [IIP-13] contract indexer ignore blocks lower than height of contract deployment #3868
- [config] enforce correct chainID and enable IIP-13 at Quebec height #3866
- [IIP-13] enable contract staking indexer #3865
- [IIP-13] combine native and LSD buckets #3859
- [IIP-13] handle contract staking events to store buckets into index #3863
- [IIP-13] introduce read contract staking buckets #3862
- [IIP-13] contract staking struct definition #3861
- [api] Enable message batching #3857
- [iip-15] Sharing gas-fee for DApps #3844
- [IIP-13] Combine native and liquid stake votes #3855
- unitest for iip15-manager contract #3850
- [context] remove EnableWeb3Rewarding flag #3852
- [context] remove FixRewardErroCheckPosition flag #3851
- [ioctl] add did service command #3848
- refactor did ioctl to new resolver #3841
- [state] validate system action layout #3838
- [state] fix test and speedup validation #3842
- [api] ServerV2.Stop() use correct context #3837