最近一两个月以来,HIVE已经释出了5个发布候选版(Release Candidate),勤劳的见证人们也在测试网(testnet)上进行了各种测试,昨天期待已久的v1.25.0终于发布啦,赶紧测试一下尝尝鲜。
按着以往的套路在Ubuntu 18.04上尝试编译,结果遇到了一些小问题,这里记录一下。
一些选项退出历史舞台
移除LOW_MEMORY_NODE
以及CLEAR_VOTES
首先一个变化就是LOW_MEMORY_NODE
以及CLEAR_VOTES
这两个选项被移除了,实际上很多非关键数据都已经移到Hivemind中实现了,相当于这两个选项默认打开(ON
)一样。
如果设置为OFF
,那么就会报错,停止编译(这个我没去测试);如果你把上述两个选项设置为ON
,那么会出现类似如下的提示:
Reveal spoiler
实际上,这两个选项已经完全没有用了,之所以仍然保留ON
的设置,是为了兼容之前一些老旧的脚本。如果你有类似脚本或者命令行用到这个,可以放心地把这两项拿掉了。
移除STORE_COMMENT_CONTENT
移除这个选项的理由和上边的一样,也就是说,本地节点不再缓存文章内容数据了。如果这个选项被设置成ON
,将会报错被停止编译。
移除MIRA
MIRA曾经在节省服务器资源开销上立下一些功劳,但是实际上我是一直没有使用的,而且随着Hivemind的应用,MIRA也该退出历史舞台了。
如果编译时使用ENABLE_MIRA=ON
,将会报错并停止编译。
基于以上三点,我原本编译脚本中的如下选项可以全部移除了:
-DLOW_MEMORY_NODE=ON -DCLEAR_VOTES=ON -DENABLE_MIRA=OFF
Readline_LIBRARIES找不到
设置好选项后,编译时出现如下错误:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
Readline_LIBRARIES (ADVANCED)
而libreadline-dev
原本在我的记忆中不是必须的,为此我特意重新下载了v1.24.8进行编译,发现没有libreadline-dev
也可以正常编译。
不过懒得去研究为啥v1.24.8不需要而v1.25.0需要,既然需要咱就安装呗:
sudo apt install libreadline-dev
然后再编译一切正常。
我看 @gtg提了一个issue optional packages optional are not, figure out what's REALLY needed to build,并且提交了一些修改:
Reveal spoiler
别的我没去核实我机器上装没装,但是 Curses
肯定是没有的,并且也没影响编译:
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
编译
除了编译参数的变化,以及ReadLine由可选项变成必须安装的以外,其它编译过程到没出啥波折。另外据说Hive v1.25.0支持Ubuntu 20.04 LTS,并且在boost 1.71 和boost 1.65下测试过,不过我的环境都是Ubuntu 18.04 LTS,懒得做进一步测试了。
执行hived --version
出现如下提示:
"version" : { "hive_blockchain_hard_fork" : "1.25.0", "hive_git_revision" : "b597ef7247f139a71d8ee41087fe430382a8b36a" }
直接运行也会正常运行并且从头开始同步区块,不过我本地有现成的区块数据,只需replay就行了,就无需从头同步啦。
cli_wallet
编译也没出啥问题,也能执行,不过我觉得命令行钱包也应该加一个--version
选项,否则总搞不清楚版本。
编译总结
总之,编译还是没啥变化的,回头再去测试replay以及其它方面的内容,当然,最主要的要看看都做了那些共识方面的修改,这才是硬分叉(HardFork)的重中之重呢。
总之,HIVE会变得越来越好。感谢O哥等见证人的努力付出,才有我们这些用户使用的前端。
支持HIVE,支持O哥
我真心覺的會編譯的人都好厲害啊👍
膜拜技术大牛^_^
红红火火恍恍惚惚