版本信息
ChainID: 100
Version: 1.2.0
Git Commit: 66ed8345ea1eaa07202d4c1ae7fb305034e79d51
二进制下载: https://download.platon.network/platon/platon/1.2.0/platon
1、升级步骤说明
若PlatON节点是1.1.1、1.1.2或1.1.3版本,请跳到第3点直接进行更新操作。
- 1.1.1的版本信息
$ platon version
Version: 1.1.1-unstable
Git Commit: 9960b7fd8128a047bc552b76ab7a0f557d0fb7dd
- 1.1.2的版本信息
$ platon version
Version: 1.1.2-unstable
Git Commit: f0ee9f487c4abee9de032f40641f7f7a6e69bdce
- 1.1.3的版本信息
$ platon version
Version: 1.1.3-unstable
Git Commit: 3bc1b02d313387a3e94ca99af4d27c2db4c70a7b
2、升级注意事项
这是节点从1.1.0直接升级到1.2.0的注意事项。
2.1 CPU、内存和磁盘问题
因升级过程中部分历史数据会做迁移至Freezer数据库,cpu会有所增加,数据迁移完成恢复正常;升级重启后,少数会有内存增加的情况,数据迁移完成后恢复正常;升级后存储也会有部分提升(大约将增加约8G)。详细查看Github releases
- 升级内存
8G内存的节点在升级重启的过程中小概率会出现内存增加,导致OOM,为了避免这种情况,建议使用swap分区,若有条件也可以选择将机器物理内存升级到16GB。
增加swap分区wget https://download.platon.network/platon/scripts/platon_swap.sh
chmod +x platon_swap.sh
./platon_swap.sh
注意:- 文档提供的platon_swap.sh 脚本做以下处理:当swap分区不存在,则创建8G的swap分区;当swap分区小于7G,会增加swap分区到8G;当swap分区大于7G,则不创建swap分区。
- 若不升级主机内存进行节点升级,出现OOM的情况,导致机器无法连接上;重启主机机器后,可恢复启动进程
- 扩容磁盘
升级过程中,磁盘容量有所增加约8G,若磁盘可用容量不足,建议扩容磁盘容量。
2.2 不兼容性问题
本次节点升级后,不能使用1.1.0的版本和升级后的数据进行启动,建议升级前,先下载官方提供的最新版本(1.2.0)节点数据,存放在节点主机上,若节点升级后不能启动,直接使用1.2.0的版本和最新版本节点数据来启动。
- fast模式备份数据,解压后数据大小是17G的,块高是27710718,当节点启动失败,使用该数据替换data/platon目录
wget https://download.platon.network/platon/nodedata/1.2.0-fast-data.tar.gz tar -xf 1.2.0-fast-data.tar.gz
3、更新指南(先更新,暂不重启)
以下步骤以 Ubuntu18.04 系统为例,更新操作分为两种方式:直接使用二进制、源码编译,选其中一种方式更新即可;请严格按照以下步骤操作升级,如有需要帮助请联系客服。
- 直接用二进制
# 备份二进制
$ [[ -x /usr/bin/platon ]] && sudo mv /usr/bin/platon /usr/bin/platon_`platon version | grep '^Version:' | awk -F "[ ,:,-]" '{print $3}'`
# 下载最新的二进制文件
$ wget https://download.platon.network/platon/platon/1.2.0/platon
# 使用新的版本
$ chmod +x platon $ sudo mv platon /usr/bin/platon
# 查看版本
$ platon version Version: 1.2.0-unstable
Git Commit: 66ed8345ea1eaa07202d4c1ae7fb305034e79d51
- 源码编译(针对之前已成功编译过的环境,全新编译请参考官网源码安装)
# 备份二进制
$ [[ -x /usr/bin/platon ]] && sudo mv /usr/bin/platon /usr/bin/platon_`platon version | grep '^Version:' | awk -F "[ ,:,-]" '{print $3}'`
# 编译二进制
$ git clone https://github.com/PlatONnetwork/PlatON-Go.git --recursive
$ cd PlatON-Go/ $ git fetch --all $ git checkout -b platon-1.2.0 66ed8345ea1eaa07202d4c1ae7fb305034e79d51
# 安装依赖和编译,如果出现missing go.sum entry for module,使用go mod tidy移除未使用和添加缺失的依赖
$ go mod download && make all
# 使用新的版本
$ chmod +x build/bin/platon $ sudo mv build/bin/platon /usr/bin/platon
# 查看版本
$ platon version Version: 1.2.0-unstable
Git Commit: 66ed8345ea1eaa07202d4c1ae7fb305034e79d51
4、择机重启进程
如果当前节点质押过,首先通过区块链浏览器查看节点是否已经被选为验证人(共识中)
如果已经当选,请等待节点退出验证人(共识中转为活跃中)后再进行重启操作。
以下命令仅做参考,根据各自的管理方式,重启platon进程
# 查看进程号 $ ps aux |grep platon root 13476 39.1 49.7 9174616 3925796 ? Sl Feb07 1140:19 /usr/bin/platon --identity .... # 停止platon节点,如kill 13476,上述示例中进程号为13476,实际操作时根据实际情况取值;执行kill命令后,可再使用上述ps命令查看进程是否正确退出,若正常退出再执行后续启动命令 $ kill <进程号> # 启动platon节点 $ nohup platon --identity platon-node --datadir ./data --port 16789 --rpcport 6789 --rpcapi "db,platon,net,web3,admin,personal" --rpc --nodekey ./data/nodekey --cbft.blskey ./data/blskey --verbosity 1 --rpcaddr 127.0.0.1 --syncmode "fast" > ./data/platon.log 2>&1 & # 重启后进入控制台检查节点版本是否生效:v1.2.0-unstable-66ed8345-20220331 $ platon attach http://localhost:6789 Welcome to the PlatON JavaScript console! instance: PlatONnetwork/10.1.1.60/v1.2.0-unstable-66ed8345-20220331/linux-amd64/go1.16.8
5、提案处理
- 质押过的节点,请通过区块链浏览器查看当前节点是否是以下状态:
- 出块中
- 共识中
- 活跃中
如果当前节点为上述3中状态的一种,请参考以下命令进行投票,提案id为<0xbca95edeb71463650f69136fbc05ff69e6250679693ddfbb88ce99a403b04030>:
# 升级提案投票命令示例 $ platon_mtool vote_versionproposal --proposalid 0xbca95edeb71463650f69136fbc05ff69e6250679693ddfbb88ce99a403b04030 --keystore $PLATON_MTOOLDIR/keystore/staking.json --config $PLATON_MTOOLDIR/validator/validator_config.json
如果节点状态为“候选中”,则需要做版本声明,请参考以下命令进行版本声明。
#版本声明示例 $ platon_mtool declare_version --keystore $PLATON_MTOOLDIR/keystore/staking.json --config $PLATON_MTOOLDIR/validator/validator_config.json
- 未质押过的节点,跳过本步骤。
- 没定义$PLATON_MTOOLDIR的,需要根据实际部署情况补全绝对路径。
6、反馈
platon升级失败的,可通过以下渠道反馈。
- 微信 Colinan
- 微信 验证节点群
- 邮箱 validator@platon.network
本文转载自https://forum.latticex.foundation/t/topic/6177