升级本地HIVE节点到v1.27.4

之前看HIVE上的热帖,有大佬将HIVE见证人节点升级到v1.27.4,于是去gitlab上看了一眼,原来早在6天之前,HIVE发布了v1.27.4版本。

image.png
(图源 :pixabay)

因为这个是HIVE的小版本升级,原则上,见证人们(尤其是轮值见证人)不是必须升级的(现在很多见证人还在允许v1.27.0版本呢),所以我只是在我本地节点上升级了一下。

编译遇到的小问题

这次升级的Release Notes提到了一点:

General notes: upgrade to Ubuntu 22.04 as base supported OS

也就是说,无论是编译还是运行,原则上都应该基于Ubuntu 22.04 ,否则可能会遇到一些意料之外的问题。

好在我前段时间已经将所有的VPS、本地机等系统都升级到Ubuntu 22.04 LTS,所以以Ubuntu 22.04作为基本支持的操作系统正合我意。

我是在一台从未编译过HIVE的次新VPS上进行的编译(之所以称之为次新,是因为在曾在上边编译过一些其它的应用),和编译v1.27.3不同,遇到了一些问题。

问题一:找不到Boost库
b0cf8e5b6c41e5a6f80f0e41a64621e.png

解决方法:

sudo apt install libboost-all-dev

问题二:找不到Snappy库
29aa18fa905b02f1c4bfe5e55853b46.png

解决方法:

sudo apt install libsnappy-dev

问题三:找不到Readlin库
f161919c03d48d67ba8aa001f350f59.png

解决方法:

sudo apt install libreadline-dev

之所以出现这些问题,都是因为我用的是次新的VPS,之前没有在这台机器上编译过HIVE,如果编译过,就不用进行上述操作了。

除了使用上述哪里出问题解决哪里的笨方法,我们还可以通过运行HIVE源码包中的指定脚本一劳永逸地解决上述问题。

指令如下:

sudo ../hive/scripts/setup_ubuntu.sh --dev

(更多详情请参考HIVE的编译指南

升级一下本地节点

解决了上述问题后,编译过程就很顺利啦,很快就编译出我需要的几个文件。然后用scp指令复制到我本地电脑的对应目录。

运行一下,熟悉的图标出来了,版本也没有错误:
d23cb9d82cdccdca31f1af01c0b7b34.png

不过因为这次更新修改了HIVED状态库格式,所以v1.27.3及以前版本想切换到这个版本上都需要Replay区块链。

Warning: this update changes hived state format and requires hived node replay, if you are using version 1.27.3 or earlier.

所以用如下指令强制replay一下:

hived_v1.27.4 --force-replay

然后就开始了漫长的Replay:
3f3d3c6545d67b533623cc1a87d5ed7.png

我是在昨天晚上11点前后开始Replay的,早晨起床看,已经完成了,本地节点已经正常运转,所以估摸Replay时间应该在8-9小时以内。

看了一下见证人列表,目前只有两个见证人在运行v1.27.4,而且看见证人频道中的聊天信息,大佬说这次更新主要是针对API节点(尤其是基于HAF的节点),所以我就先不切换见证人啦。

更多技术细节,大家去看文末链接中的Release Notes吧,我就不再赘述啦。

参考链接

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now