Skip to content

Releases: iotexproject/iotex-core

v1.9.0

22 Dec 07:14
Compare
Choose a tag to compare

Summary

v1.9.0 has a hardfork, which will be activated at block height 21,542,761 (ETA is around 01/11/2023 12am UTC) on IoTeX mainnet.

All nodes must upgrade to this release, or otherwise the node won't be able to sync with the IoTeX blockchain after the activation block.

v1.9.0 enables couple of important features:

  1. Zero-nonce feature
  2. EVM upgrade to London
  3. Complete fix to the issue patched by v1.8.4

Breaking Changes

Zero-nonce for new account

With this new feature, a newly created account will have 0 as its initial nonce. For historic reason, our mainnet is launched with that initial nonce value equal to 1, which is different from Ethereum's convention that the initial nonce starts from 0. Starting from v1.9.0, this behavior will converge to Ethereum's convention, further enhancing our chain's compatibility with Ethereum eco-system. In particular, the Gnosis Safe protocol (which hinges on this zero-nonce property) will be able to successfully integrate with the IoTeX blockchain after the v1.9.0 launch.

EVM upgrade to London

With v1.9.0, the EVM has been upgraded to London (and including Berlin), which enables many important EIPs. For example, EIP-2565 lowers ModExp gas cost and EIP-2930 provides an optional access list (a list of addresses and storage keys) to reduce the gas cost when accessing these addresses and keys during contract execution. Here's a complete list of EIPs enabled in London:

  1. EIP-1559: Fee market change for ETH 1.0 chain
  2. EIP-3198: BASEFEE opcode
  3. EIP-3529: Reduction in refunds
  4. EIP-3541: Reject new contract code starting with the 0xEF byte
  5. EIP-3554: Difficulty Bomb Delay to December 2021

and EIPs enabled in Berlin:

  1. EIP-2565: ModExp Gas Cost
  2. EIP-2718: Typed Transaction Envelope
  3. EIP-2929: Gas cost increases for state access opcodes
  4. EIP-2930: Optional access lists

Other Features and Improvements

Complete fix of issue patched by v1.8.4

v1.9.0 has provided a complete fix to the issue patched by v1.8.4. After the v1.9.0 upgrade, the manual patch will no longer be needed, and we'll deprecate the patch in upcoming releases.

Other Improvements

Couple of small improvements are added into v1.9.0, including:

  1. Disable http admin port by default
  2. DB will panic when no space left -- better error visibility
  3. Fixed slow context in workingset for faster block processing
  4. Fixed use of weak random number generator
  5. Fixed variadic interface bug
  6. Fixed file permission
  7. Add ReadHeaderTimeout for http connection

Upgrade Priority

v1.9.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 Okhotsk to activate at 01-11-2023 12am UTC #3720
  2. [evm] proper handle refundSnapshot and upgrade go-ethereum release #3715
  3. remove nonce field #3714
  4. [staking] full comparison of candidates #3702
  5. [rewarding] fix error check position #3704
  6. [evm] manually correct gas refund in case opcode execution returns Er… #3690
  7. Clean up candidates #3696
  8. [staking] remove unnecessary call from GetStakingStateReader #3695
  9. [db] panic when writing db returns no space #3686
  10. fix read tip tool bug #3662
  11. [staking] save owner list after PersistStakingPatchBlock #3671
  12. [staking] patch for staking protocol #3661
  13. [pkg] panic if no space is left #3636
  14. [db]fix counting_index data race #3651
  15. tool to read tip of state db #3659
  16. [evm] support opBasefee #3643
  17. [staking] nil pointer check #3633
  18. [api] trace web3.js API #3626
  19. [blockchain] change private key loading logic #3621
  20. GoLang upgarde from 1.17 to 1.18.5 #3614
  21. support producerPrivKey load from vault #3612
  22. [log] optimize console log format #3499
  23. remove config in evm and pool #3611
  24. limit account nonce #3606
  25. HandleBroadcast use message.(type) directly #3604
  26. Disable http admin by default #3591
  27. [workingset] Fix context bug in workingset #3556
  28. fix Use of weak random number generator #3578
  29. [rolldpos] refactor rolldpos.ChainManager #3516
  30. [config] move config.Indexer to blockindex package #3573
  31. [db] Fix variadic interface bug #3568
  32. fix dir permission and file inclusion #3566
  33. [pkg] fix deferring unsafe method "Close" on type "*os.File" #3548
  34. [httputil] add ReadHeaderTimeout #3550
  35. move chanid metrics to chainservice #3544
  36. [action] fix incorrect conversion between integer types #3545
  37. add ReadHeaderTimeout #3539
  38. [config] move config.ActPool to actpool package refactor #3514
  39. [config] move config.Chain to blockchain package #3511
  40. [config] remove EVMNetworkID() and SetEVMNetworkID() #3503

v1.8.4

20 Oct 21:09
Compare
Choose a tag to compare

v1.8.4 is a hot-fix release. Please see https:/iotexproject/iotex-bootstrap/blob/master/184_patch/patch.md for details

v1.8.2

08 Aug 19:21
Compare
Choose a tag to compare

v1.8.2 is a regular maintenance release

  1. Enhanced p2p network robustness by adding GroupID to DHT protocol in peer discovery (#3409,#3580)
  2. Multiple API improvments and code refactor (#3303,#3432,#3433,#3434,#3441,#3442,#3443,#3485)
  3. Remove the global config.EVMNetworkID() (#3431,#3437,#3460,#3491)
  4. Use internal caching to speed up action.Address(), action.Hash(), and action.SenderAddress() (#3420,#3446)
  5. Clean-up of certain obsolete code (#3453,#3463,#3464,#3465)

v1.8.1

30 Jun 18:49
Compare
Choose a tag to compare

v1.8.1 is a regular maintenance release

  1. Added websocket support for web3.js protocol (#3252,#3298)
  2. Cleaned up protection code for v1.8.0 hard-fork (#3188,#3390,#3436)
  3. Implemented crash log (#3456)
  4. Added ChainID metrics (#3438), and multiple API improvements (#3347, #3426, #3484)
  5. Code refactor and improvements (#3397,#3400,#3404)

v1.8.0

19 May 19:32
Compare
Choose a tag to compare

Note that v1.8.0 has a hardfork, which will be activated at block height 17,662,681 (ETA is 05/30/2022 around 11pm UTC) on IoTeX mainnet.

  1. Added chain ID into transaction for enhanced transaction security (#3188)
  2. Supported staking transactions via web3 protocol (#3209)
  3. Improved p2p connection robustness (#3371)
  4. Multiple API improvements (#3073, #3174, #3205, #3217)
  5. Introduced chainservice builder to better manage service start-up and shut-down (#3235,#3364)

v1.7.1

09 Apr 01:28
Compare
Choose a tag to compare
  1. Improved snapshot performance (#3125)
  2. Faster DB operation using sorted list and saving hash value (#3143, #3160, #3170, #3172)
  3. Added crash log functionality (#3185)

v1.7.0

16 Mar 00:25
Compare
Choose a tag to compare

Note that v1.7.0 has a hardfork, which will be activated at block height 16,509,241 (ETA is 03/24/2022 around 11pm UTC) on IoTeX mainnet.

  1. Corrected the GetHashFunc implementation in EVM (#2998)
  2. The transaction receipt and EVM log now bear correct index values (#2923)
  3. When transaction is reverted, the corresponding logs are also removed (#3014)

v1.6.4

22 Feb 17:39
Compare
Choose a tag to compare
  1. Fixed certain hardcode values in original babel service (#3038)
  2. Correctly handle array in web3 request (#3050)
  3. Added more tracing for slow API (#3057)
  4. Fixed log query (with large block range) causing high memory usage (#3062)
  5. Added gasFee info into GetActions() API (#3063)

v1.6.3

07 Feb 07:28
Compare
Choose a tag to compare
  1. Implemented HTTP server to support web3.js API in iotex-core (this removes the need of intermediate Babel bridge/service)
  2. Added eth_getStorageAt method
  3. Instrumented tracing to measure timing on critical code path
  4. Enabled EVM tracing to collect calling stacks inside EVM
  5. Performance improvement of ActPool
  6. Enabled log rotate
  7. Corrected nested context usage in transaction processing loop

v1.6.2

07 Feb 07:11
Compare
Choose a tag to compare
  1. fixed EVM calldata dump issue