Releases: iotexproject/iotex-core
v2.0.6
This version mainly focuses on some performance optimizations and issue fixes for the API node, and delegate nodes do not need to upgrade.
Full Changelog: v2.0.5...v2.0.6
v2.0.5
Full Changelog: v2.0.4...v2.0.5
v2.0.4
Summary
v2.0.4 is also an maintenance release after the latest release v2.0.3. It
comes with two API fixes.
Bug Fix and Performance Improvements:
- [API] increase limit for
eth_subscribe
(#4374) - [API] fix estimateGas for migrateStake transaction (#4377)
Upgrade Priority
v2.0.4 does not have a hardfork, but contains an API fix.
All API nodes are recommended to upgrade to v2.0.4 in order to provide the most
up-to-date results and service
Node type | Action |
---|---|
Delegate | Not required |
Fullnode | Not required |
API node | Recommended |
Important Commits (not a complete list)
v2.0.3
Summary
v2.0.3 is also an maintenance release after the latest release v2.0.0. It
comes with an API fix.
Bug Fix and Performance Improvements:
- fix logs mismatched in
eth_getLogs
API
Upgrade Priority
v2.0.3 does not have a hardfork, but contains an API fix.
All API nodes are recommended to upgrade to v2.0.3 in order to provide the most
up-to-date results and service
Node type | Action |
---|---|
Delegate | Not required |
Fullnode | Not required |
API node | Recommended |
Important Commits (not a complete list)
- [api] Fix parsing of log filter #4376
v2.0.2
Summary
v2.0.2 is the second maintenance release after the latest release v2.0.0. It comes with an API fix to return correct number of total votes for delegate, and two ioctl command improvements.
Bug Fix and Performance Improvements:
- Corrected delegate's total votes for ioctl and API query.
- Fixed the issue that certain ioctl commands are missing transaction hash in the send result display.
- Showed delegate's ID in
ioctl bc delegate
command output.
Upgrade Priority
v2.0.2 does not have a hardfork, but contains several API and ioctl command fixes. All API nodes are recommended to upgrade to v2.0.2 in order to provide the most up-to-date results and service
Node type | Action |
---|---|
Delegate | Not required |
Fullnode | Not required |
API node | Recommended |
Important Commits (not a complete list)
v2.0.1
v2.0.1 Release Note
Summary
v2.0.1 is the first maintenance release after the latest release v2.0.0. It comes with several API fixes to maintain backward-compatibility with existing ioPay and web staking portal.
Bug Fix and Performance Improvements:
- Corrected return data of readCandidates API to maintain backward-compatibility with existing ioPay and web staking portal.
- Fixed the issue of log loss when querying the latest logs by eth_getLogs.
- Fixed the issue of not cleaning up the self-stake bucket after the bucket is unstaked.
- Fixed invalid contract address causing SimulateExecution to panic.
Upgrade Priority
v2.0.1 does not have a hardfork, but contains several API fixes. All API nodes are recommended to upgrade to v2.0.1 in order to provide the best up-to-date service
Node type | Action |
---|---|
Delegate | Not required |
Fullnode | Not required |
API node | Recommended |
Important Commits
- [api] correct candidate selfstake in api #4335
- [api] fix inaccurate result of getLogs #4334
- [evm] fix invalid contract address causing SimulateExecution panic #4333
- [staking] candidates v1 compatability #4332
Full Changelog: v2.0.0...v2.0.1
v2.0.0
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
- New NFT staking contract: introducing a new NFT staking contract that offers users enhanced flexibility and reduced constraints when staking their tokens
- 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
- Delegate ownership transfer: delegates now have the option to transfer their ownership to newcomer, providing a streamlined process for management changes
- 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:
- 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.
- 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)
- [staking] update new staking contract abi #4326
- [genesis] set Upernavik to activate at Jul-22-2024 00:05:55AM +UTC #4328
- [ioctl] print action hash when send action #4323
- [genesis] set default staking contract v2 address & start height for mainnet #4329
- [api] set candidate id for fetching api #4324
- [e2etest] add more test #4322
- more e2etest for native staking migration #4321
- [ioctl] stake migrate #4325
- [api] fix estimateGas panic for StakeMigrate #4320
- transfer back #4319
- [staking] only validate duplicate candidate id after HF #4318
- [workingset] purge actpool when run action fails #4317
- enabling features at Upernavik height #4309
- revise self stake buckets #4312
- Enforce legacy endorsement feature ctx #4315
- add endorsement op but only allow legacy #4314
- fix a bug in vote reviser #4313
- return keys for function States #4311
- [db] Share db for two contract indexer #4307
- [rewarding] keep both v1 and v2 claimRewardingInterfaceABI for backward compatibility #4304
- [rewarding] move claim address check to LoadProto() and SanityCheck()
- [evm] defer Cancun enabling #4308
- [action] New MigrateStake Action #4299
- [staking] enable new staking index #4305
- [ioctl] make function comment match function names #4303
- [workingset] remove action from actpool upon tx container unfold error #4306
- feat(ioctl): del require datasource in ws #4298
- [action] evm tx container #4278
- [api] clear candidate selfstake if endorsement expired #4288
- [staking] ReadState API support Candidate ID #4276
- [e2etest] add tests for original actions after candidate ownership transfer #4295
- sign action with chainID #4294
- [stakingindex] implement indexer for new staking contract #4237
- [staking] implement staking abi v3 #4273
- [action]: add unit test for eth tx decode verify #4291
- [staking] refactor to split staking abi into separate version #4272
- [staking] refactor statereader to support multiple contract indexers #4255
- [ioctl] Add stake2 transferownership command #4250
- [staking] enable CandidateTransferOwnership at CandidateIdentifiedByOwner feature #4275
- fix some function names #4286
- use GetIdentifier() instead of Owner for staking #4245
- [action] add claim reward account #4277
- Add delegate transfer ownership handler #4239
- [action] Transfering delegate ownership, add CandidateTransferOwnership #4236
- chore: fix function names #4260
- [api] readState support to non-rolldpos mode #4247
- [action] add GasTipCap and GasFeeCap to AbstractAction #4252
- [action] use AbstractAction in envelope
- [action] add EvmTransaction to represent actions that run in EVM #4227
- [action] add execution.To() method
- move struct cache to blockDAO #4226
- [evm] use common.Address as map key to reduce byte slice copy/conversion #4230
- [db] add KvVersioned interface #4041
- [evm] clean-up #4225
- [evm] EIP-1153 enable transient storage feature #4214
- [api] add unit test for coreService #4213
- [evm] panic on unrecoverable error #4178
- [evm] panic on duplicate revert version
- [test]fix TestHash genesis hash not match mainnet genesis hash #4190
- [blockindex]: change private to public #4205
- [evm] rename suicide to selfDestruct #4215
- [genesis] add Upernavik block height #4206
- [evm] EVM upgrade to cancun #4210
- [evm] gate the generation of suicide transaction log #4198
v1.14.2
Summary
v1.14.2 comes with new feature for ioID function.
Bug Fix and Performance Improvements:
- fixed an issue of not properly closing file.
New Features and Enhancements
- Added new function to set project name for the
ioctl ioid
commandline tool.
Upgrade Priority
v1.14.2 release is primarily for the new ioctl ioid
command. Delegate nodes and API nodes are not required to upgrade to v1.14.2
Node type | Action |
---|---|
Delegate | Not required |
Fullnode | Not required |
API node | Not required |
Important Commits (not a complete list)
v1.14.1
Summary
v1.14.1 is the first maintenance release after the latest release v1.14.0. It comes with enhancements across various components such as blockdao, staking, API. Also, ioctl commandline tool has a fresh upgrade that supports two new powerful functions: ioID and w3bstream. The ioID function enables seamless integration and management of decentralized identities on the IoTeX blockchain. The w3bstream functions allows for efficient management of w3bstream project on the chain, from project creation, device registration, to message operation and prover management.
Bug Fix and Performance Improvements:
- bumped go version to 1.21
- Resolved an issue where the blockdao process could become unresponsive while checking the indexer. This fix ensures that the node process can receive the break signal and exit if needed.
- Fixed an issue where the response ID type in the JSON-RPC API did not match the request type. This ensures consistency and reliability in web3js API.
- Enhanced the deserialization process when retrieving block receipts, resulting in faster access and improved overall performance of the blockdao component.
- Fixed wrong cache for API readState at tip height, now the cache always returns most accurate and latest result.
New Features and Enhancements
- Added endorsement details to the bucket fetch APIs, providing more comprehensive information for stakeholders and improving transparency within the staking process.
- Implemented rate limiting for the WebSocket API to prevent abuse and ensure fair usage. This enhancement protects the network from potential overload and improves service stability.
- Enabled the ToEthTx function for grantReward action, allowing it to be processed as an Ethereum-compatible transaction. This improvement facilitates interoperability and expands the utility of the IoTeX blockchain.
- Added 2 new commands
ioid
andws
to ioctl commandline tool. Enables the ioID management and w3bstream project functions.
Upgrade Priority
v1.14.1 does not have a hardfork, but contains several bug fixes, performance improvements, and new feature enhancements. All delegate nodes and API nodes are recommended to upgrade to v1.14.1 in order to provide the best up-to-date service
Node type | Action |
---|---|
Delegate | Recommended |
Fullnode | Not required |
API node | Recommended |
Important Commits (not a complete list)
- [ioctl] Add CandidateEndorsement and CandidateActivate action #4194
- [blockdao] Fix program unstopable when blockdao is checking indexer #4217
- [blockdao] Optimize derialization when retrieving receipts #4221
- [staking] Add endorsement info in bucket fetch apis #4207
- [api] Support for tracer and tracerConfig in debug_traceTransaction API #4216
- [api] fix JsonRPC api response id type doesn't match request type #4168
- [api] Add ratelimit for websocket API #4031
- [action] Add grantReward ToEthTx() #4047
- [api] Fix wrong cache for api readState at tip height #4253
- feat(wsctl): add project configuration cmd #4195
- [ioctl]: update ws project format #4224
- feat(ioctl/ws): sync latest w3bstream contract abis and generate go code #4279
- [ioctl][ws][#2] add w3bstream contracts address configurations #4280
- [ioctl][ws][#3] project sub command to support interaction with ws contracts #4281
- [ioctl][ws][#4] prover sub commands to support interaction with ws contracts #4282
- [ioctl][ws][#5] project device sub commands to support interaction with ws contracts #4283
- [ioctl][ioid][#1] ioid sub commands #4284
- [ioctl][ws] update ws default value #4285
v1.14.0
Summary
v1.14.0 has a hardfork, which will be activated at block height 29,275,561
(ETA is around 04/03/2024 00:52:05 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 v1.14.0 image.
Version 1.14.0 has enabled two significant new features: IIP-24 Raise Block Gas
Limit to 50M and IIP-25 delegate endorsement.
With IIP-24, the block gas limit has now been raised to 50M, greatly enhancing
the processing capabilities of the IoTeX blockchain while ensuring its stability.
This enhancement allows the blockchain to achieve a maximum of 1000 TPS
(transactions per second), significantly speeding up transaction processing on
the blockchain, especially during times of network congestion.
The activation of IIP-25 introduces a novel governance model: it allows big
stakeholder to create a bucket for endorsing delegate. This would make delegate
management more flexible and encourage more enthusiastic projects to become IoTeX
delegates and actively participate in the IoTeX network operation, thereby
fostering the inclusivity of the IoTeX network and enhancing the diversity of the
ecosystem.
Other Improvements
v1.14.0 release also comes with a couple of improvements:
- Improved performance for DB snapshot operation
- Enabled web3js format for CandidateActivate and CandidateEndorsement
- Make action pick order deterministic
- Added more unit tests and end-to-end tests
Upgrade Priority
v1.14.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)
- [tools] fix readme typos #4199
- feat(api): add unit test for coreService #4193
- feat(wsctl): add project configuration cmd #4195
- [staking] testing endorsed bucket with existing staking actions #4186
- use buffered channel #4197
- feat(api): fix overflow in coreservice #4192
- test: add unit test for module blockdao #4182
- add e2etest for refactor fresh account conversion #4184
- [context] enable delegate endorsement and refactor fresh account conversion at Tsunami height #4188
- [staking] reject endorse action before HF activated #4187
- [staking] Cannot withdraw endorsement if it is withdrawing #4179
- [genesis] raise block gas limit to 50M starting Tsunami height #4181
- [genesis] add Tsunami block height #4180
- [account] revert ConvertFreshAccountToZeroNonceType func #4163
- [evm] add transaction log for Suicide() #4171
- [actpool] deterministic action pick order #4175
- [api] remove height check for message batcher #4176
- [action] Web3 for CandidateActivate and CandidateEndorsement #4140
- clean up blockdao #4164
- [staking] Candidate Register without Staking #4059
- [staking] ActiveCandidate Exclude Candidate with Expired Endorsement #4062
- [blockchain] add uni tests for runnable.go #4172
- [staking] Fix typo error #4173
- [staking] Cannot ChangeCandidate when Bucket is Endorsed #4133
- [api] get method return msg #4142
- [staking] Cannot Unstake if Bucket is Endorsed #4134
- [db] Remove duplicate keys when WriteBatch #4155
- fix test #4165
- reset only if snapshots size exceed 10 #4152
- [evm] add transient storage #4151
- [staking] Replace ContainsSelfStakingBucket with isSelfStakeBucket #4139
- add test #4138
- [db] ResetSnapshots() performance improvement #4153
- test(contractstaking): add unit tests #4126
- update tests for rlp_tx.go #4145
- feat(test): add unit test web3server_utils #4146
- sgdindexer performance improvement #4148
- [api] verify received tx hash is correct #4074
- add test for actionByPrice #4135
- fix benchmark #4127
- [genesis] test coverage #4125
- feat(test): add web3server unit test #4131
- [staking] Handling CandidateEndorsement Action #4020
- [staking] CandidateCenter Support for Missing and Changes of Self-Stake Bucket #4060
- [staking] Handling CandidateActivate Action #4011
- [refactor] Add bucket validation util functions #4019
- [staking] Implement Endorsement Statemanager #4018