Skip to content

Commit 9115ab8

Browse files
authored
v1.9.0 release (#241)
1 parent 8e4a01e commit 9115ab8

File tree

3 files changed

+135
-24
lines changed

3 files changed

+135
-24
lines changed

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@
2020

2121
Here are the software versions we use:
2222

23-
- MainNet: v1.8.4
24-
- TestNet: v1.9.0-rc1
23+
- MainNet: v1.9.0
24+
- TestNet: v1.9.0
2525

2626
## <a name="mainnet"/>Join MainNet
2727
This is the recommended way to start an IoTeX node
2828

2929
1. Pull the docker image:
3030

3131
```
32-
docker pull iotex/iotex-core:v1.8.4
32+
docker pull iotex/iotex-core:v1.9.0
3333
```
3434

3535
2. Set the environment with the following commands:
@@ -44,9 +44,9 @@ mkdir -p $IOTEX_HOME/data
4444
mkdir -p $IOTEX_HOME/log
4545
mkdir -p $IOTEX_HOME/etc
4646
47-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.8.4/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml
48-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.8.4/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml
49-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.8.4/trie.db.patch > $IOTEX_HOME/data/trie.db.patch
47+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml
48+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml
49+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/trie.db.patch > $IOTEX_HOME/data/trie.db.patch
5050
```
5151

5252
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.
@@ -86,7 +86,7 @@ docker run -d --restart on-failure --name iotex \
8686
-v=$IOTEX_HOME/log:/var/log:rw \
8787
-v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \
8888
-v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \
89-
iotex/iotex-core:v1.8.4 \
89+
iotex/iotex-core:v1.9.0 \
9090
iotex-server \
9191
-config-path=/etc/iotex/config_override.yaml \
9292
-genesis-path=/etc/iotex/genesis.yaml
@@ -106,7 +106,7 @@ docker run -d --restart on-failure --name iotex \
106106
-v=$IOTEX_HOME/log:/var/log:rw \
107107
-v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \
108108
-v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \
109-
iotex/iotex-core:v1.8.4 \
109+
iotex/iotex-core:v1.9.0 \
110110
iotex-server \
111111
-config-path=/etc/iotex/config_override.yaml \
112112
-genesis-path=/etc/iotex/genesis.yaml \
@@ -127,7 +127,7 @@ Same as [Join MainNet](#mainnet) step 2
127127
```
128128
git clone https://github.com/iotexproject/iotex-core.git
129129
cd iotex-core
130-
git checkout v1.8.4
130+
git checkout v1.9.0
131131
132132
// optional
133133
export GOPROXY=https://goproxy.io
@@ -170,13 +170,13 @@ nohup $IOTEX_HOME/iotex-server \
170170
There's almost no difference to join TestNet, but in step 2, you need to use the config and genesis files for TestNet:
171171

172172
```
173-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0-rc1/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml
174-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0-rc1/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml
173+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml
174+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml
175175
```
176176

177177
In step 4, you need to use the snapshot for TestNet: https://t.iotex.me/testnet-data-latest and https://t.iotex.me/testnet-data-with-idx-latest. If you need legacy delegate election data(poll.db) for TestNet, you can download it here: https://storage.googleapis.com/blockchain-golden/poll.testnet.tar.gz
178178

179-
In step 5, you need to replace the docker image in the `docker run` command line to `iotex/iotex-core:v1.9.0-rc1`
179+
In step 5, you need to replace the docker image in the `docker run` command line to `iotex/iotex-core:v1.9.0`
180180

181181
## <a name="ioctl"/>Interact with Blockchain
182182

README_CN.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
以下是当前我们使用的软件版本:
2121

22-
- 主网:v1.8.4
23-
- 测试网:v1.9.0-rc1
22+
- 主网:v1.9.0
23+
- 测试网:v1.9.0
2424

2525
## <a name="mainnet"/>加入主网
2626

@@ -29,7 +29,7 @@
2929
1. 提取(pull) docker镜像
3030

3131
```
32-
docker pull iotex/iotex-core:v1.8.4
32+
docker pull iotex/iotex-core:v1.9.0
3333
```
3434

3535
2. 使用以下命令设置运行环境
@@ -44,9 +44,9 @@ mkdir -p $IOTEX_HOME/data
4444
mkdir -p $IOTEX_HOME/log
4545
mkdir -p $IOTEX_HOME/etc
4646
47-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.8.4/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml
48-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.8.4/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml
49-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.8.4/trie.db.patch > $IOTEX_HOME/data/trie.db.patch
47+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml
48+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml
49+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/trie.db.patch > $IOTEX_HOME/data/trie.db.patch
5050
```
5151

5252
3. 编辑 `$IOTEX_HOME/etc/config.yaml`, 查找 `externalHost``producerPrivKey`, 取消注释行并填写您的外部 IP 和私钥。如果`producerPrivKey`放空,你的节点将被分配一个随机密钥。
@@ -83,7 +83,7 @@ docker run -d --restart on-failure --name iotex \
8383
-v=$IOTEX_HOME/log:/var/log:rw \
8484
-v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \
8585
-v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \
86-
iotex/iotex-core:v1.8.4 \
86+
iotex/iotex-core:v1.9.0 \
8787
iotex-server \
8888
-config-path=/etc/iotex/config_override.yaml \
8989
-genesis-path=/etc/iotex/genesis.yaml
@@ -101,7 +101,7 @@ docker run -d --restart on-failure --name iotex \
101101
-v=$IOTEX_HOME/log:/var/log:rw \
102102
-v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \
103103
-v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \
104-
iotex/iotex-core:v1.8.4 \
104+
iotex/iotex-core:v1.9.0 \
105105
iotex-server \
106106
-config-path=/etc/iotex/config_override.yaml \
107107
-genesis-path=/etc/iotex/genesis.yaml \
@@ -121,7 +121,7 @@ docker run -d --restart on-failure --name iotex \
121121
```
122122
git clone https://github.com/iotexproject/iotex-core.git
123123
cd iotex-core
124-
git checkout v1.8.4
124+
git checkout v1.9.0
125125
126126
// optional
127127
export GOPROXY=https://goproxy.io
@@ -158,13 +158,13 @@ nohup $IOTEX_HOME/iotex-server \
158158

159159
加入测试网络基本没有什么不同,只是在第二步,您需要使用以下的源文件:
160160
```
161-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0-rc1/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml
162-
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0-rc1/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml
161+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml
162+
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.0/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml
163163
```
164164

165165
在步骤四中,您需要使用针对于测试网络的数据快照: https://t.iotex.me/testnet-data-latesthttps://t.iotex.me/testnet-data-with-idx-latest (如果节点启用了网关). 如果您需要使用测试网中旧的节点代表数据(poll.db),可以在此处下载: https://storage.googleapis.com/blockchain-golden/poll.testnet.tar.gz
166166

167-
在步骤五中,您需要将 `docker run`命令行中的 docker image替换成 `iotex/iotex-core:v1.9.0-rc1`
167+
在步骤五中,您需要将 `docker run`命令行中的 docker image替换成 `iotex/iotex-core:v1.9.0`
168168

169169
## <a name="ioctl"/>与区块链交互
170170

changelog/v1.9.0-release-note.md

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# v1.9.0 Release Note
2+
3+
## Summary
4+
**v1.9.0 has a hardfork, which will be activated at block height
5+
21,542,761 (ETA is around 01/11/2023 12am UTC) on IoTeX mainnet.**
6+
7+
All nodes **must** upgrade to this release, or otherwise the node
8+
won't be able to sync with the IoTeX blockchain after the
9+
activation block.
10+
11+
v1.9.0 enables couple of important features:
12+
1. Zero-nonce feature
13+
2. EVM upgrade to London
14+
3. Complete fix to the issue patched by v1.8.4
15+
16+
## Breaking Changes
17+
18+
### Zero-nonce for new account
19+
With this new feature, a newly created account will have 0 as its initial nonce.
20+
For historic reason, our mainnet is launched with that initial nonce value equal
21+
to 1, which is different from Ethereum's convention that the initial nonce starts
22+
from 0. Starting from v1.9.0, this behavior will converge to Ethereum's convention,
23+
further enhancing our chain's compatibility with Ethereum eco-system. In particular,
24+
the Gnosis Safe protocol (which hinges on this zero-nonce property) will be able to
25+
successfully integrate with the IoTeX blockchain after the v1.9.0 launch.
26+
27+
### EVM upgrade to London
28+
With v1.9.0, the EVM has been upgraded to London (and including Berlin), which
29+
enables many important EIPs. For example, EIP-2565 lowers ModExp gas cost and
30+
EIP-2930 provides an optional access list (a list of addresses and storage keys)
31+
to reduce the gas cost when accessing these addresses and keys during contract
32+
execution. Here's a complete list of EIPs enabled in London and Berlin:
33+
1. [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559): Fee market change for ETH 1.0 chain
34+
2. [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198): BASEFEE opcode
35+
3. [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529): Reduction in refunds
36+
4. [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541): Reject new contract code starting with the 0xEF byte
37+
5. [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554): Difficulty Bomb Delay to December 2021
38+
39+
and EIPs enabled in Berlin:
40+
1. [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565): ModExp Gas Cost
41+
2. [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718): Typed Transaction Envelope
42+
3. [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929): Gas cost increases for state access opcodes
43+
4. [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930): Optional access lists
44+
45+
## Other Features and Improvements
46+
47+
### Complete fix of issue patched by v1.8.4
48+
v1.9.0 has provided a complete fix to the issue patched by v1.8.4. After the v1.9.0
49+
upgrade, the manual patch will no longer be needed, and we'll deprecate the patch
50+
in upcoming releases.
51+
52+
### Other Improvements
53+
Couple of small improvements are added into v1.9.0, including:
54+
1. Disable http admin port by default
55+
2. DB will panic when no space left -- better error visibility
56+
3. Fixed slow context in workingset for faster block processing
57+
4. Fixed use of weak random number generator
58+
5. Fixed variadic interface bug
59+
6. Fixed file permission
60+
7. Add ReadHeaderTimeout for http connection
61+
62+
## Upgrade Priority
63+
v1.9.0 comes with a hardfork, so all nodes **must** upgrade in order to keep
64+
syncing with the IoTeX blockchain
65+
66+
| Node type | Action |
67+
| ---------- | ------------ |
68+
| Delegate | Must upgrade |
69+
| Fullnode | Must upgrade |
70+
71+
## Important Commits (not a complete list)
72+
1. [genesis] set Okhotsk to activate at 01-11-2023 12am UTC [#3720](https://github.com/iotexproject/iotex-core/pull/3720)
73+
2. [evm] proper handle refundSnapshot and upgrade go-ethereum release [#3715](https://github.com/iotexproject/iotex-core/pull/3715)
74+
3. remove nonce field [#3714](https://github.com/iotexproject/iotex-core/pull/3714)
75+
4. [staking] full comparison of candidates [#3702](https://github.com/iotexproject/iotex-core/pull/3702)
76+
5. [rewarding] fix error check position [#3704](https://github.com/iotexproject/iotex-core/pull/3704)
77+
6. [evm] manually correct gas refund in case opcode execution returns Er… [#3690](https://github.com/iotexproject/iotex-core/pull/3690)
78+
7. Clean up candidates [#3696](https://github.com/iotexproject/iotex-core/pull/3696)
79+
8. [staking] remove unnecessary call from GetStakingStateReader [#3695](https://github.com/iotexproject/iotex-core/pull/3695)
80+
9. [db] panic when writing db returns no space [#3686](https://github.com/iotexproject/iotex-core/pull/3686)
81+
10. fix read tip tool bug [#3662](https://github.com/iotexproject/iotex-core/pull/3662)
82+
11. [staking] save owner list after PersistStakingPatchBlock [#3671](https://github.com/iotexproject/iotex-core/pull/3671)
83+
12. [staking] patch for staking protocol [#3661](https://github.com/iotexproject/iotex-core/pull/3661)
84+
13. [pkg] panic if no space is left [#3636](https://github.com/iotexproject/iotex-core/pull/3636)
85+
14. [db]fix counting_index data race [#3651](https://github.com/iotexproject/iotex-core/pull/3651)
86+
15. tool to read tip of state db [#3659](https://github.com/iotexproject/iotex-core/pull/3659)
87+
16. [evm] support opBasefee [#3643](https://github.com/iotexproject/iotex-core/pull/3643)
88+
17. [staking] nil pointer check [#3633](https://github.com/iotexproject/iotex-core/pull/3633)
89+
18. [api] trace web3.js API [#3626](https://github.com/iotexproject/iotex-core/pull/3626)
90+
19. [blockchain] change private key loading logic [#3621](https://github.com/iotexproject/iotex-core/pull/3621)
91+
20. GoLang upgarde from 1.17 to 1.18.5 [#3614](https://github.com/iotexproject/iotex-core/pull/3614)
92+
21. support producerPrivKey load from vault [#3612](https://github.com/iotexproject/iotex-core/pull/3612)
93+
22. [log] optimize console log format [#3499](https://github.com/iotexproject/iotex-core/pull/3499)
94+
23. remove config in evm and pool [#3611](https://github.com/iotexproject/iotex-core/pull/3611)
95+
24. limit account nonce [#3606](https://github.com/iotexproject/iotex-core/pull/3606)
96+
25. HandleBroadcast use message.(type) directly [#3604](https://github.com/iotexproject/iotex-core/pull/3604)
97+
26. Disable http admin by default [#3591](https://github.com/iotexproject/iotex-core/pull/3591)
98+
27. [workingset] Fix context bug in workingset [#3556](https://github.com/iotexproject/iotex-core/pull/3556)
99+
28. fix Use of weak random number generator [#3578](https://github.com/iotexproject/iotex-core/pull/3578)
100+
29. [rolldpos] refactor rolldpos.ChainManager [#3516](https://github.com/iotexproject/iotex-core/pull/3516)
101+
30. [config] move config.Indexer to blockindex package [#3573](https://github.com/iotexproject/iotex-core/pull/3573)
102+
31. [db] Fix variadic interface bug [#3568](https://github.com/iotexproject/iotex-core/pull/3568)
103+
32. fix dir permission and file inclusion [#3566](https://github.com/iotexproject/iotex-core/pull/3566)
104+
33. [pkg] fix deferring unsafe method "Close" on type "*os.File" [#3548](https://github.com/iotexproject/iotex-core/pull/3548)
105+
34. [httputil] add ReadHeaderTimeout [#3550](https://github.com/iotexproject/iotex-core/pull/3550)
106+
35. move chanid metrics to chainservice [#3544](https://github.com/iotexproject/iotex-core/pull/3544)
107+
36. [action] fix incorrect conversion between integer types [#3545](https://github.com/iotexproject/iotex-core/pull/3545)
108+
37. add ReadHeaderTimeout [#3539](https://github.com/iotexproject/iotex-core/pull/3539)
109+
38. [config] move config.ActPool to actpool package refactor [#3514](https://github.com/iotexproject/iotex-core/pull/3514)
110+
39. [config] move config.Chain to blockchain package [#3511](https://github.com/iotexproject/iotex-core/pull/3511)
111+
40. [config] remove EVMNetworkID() and SetEVMNetworkID() [#3503](https://github.com/iotexproject/iotex-core/pull/3503)

0 commit comments

Comments
 (0)