From a00fcc6c4b93926da97acfd6b607cb89e3e5b806 Mon Sep 17 00:00:00 2001 From: dustinxie Date: Tue, 6 Feb 2024 15:48:21 -0800 Subject: [PATCH] release v1.13.0 (#270) --- README.md | 16 +++---- README_CN.md | 16 +++---- README_CN_testnet.md | 14 +++--- README_testnet.md | 14 +++--- changelog/v1.13.0-release-note.md | 80 +++++++++++++++++++++++++++++++ 5 files changed, 110 insertions(+), 30 deletions(-) create mode 100644 changelog/v1.13.0-release-note.md diff --git a/README.md b/README.md index b66d048..ee2d564 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Here are the software versions we use: -- MainNet: v1.12.1 +- MainNet: v1.13.0 ## Join TestNet To start and run a testnet node, please click [**Join Testnet**](https://github.com/iotexproject/iotex-bootstrap/blob/master/README_testnet.md) @@ -30,7 +30,7 @@ This is the recommended way to start an IoTeX node 1. Pull the docker image: ``` -docker pull iotex/iotex-core:v1.12.1 +docker pull iotex/iotex-core:v1.13.0 ``` 2. Set the environment with the following commands: @@ -45,9 +45,9 @@ mkdir -p $IOTEX_HOME/data mkdir -p $IOTEX_HOME/log mkdir -p $IOTEX_HOME/etc -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.12.1/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.12.1/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.12.1/trie.db.patch > $IOTEX_HOME/data/trie.db.patch +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/trie.db.patch > $IOTEX_HOME/data/trie.db.patch ``` 3. Edit `$IOTEX_HOME/etc/config.yaml`, look for `externalHost` and `producerPrivKey`, uncomment the lines and fill in your external IP and private key. If you leave `producerPrivKey` empty, your node will be assgined with a random key. @@ -87,7 +87,7 @@ docker run -d --restart on-failure --name iotex \ -v=$IOTEX_HOME/log:/var/log:rw \ -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \ -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \ - iotex/iotex-core:v1.12.1 \ + iotex/iotex-core:v1.13.0 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml @@ -107,7 +107,7 @@ docker run -d --restart on-failure --name iotex \ -v=$IOTEX_HOME/log:/var/log:rw \ -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \ -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \ - iotex/iotex-core:v1.12.1 \ + iotex/iotex-core:v1.13.0 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml \ @@ -128,7 +128,7 @@ Same as [Join MainNet](#mainnet) step 2 ``` git clone https://github.com/iotexproject/iotex-core.git cd iotex-core -git checkout v1.12.1 +git checkout v1.13.0 // optional export GOPROXY=https://goproxy.io diff --git a/README_CN.md b/README_CN.md index bee2a82..ccd250a 100644 --- a/README_CN.md +++ b/README_CN.md @@ -18,7 +18,7 @@ 以下是当前我们使用的软件版本: -- 主网:v1.12.1 +- 主网:v1.13.0 ## 加入测试网 如果你要启动节点加入测试网,请点击[**加入测试网**](https://github.com/iotexproject/iotex-bootstrap/blob/master/README_CN_testnet.md) @@ -30,7 +30,7 @@ 1. 提取(pull) docker镜像 ``` -docker pull iotex/iotex-core:v1.12.1 +docker pull iotex/iotex-core:v1.13.0 ``` 2. 使用以下命令设置运行环境 @@ -45,9 +45,9 @@ mkdir -p $IOTEX_HOME/data mkdir -p $IOTEX_HOME/log mkdir -p $IOTEX_HOME/etc -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.12.1/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.12.1/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.12.1/trie.db.patch > $IOTEX_HOME/data/trie.db.patch +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/trie.db.patch > $IOTEX_HOME/data/trie.db.patch ``` 3. 编辑 `$IOTEX_HOME/etc/config.yaml`, 查找 `externalHost` 和 `producerPrivKey`, 取消注释行并填写您的外部 IP 和私钥。如果`producerPrivKey`放空,你的节点将被分配一个随机密钥。 @@ -84,7 +84,7 @@ docker run -d --restart on-failure --name iotex \ -v=$IOTEX_HOME/log:/var/log:rw \ -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \ -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \ - iotex/iotex-core:v1.12.1 \ + iotex/iotex-core:v1.13.0 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml @@ -102,7 +102,7 @@ docker run -d --restart on-failure --name iotex \ -v=$IOTEX_HOME/log:/var/log:rw \ -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \ -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \ - iotex/iotex-core:v1.12.1 \ + iotex/iotex-core:v1.13.0 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml \ @@ -122,7 +122,7 @@ docker run -d --restart on-failure --name iotex \ ``` git clone https://github.com/iotexproject/iotex-core.git cd iotex-core -git checkout v1.12.1 +git checkout v1.13.0 // optional export GOPROXY=https://goproxy.io diff --git a/README_CN_testnet.md b/README_CN_testnet.md index c670124..f9d79e2 100644 --- a/README_CN_testnet.md +++ b/README_CN_testnet.md @@ -17,7 +17,7 @@ 以下是当前我们使用的软件版本: -- 测试网:v1.13.0-rc1 +- 测试网:v1.13.0 **Note** 如果你要启动节点加入主网,请点击[**加入主网**](https://github.com/iotexproject/iotex-bootstrap/blob/master/README_CN.md) @@ -29,7 +29,7 @@ 1. 提取(pull) docker镜像 ``` -docker pull iotex/iotex-core:v1.13.0-rc1 +docker pull iotex/iotex-core:v1.13.0 ``` 2. 使用以下命令设置运行环境 @@ -44,8 +44,8 @@ mkdir -p $IOTEX_HOME/data mkdir -p $IOTEX_HOME/log mkdir -p $IOTEX_HOME/etc -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/master/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/master/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml ``` 3. 编辑 `$IOTEX_HOME/etc/config.yaml`, 查找 `externalHost` 和 `producerPrivKey`, 取消注释行并填写您的外部 IP 和私钥。如果`producerPrivKey`放空,你的节点将被分配一个随机密钥。 @@ -82,7 +82,7 @@ docker run -d --restart on-failure --name iotex \ -v=$IOTEX_HOME/log:/var/log:rw \ -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \ -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \ - iotex/iotex-core:v1.13.0-rc1 \ + iotex/iotex-core:v1.13.0 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml @@ -100,7 +100,7 @@ docker run -d --restart on-failure --name iotex \ -v=$IOTEX_HOME/log:/var/log:rw \ -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \ -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \ - iotex/iotex-core:v1.13.0-rc1 \ + iotex/iotex-core:v1.13.0 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml \ @@ -120,7 +120,7 @@ docker run -d --restart on-failure --name iotex \ ``` git clone https://github.com/iotexproject/iotex-core.git cd iotex-core -git checkout v1.13.0-rc1 +git checkout v1.13.0 // optional export GOPROXY=https://goproxy.io diff --git a/README_testnet.md b/README_testnet.md index 939fe65..c15ae2b 100644 --- a/README_testnet.md +++ b/README_testnet.md @@ -18,7 +18,7 @@ Here are the software versions we use: -- TestNet: v1.13.0-rc1 +- TestNet: v1.13.0 **Note** To start and run a mainnet node, please click [**Join Mainnet**](https://github.com/iotexproject/iotex-bootstrap/blob/master/README.md) @@ -29,7 +29,7 @@ This is the recommended way to start an IoTeX node 1. Pull the docker image: ``` -docker pull iotex/iotex-core:v1.13.0-rc1 +docker pull iotex/iotex-core:v1.13.0 ``` 2. Set the environment with the following commands: @@ -44,8 +44,8 @@ mkdir -p $IOTEX_HOME/data mkdir -p $IOTEX_HOME/log mkdir -p $IOTEX_HOME/etc -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/master/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml -curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/master/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml +curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.13.0/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml ``` 3. Edit `$IOTEX_HOME/etc/config.yaml`, look for `externalHost` and `producerPrivKey`, uncomment the lines and fill in your external IP and private key. If you leave `producerPrivKey` empty, your node will be assgined with a random key. @@ -85,7 +85,7 @@ docker run -d --restart on-failure --name iotex \ -v=$IOTEX_HOME/log:/var/log:rw \ -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \ -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \ - iotex/iotex-core:v1.13.0-rc1 \ + iotex/iotex-core:v1.13.0 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml @@ -105,7 +105,7 @@ docker run -d --restart on-failure --name iotex \ -v=$IOTEX_HOME/log:/var/log:rw \ -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \ -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \ - iotex/iotex-core:v1.13.0-rc1 \ + iotex/iotex-core:v1.13.0 \ iotex-server \ -config-path=/etc/iotex/config_override.yaml \ -genesis-path=/etc/iotex/genesis.yaml \ @@ -126,7 +126,7 @@ Same as [Join TestNet](#testnet) step 2 ``` git clone https://github.com/iotexproject/iotex-core.git cd iotex-core -git checkout v1.13.0-rc1 +git checkout v1.13.0 // optional export GOPROXY=https://goproxy.io diff --git a/changelog/v1.13.0-release-note.md b/changelog/v1.13.0-release-note.md new file mode 100644 index 0000000..4c1f9a7 --- /dev/null +++ b/changelog/v1.13.0-release-note.md @@ -0,0 +1,80 @@ +# v1.13.0 Release Note + +## 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](https://github.com/iotexproject/iotex-core/pull/4027) +2. [action] Define CandidateSelfStake Action [#4007](https://github.com/iotexproject/iotex-core/pull/4007) +3. feat(ioctl): upgrade ws apis [#4021](https://github.com/iotexproject/iotex-core/pull/4021) +4. [actpool] fix typo for worker queue [#4028](https://github.com/iotexproject/iotex-core/pull/4028) +5. feat(ioctl): project register contract addr config [#4039](https://github.com/iotexproject/iotex-core/pull/4039) +6. feat(ioctl): ipfs endpoint and ipfs gateway config [#4038](https://github.com/iotexproject/iotex-core/pull/4038) +7. feat(ioctl): optimize w3bstream project subcommand [#4013](https://github.com/iotexproject/iotex-core/pull/4013) +8. [staking] Define Endorsement State [#4017](https://github.com/iotexproject/iotex-core/pull/4017) +9. [action] Define CandidateEndorsement Action [#4016](https://github.com/iotexproject/iotex-core/pull/4016) +10. [evm] remove NotCheckPutStateErrorOption() [#4040](https://github.com/iotexproject/iotex-core/pull/4040) +11. Bump golang.org/x/crypto from 0.14.0 to 0.17.0 [#4022](https://github.com/iotexproject/iotex-core/pull/4022) +12. feat(ioctl): bc version [#4005](https://github.com/iotexproject/iotex-core/pull/4005) +13. update github [#4048](https://github.com/iotexproject/iotex-core/pull/4048) +14. [api] web3 api debug_traceCall support javascript tracing [#3931](https://github.com/iotexproject/iotex-core/pull/3931) +15. [api] Get Pending Action by eth_getTransactionByHash [#4025](https://github.com/iotexproject/iotex-core/pull/4025) +16. [ioctl] set default endpoint to iotex mainnet [#4050](https://github.com/iotexproject/iotex-core/pull/4050) +17. [ioctl] ioctl ws code cmd support project config version [#4042](https://github.com/iotexproject/iotex-core/pull/4042) +18. [server] add operator address into node's metrics [#4056](https://github.com/iotexproject/iotex-core/pull/4056) +19. Improve action pool [#4030](https://github.com/iotexproject/iotex-core/pull/4030) +20. feat(ioctl): ioctl ws message with did vc token [#4052](https://github.com/iotexproject/iotex-core/pull/4052) +21. feat(ioctl): use ipfs cid as project config url [#4053](https://github.com/iotexproject/iotex-core/pull/4053) +22. chore: change default ws register contract address [#4054](https://github.com/iotexproject/iotex-core/pull/4054) +23. [log] mute some user request related logs [#4033](https://github.com/iotexproject/iotex-core/pull/4033) +24. Replace with sort.Slice [#4034](https://github.com/iotexproject/iotex-core/pull/4034) +25. [state] convert clean address to zero-nonce type [#3991](https://github.com/iotexproject/iotex-core/pull/3991) +26. [genesis] whitelist replay deployer [#4009](https://github.com/iotexproject/iotex-core/pull/4009) +27. [gasstation] Update gas station logic [#4035](https://github.com/iotexproject/iotex-core/pull/4035) +28. replace golint with go vet [#4058](https://github.com/iotexproject/iotex-core/pull/4058) +29. enable 48kB execution data limit, EIP-2930 tx, and deterministic deployment at Sumatra height [#4070](https://github.com/iotexproject/iotex-core/pull/4070) +30. [action] check calldata size instead of total size for 48kB init code limit [#4075](https://github.com/iotexproject/iotex-core/pull/4075) +31. [action] defer access list tx enabling [#4129](https://github.com/iotexproject/iotex-core/pull/4129) +32. [genesis] set Sumatra to activate at 02-19-2024 00:58AM UTC [#4128](https://github.com/iotexproject/iotex-core/pull/4128)