关注HIVE开发的朋友可能会注意到一周前hived推出了1.28.8版本(非硬分叉版本),很多见证人都已经更新自己的节点到了这个新版本。
(图源 :pixabay)
O哥当然也跃跃欲试,不过按着以往的步骤在本地大电脑上编译hived 1.28.8,却遇到类似如下的错误:
error: static assertion failed: std::atomic requires a trivially copyable type
看起来大概是当前使用的 C++ 标准库不支持 std::atomic 写法,说是C++20 才正式支持 std::atomic<std::shared_ptr> 这种特化形式。
这大概是我本地大电脑Ubuntu版本过低,自带GCC版本过低的缘故。一般来讲,解决的思路可以是升级GCC或者升级Ubuntu。但是我自作聪明决定去一台VPS上编译hived 1.28.8。
VPS是linode的主机,运行Ubuntu 24.04.5 LTS,折腾了大半天,总算编译成功了。结果在VPS上编译出来的hived竟然无法在我大电脑上运行。
看来我还是要升级本地大电脑到Ubuntu 24.04.5 LTS,哎!
升级很简单,因为每次登录时,屏幕都会给我提示:
所以我只需直接执行如下指令即可:
do-release-upgrade
然后按提示一步一步确认即可(基本上可以一路确认)。
当然了,我大电脑上跑着HIVE本地节点,和一大堆脚本,升级之前,要把节点和脚本都妥善关闭。
执行到最后,系统会提示重启
按提示重启后,再登录后,就会看到已经成功升级啦
升级完成后,再次运行VPS上编译出来的hived就可以运行啦,然后就是漫长的Replay!
(图源 :pixabay)
我记得以前一天内就可以完成的Replay,现在竟然用了三四天还没完成。莫非是受不同编译环境的影响?
不过我决定还是等这次Replay完成,把见证人节点先升级上去,然后再研究重新在本地编译一下,看看Replay会不会提速!
要做的事情还是好多呀!