Skip to content

Commit

Permalink
release v1.10.0 (#249)
Browse files Browse the repository at this point in the history
  • Loading branch information
dustinxie authored Mar 24, 2023
1 parent cc0ee3f commit 9d37a2c
Show file tree
Hide file tree
Showing 4 changed files with 131 additions and 24 deletions.
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@

Here are the software versions we use:

- IoTeX Mainnet: v1.9.2
- IoTeX Testnet: v1.9.2
- IoTeX Mainnet: v1.10.0
- IoTeX Testnet: v1.10.0

<!--
- MainNet: v1.9.2
Expand All @@ -34,7 +34,7 @@ This is the recommended way to start an IoTeX node
1. Pull the docker image:

```
docker pull iotex/iotex-core:v1.9.2
docker pull iotex/iotex-core:v1.10.0
```

2. Set the environment with the following commands:
Expand All @@ -49,9 +49,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.9.2/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.2/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.2/trie.db.patch > $IOTEX_HOME/data/trie.db.patch
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.10.0/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.10.0/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.10.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.
Expand Down Expand Up @@ -91,7 +91,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.9.2 \
iotex/iotex-core:v1.10.0 \
iotex-server \
-config-path=/etc/iotex/config_override.yaml \
-genesis-path=/etc/iotex/genesis.yaml
Expand All @@ -111,7 +111,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.9.2 \
iotex/iotex-core:v1.10.0 \
iotex-server \
-config-path=/etc/iotex/config_override.yaml \
-genesis-path=/etc/iotex/genesis.yaml \
Expand All @@ -132,7 +132,7 @@ Same as [Join MainNet](#mainnet) step 2
```
git clone https://github.com/iotexproject/iotex-core.git
cd iotex-core
git checkout v1.9.2
git checkout v1.10.0
// optional
export GOPROXY=https://goproxy.io
Expand Down Expand Up @@ -175,13 +175,13 @@ nohup $IOTEX_HOME/iotex-server \
There's almost no difference to join TestNet, but in step 2, you need to use the config and genesis files for TestNet:

```
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.2/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.2/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.10.0/config_testnet.yaml > $IOTEX_HOME/etc/config.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.10.0/genesis_testnet.yaml > $IOTEX_HOME/etc/genesis.yaml
```

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

In step 5, you need to replace the docker image in the `docker run` command line to `iotex/iotex-core:v1.9.2`
In step 5, you need to replace the docker image in the `docker run` command line to `iotex/iotex-core:v1.10.0`

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

Expand Down
24 changes: 12 additions & 12 deletions README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@

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

- 主网:v1.9.2
- 测试网:v1.9.2
- 主网:v1.10.0
- 测试网:v1.10.0

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

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

```
docker pull iotex/iotex-core:v1.9.2
docker pull iotex/iotex-core:v1.10.0
```

2. 使用以下命令设置运行环境
Expand All @@ -44,9 +44,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.9.2/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.2/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.9.2/trie.db.patch > $IOTEX_HOME/data/trie.db.patch
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.10.0/config_mainnet.yaml > $IOTEX_HOME/etc/config.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.10.0/genesis_mainnet.yaml > $IOTEX_HOME/etc/genesis.yaml
curl https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/v1.10.0/trie.db.patch > $IOTEX_HOME/data/trie.db.patch
```

3. 编辑 `$IOTEX_HOME/etc/config.yaml`, 查找 `externalHost``producerPrivKey`, 取消注释行并填写您的外部 IP 和私钥。如果`producerPrivKey`放空,你的节点将被分配一个随机密钥。
Expand Down Expand Up @@ -83,7 +83,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.9.2 \
iotex/iotex-core:v1.10.0 \
iotex-server \
-config-path=/etc/iotex/config_override.yaml \
-genesis-path=/etc/iotex/genesis.yaml
Expand All @@ -101,7 +101,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.9.2 \
iotex/iotex-core:v1.10.0 \
iotex-server \
-config-path=/etc/iotex/config_override.yaml \
-genesis-path=/etc/iotex/genesis.yaml \
Expand All @@ -121,7 +121,7 @@ docker run -d --restart on-failure --name iotex \
```
git clone https://github.com/iotexproject/iotex-core.git
cd iotex-core
git checkout v1.9.2
git checkout v1.10.0
// optional
export GOPROXY=https://goproxy.io
Expand Down Expand Up @@ -158,13 +158,13 @@ nohup $IOTEX_HOME/iotex-server \

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

在步骤四中,您需要使用针对于测试网络的数据快照: 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

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

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

Expand Down
106 changes: 106 additions & 0 deletions changelog/v1.10.0-release-note.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# v1.10.0 Release Note

## Summary
**v1.10.0 has a hardfork, which will be activated at block height
22,991,401 (ETA is around 04/04/2023 11pm 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.

Also we'll use this release opportunity to disable the auto-upgrader, since the
auto-upgrader is a fixed script that cannot adapt perfectly well to each release
scenario, and has caused a couple of failed upgrades in the past.

In the past, if you use the one-line upgrader tool to run your IoTeX node, please
continue to use it to do the v1.10.0 upgrade. This time the script will turn off
the auto-upgrader (if it was turned on before). Run the script below just as before.
```bash
sudo bash # If your docker requires root privilege
bash <(curl -s https://raw.githubusercontent.com/iotexproject/iotex-bootstrap/master/scripts/setup_fullnode.sh)
```

If you use the very long `docker run` command (like below) to run your IoTeX node,
don't worry about the auto-upgrader since it is **not** turned on. Continue to
upgrade your node using the v1.10.0 image:
```
docker stop iotex
docker rm iotex
docker run -d --restart on-failure --name iotex \
-p 4689:4689 \
-p 8080:8080 \
-v=$IOTEX_HOME/data:/var/data:rw \
-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.10.0 \
iotex-server \
-config-path=/etc/iotex/config_override.yaml \
-genesis-path=/etc/iotex/genesis.yaml
```

## Breaking Changes
v1.10.0 enables 2 important features:
1. Claim reward via web3.js protocol
2. Node status monitoring by p2p messaging

### Claim reward via web3.js protocol
Similar to how we enabled sending transfer and staking actions via web3.js protocol,
in v1.10.0 claim reward is enabled as well. Delegates can now send claim reward action
using Metamask.

### Node status monitoring by p2p messaging
Currently, the IoTeX node is relying on a pre-defined HTTP port to collect the
real-time running status, such as the software version and blockchain height.
This means that delegate nodes need to open up that HTTP port which might be a
security risk, especially for nodes running on clour service provider. It also
requires delegate nodes to expose their public IP address, which is not preferred
due to both security and privacy concerns, and creates additional maintenance
burden to manually update the IP address in case it changes.

In v1.10.0, a new node status monitoring solution is implemented based on the
existing p2p network. By exchanging messages about their running status using
the p2p network, delegate nodes no longer have to publicize their IP address nor
open that specific HTTP port. In addition, the external IP address of a node can
now freely change (like being assigned a new IP address after reboot) without
worrying about status reporting/collection.

Also in upcoming new releases, we'll introduce more advanced node status monitor
functionalities. For instance, an automatic alert service where delegates can
register a webhook and receive notification when the node is becoming offline or
entering probation.

## Upgrade Priority
v1.10.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 Palau to activate at 04-04-2023 11pm UTC [#3823](https://github.com/iotexproject/iotex-core/pull/3823)
2. [nodeinfo] keep updating broadcast list [#3818](https://github.com/iotexproject/iotex-core/pull/3818)
3. [config] enable web3 staking and broadcast node info at Palau height [#3810](https://github.com/iotexproject/iotex-core/pull/3810)
4. [API] add batch size limit for jsonrpc [#3805](https://github.com/iotexproject/iotex-core/pull/3805)
5. implement isDelegate() in nodeinfo [#3804](https://github.com/iotexproject/iotex-core/pull/3804)
6. [nodeinfo] broadcast node's height info into p2p network [#3744](https://github.com/iotexproject/iotex-core/pull/3744)
7. [goMod] Upgrade iotex-proto to 0.5.13 [#3799](https://github.com/iotexproject/iotex-core/pull/3799)
8. [state] Remove receipt checking after runAction [#3780](https://github.com/iotexproject/iotex-core/pull/3780)
9. [pkg] Introduce batchWriter [#3581](https://github.com/iotexproject/iotex-core/pull/3581)
10. [action] Clean code in handleTransfer [#3761](https://github.com/iotexproject/iotex-core/pull/3761)
11. [state] Return err if receipt is nil [#3759](https://github.com/iotexproject/iotex-core/pull/3759)
12. [block] deprecate ConvertToBlockHeaderPb() [#3774](https://github.com/iotexproject/iotex-core/pull/3774)
13. [db] Optimize memory relocation in writeinfo [#3763](https://github.com/iotexproject/iotex-core/pull/3763)
14. [rewarding] add active web3 rewarding settings [#3740](https://github.com/iotexproject/iotex-core/pull/3740)
15. update docker build command [#3751](https://github.com/iotexproject/iotex-core/pull/3751)
16. complete web3 intergrity test [#3743](https://github.com/iotexproject/iotex-core/pull/3743)
17. [config] move config.API to api package [#3739](https://github.com/iotexproject/iotex-core/pull/3739)
18. [config] move config.Blocksync to blocksync package [#3736](https://github.com/iotexproject/iotex-core/pull/3736)
19. [action] validate candidate name [#3705](https://github.com/iotexproject/iotex-core/pull/3705)
20. [config] move config.Consensus to consensus package [#3735](https://github.com/iotexproject/iotex-core/pull/3735)
21. [api] web3 rewarding action [#3691](https://github.com/iotexproject/iotex-core/pull/3691)
22. [tests] add more cases for gas refund [#3707](https://github.com/iotexproject/iotex-core/pull/3707)
23. use config.GasStation instead of config.API [#3721](https://github.com/iotexproject/iotex-core/pull/3721)
24. remove nonce field [#3714](https://github.com/iotexproject/iotex-core/pull/3714)
25. move IsValidCandidateName to action package [#3706](https://github.com/iotexproject/iotex-core/pull/3706)
1 change: 1 addition & 0 deletions genesis_testnet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ blockchain:
midwayHeight: 13020481
newfoundlandHeight: 14268961
okhotskHeight: 17666641
palauHeight: 19165681
numCandidateDelegates: 36
numDelegates: 24
numSubEpochs: 15
Expand Down

0 comments on commit 9d37a2c

Please sign in to comment.