Skip to content

Releases: iotexproject/iotex-core

v2.0.4

03 Sep 03:59
Compare
Choose a tag to compare

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:

  1. [API] increase limit for eth_subscribe (#4374)
  2. [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)

  1. [API] increase api listener limit #4374
  2. [api] fix estimateGas for migrateStake #4377

v2.0.3

26 Aug 05:49
Compare
Choose a tag to compare

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:

  1. 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)

  1. [api] Fix parsing of log filter #4376

v2.0.2

30 Jul 04:32
Compare
Choose a tag to compare

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:

  1. Corrected delegate's total votes for ioctl and API query.
  2. Fixed the issue that certain ioctl commands are missing transaction hash in the send result display.
  3. 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)

  1. [ioctl] add ID into candidate display #4348
  2. [ioctl] print act hash when execute act #4347
  3. [api] Fix nft bucket votes counting #4346

v2.0.1

19 Jul 04:25
Compare
Choose a tag to compare

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:

  1. Corrected return data of readCandidates API to maintain backward-compatibility with existing ioPay and web staking portal.
  2. Fixed the issue of log loss when querying the latest logs by eth_getLogs.
  3. Fixed the issue of not cleaning up the self-stake bucket after the bucket is unstaked.
  4. 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

  1. [api] correct candidate selfstake in api #4335
  2. [api] fix inaccurate result of getLogs #4334
  3. [evm] fix invalid contract address causing SimulateExecution panic #4333
  4. [staking] candidates v1 compatability #4332

Full Changelog: v2.0.0...v2.0.1

v2.0.0

11 Jul 18:27
Compare
Choose a tag to compare

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

  1. New NFT staking contract: introducing a new NFT staking contract that offers users enhanced flexibility and reduced constraints when staking their tokens
  2. 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
  3. Delegate ownership transfer: delegates now have the option to transfer their ownership to newcomer, providing a streamlined process for management changes
  4. 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:

  1. 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.
  2. 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)

  1. [staking] update new staking contract abi #4326
  2. [genesis] set Upernavik to activate at Jul-22-2024 00:05:55AM +UTC #4328
  3. [ioctl] print action hash when send action #4323
  4. [genesis] set default staking contract v2 address & start height for mainnet #4329
  5. [api] set candidate id for fetching api #4324
  6. [e2etest] add more test #4322
  7. more e2etest for native staking migration #4321
  8. [ioctl] stake migrate #4325
  9. [api] fix estimateGas panic for StakeMigrate #4320
  10. transfer back #4319
  11. [staking] only validate duplicate candidate id after HF #4318
  12. [workingset] purge actpool when run action fails #4317
  13. enabling features at Upernavik height #4309
  14. revise self stake buckets #4312
  15. Enforce legacy endorsement feature ctx #4315
  16. add endorsement op but only allow legacy #4314
  17. fix a bug in vote reviser #4313
  18. return keys for function States #4311
  19. [db] Share db for two contract indexer #4307
  20. [rewarding] keep both v1 and v2 claimRewardingInterfaceABI for backward compatibility #4304
  21. [rewarding] move claim address check to LoadProto() and SanityCheck()
  22. [evm] defer Cancun enabling #4308
  23. [action] New MigrateStake Action #4299
  24. [staking] enable new staking index #4305
  25. [ioctl] make function comment match function names #4303
  26. [workingset] remove action from actpool upon tx container unfold error #4306
  27. feat(ioctl): del require datasource in ws #4298
  28. [action] evm tx container #4278
  29. [api] clear candidate selfstake if endorsement expired #4288
  30. [staking] ReadState API support Candidate ID #4276
  31. [e2etest] add tests for original actions after candidate ownership transfer #4295
  32. sign action with chainID #4294
  33. [stakingindex] implement indexer for new staking contract #4237
  34. [staking] implement staking abi v3 #4273
  35. [action]: add unit test for eth tx decode verify #4291
  36. [staking] refactor to split staking abi into separate version #4272
  37. [staking] refactor statereader to support multiple contract indexers #4255
  38. [ioctl] Add stake2 transferownership command #4250
  39. [staking] enable CandidateTransferOwnership at CandidateIdentifiedByOwner feature #4275
  40. fix some function names #4286
  41. use GetIdentifier() instead of Owner for staking #4245
  42. [action] add claim reward account #4277
  43. Add delegate transfer ownership handler #4239
  44. [action] Transfering delegate ownership, add CandidateTransferOwnership #4236
  45. chore: fix function names #4260
  46. [api] readState support to non-rolldpos mode #4247
  47. [action] add GasTipCap and GasFeeCap to AbstractAction #4252
  48. [action] use AbstractAction in envelope
  49. [action] add EvmTransaction to represent actions that run in EVM #4227
  50. [action] add execution.To() method
  51. move struct cache to blockDAO #4226
  52. [evm] use common.Address as map key to reduce byte slice copy/conversion #4230
  53. [db] add KvVersioned interface #4041
  54. [evm] clean-up #4225
  55. [evm] EIP-1153 enable transient storage feature #4214
  56. [api] add unit test for coreService #4213
  57. [evm] panic on unrecoverable error #4178
  58. [evm] panic on duplicate revert version
  59. [test]fix TestHash genesis hash not match mainnet genesis hash #4190
  60. [blockindex]: change private to public #4205
  61. [evm] rename suicide to selfDestruct #4215
  62. [genesis] add Upernavik block height #4206
  63. [evm] EVM upgrade to cancun #4210
  64. [evm] gate the generation of suicide transaction log #4198

v1.14.2

06 Jun 17:38
Compare
Choose a tag to compare

Summary

v1.14.2 comes with new feature for ioID function.

Bug Fix and Performance Improvements:

  1. fixed an issue of not properly closing file.

New Features and Enhancements

  1. 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)

  1. [patchstore] fix close files #4268
  2. Update README.md #4269
  3. refactor ioID cmd #4287
  4. [ioctl] ioID setName #4293

v1.14.1

30 May 22:24
Compare
Choose a tag to compare

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:

  1. bumped go version to 1.21
  2. 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.
  3. 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.
  4. Enhanced the deserialization process when retrieving block receipts, resulting in faster access and improved overall performance of the blockdao component.
  5. Fixed wrong cache for API readState at tip height, now the cache always returns most accurate and latest result.

New Features and Enhancements

  1. Added endorsement details to the bucket fetch APIs, providing more comprehensive information for stakeholders and improving transparency within the staking process.
  2. 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.
  3. 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.
  4. Added 2 new commands ioid and ws 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)

  1. [ioctl] Add CandidateEndorsement and CandidateActivate action #4194
  2. [blockdao] Fix program unstopable when blockdao is checking indexer #4217
  3. [blockdao] Optimize derialization when retrieving receipts #4221
  4. [staking] Add endorsement info in bucket fetch apis #4207
  5. [api] Support for tracer and tracerConfig in debug_traceTransaction API #4216
  6. [api] fix JsonRPC api response id type doesn't match request type #4168
  7. [api] Add ratelimit for websocket API #4031
  8. [action] Add grantReward ToEthTx() #4047
  9. [api] Fix wrong cache for api readState at tip height #4253
  10. feat(wsctl): add project configuration cmd #4195
  11. [ioctl]: update ws project format #4224
  12. feat(ioctl/ws): sync latest w3bstream contract abis and generate go code #4279
  13. [ioctl][ws][#2] add w3bstream contracts address configurations #4280
  14. [ioctl][ws][#3] project sub command to support interaction with ws contracts #4281
  15. [ioctl][ws][#4] prover sub commands to support interaction with ws contracts #4282
  16. [ioctl][ws][#5] project device sub commands to support interaction with ws contracts #4283
  17. [ioctl][ioid][#1] ioid sub commands #4284
  18. [ioctl][ws] update ws default value #4285

v1.14.0

25 Mar 14:06
Compare
Choose a tag to compare

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:

  1. Improved performance for DB snapshot operation
  2. Enabled web3js format for CandidateActivate and CandidateEndorsement
  3. Make action pick order deterministic
  4. 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)

  1. [tools] fix readme typos #4199
  2. feat(api): add unit test for coreService #4193
  3. feat(wsctl): add project configuration cmd #4195
  4. [staking] testing endorsed bucket with existing staking actions #4186
  5. use buffered channel #4197
  6. feat(api): fix overflow in coreservice #4192
  7. test: add unit test for module blockdao #4182
  8. add e2etest for refactor fresh account conversion #4184
  9. [context] enable delegate endorsement and refactor fresh account conversion at Tsunami height #4188
  10. [staking] reject endorse action before HF activated #4187
  11. [staking] Cannot withdraw endorsement if it is withdrawing #4179
  12. [genesis] raise block gas limit to 50M starting Tsunami height #4181
  13. [genesis] add Tsunami block height #4180
  14. [account] revert ConvertFreshAccountToZeroNonceType func #4163
  15. [evm] add transaction log for Suicide() #4171
  16. [actpool] deterministic action pick order #4175
  17. [api] remove height check for message batcher #4176
  18. [action] Web3 for CandidateActivate and CandidateEndorsement #4140
  19. clean up blockdao #4164
  20. [staking] Candidate Register without Staking #4059
  21. [staking] ActiveCandidate Exclude Candidate with Expired Endorsement #4062
  22. [blockchain] add uni tests for runnable.go #4172
  23. [staking] Fix typo error #4173
  24. [staking] Cannot ChangeCandidate when Bucket is Endorsed #4133
  25. [api] get method return msg #4142
  26. [staking] Cannot Unstake if Bucket is Endorsed #4134
  27. [db] Remove duplicate keys when WriteBatch #4155
  28. fix test #4165
  29. reset only if snapshots size exceed 10 #4152
  30. [evm] add transient storage #4151
  31. [staking] Replace ContainsSelfStakingBucket with isSelfStakeBucket #4139
  32. add test #4138
  33. [db] ResetSnapshots() performance improvement #4153
  34. test(contractstaking): add unit tests #4126
  35. update tests for rlp_tx.go #4145
  36. feat(test): add unit test web3server_utils #4146
  37. sgdindexer performance improvement #4148
  38. [api] verify received tx hash is correct #4074
  39. add test for actionByPrice #4135
  40. fix benchmark #4127
  41. [genesis] test coverage #4125
  42. feat(test): add web3server unit test #4131
  43. [staking] Handling CandidateEndorsement Action #4020
  44. [staking] CandidateCenter Support for Missing and Changes of Self-Stake Bucket #4060
  45. [staking] Handling CandidateActivate Action #4011
  46. [refactor] Add bucket validation util functions #4019
  47. [staking] Implement Endorsement Statemanager #4018

v1.13.1

08 Mar 20:42
Compare
Choose a tag to compare

Summary

v1.13.1 is the first maintenance release after the latest release v1.13.0. It comes with a bug fix and improvement of ioctl commandline tool.

Bug fix

With the launch of v1.13.0 some user reported issue with old wallet address (see issue #4156 for details). The issue is quickly identified to relate to nonce calculation for certain wallet address, and is properly fixed in this release.

Other Improvements

In v1.13.1, the ioctl commandline tool has enabled querying delegate's reward amount by name. As of now you can only query the reward amount by the actual reward address. With the functionality of querying by name, it makes delegate more convenient to check their reward and improves user experience.

Upgrade Priority

v1.13.1 does not have a hard-fork, but contains a bug fix to ensure prompt transaction processing. All delegate nodes and API nodes are recommended to upgrade to v1.13.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)

  1. [actpool] fix bug in worker.Reset() #4159
  2. [ioctl] node reward unclaimed support name query #4150

v1.13.0

06 Feb 23:22
Compare
Choose a tag to compare

Summary

v1.13.0 has a hardfork, which will be activated at block height 28,516,681 (ETA is around 02/19/2024 00:58am 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.13.0 image.

v1.13.0 marks a substantial advancement by upgrading IoTeX network's EVM to the latest Shanghai version. This upgrade brings in the new opcodes and improvements in Shanghai EVM, reducing gas cost with enhanced efficiency and reliability of smart contract execution, ultimately leading to a smoother and more cost-effective experience on the IoTeX network.

We are also excited to announce that v1.13.0 has enabled deterministic deployment functionality on the IoTeX network! This feature would deploy a proxy contract at a fixed address (same for all blockchains), and then it can be used to deploy any contract to a deterministic address using CREATE2. This ensures that any contract could be deployed consistently across different blockchain platforms to the same address, eliminates possible variations, and greatly enhance the predictability and reliability of smart contract deployment processes, providing developers with greater confidence in their deployments and facilitating seamless integration with other systems and protocols.

Other Improvements

v1.13.0 release also comes with a couple of improvements:

  1. Supported javascript tracing for web3 api debug_traceCall
  2. ioctl commandline tool added more w3bstream project commands, and set
    default endpoint to IoTeX mainnet
  3. Add operator address into node's metrics reporting
  4. Updated gas station logic to give a dynamic gas price suggestion
  5. Increase max code deployment size to 48kB, same as Ethereum's limit

Upgrade Priority

v1.13.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. [actpool] skip adding accounts if pending acts is empty #4027
  2. [action] Define CandidateSelfStake Action #4007
  3. feat(ioctl): upgrade ws apis #4021
  4. [actpool] fix typo for worker queue #4028
  5. feat(ioctl): project register contract addr config #4039
  6. feat(ioctl): ipfs endpoint and ipfs gateway config #4038
  7. feat(ioctl): optimize w3bstream project subcommand #4013
  8. [staking] Define Endorsement State #4017
  9. [action] Define CandidateEndorsement Action #4016
  10. [evm] remove NotCheckPutStateErrorOption() #4040
  11. Bump golang.org/x/crypto from 0.14.0 to 0.17.0 #4022
  12. feat(ioctl): bc version #4005
  13. update github #4048
  14. [api] web3 api debug_traceCall support javascript tracing #3931
  15. [api] Get Pending Action by eth_getTransactionByHash #4025
  16. [ioctl] set default endpoint to iotex mainnet #4050
  17. [ioctl] ioctl ws code cmd support project config version #4042
  18. [server] add operator address into node's metrics #4056
  19. Improve action pool #4030
  20. feat(ioctl): ioctl ws message with did vc token #4052
  21. feat(ioctl): use ipfs cid as project config url #4053
  22. chore: change default ws register contract address #4054
  23. [log] mute some user request related logs #4033
  24. Replace with sort.Slice #4034
  25. [state] convert clean address to zero-nonce type #3991
  26. [genesis] whitelist replay deployer #4009
  27. [gasstation] Update gas station logic #4035
  28. replace golint with go vet #4058
  29. enable 48kB execution data limit, EIP-2930 tx, and deterministic deployment at Sumatra height #4070
  30. [action] check calldata size instead of total size for 48kB init code limit #4075
  31. [action] defer access list tx enabling #4129
  32. [genesis] set Sumatra to activate at 02-19-2024 00:58AM UTC #4128