在备机上Replay hived v1.24.2

in #hive-105017last month

HIVE的HF24已经被成功激活了,期间发生一些小问题,不过没有造成什么大影响,还有一些诸如关于二次空投的BUG,不过现在修复方案也在紧锣密鼓地指定之中。

image.png
(图源 :pixabay)

分叉当晚,我的主备见证人机器上分别运行着两个版本:v1.24.2以及0.23.0,当然了所谓主备只是我当前激活哪台机器上私钥的问题。

中途程序出现意料之外的分叉,虽然无论是统一切换成v1.24.2还是0.23.0,我都有的选,但是我担心意外的分叉会破坏掉block_log,那么对于最后被弃的分叉而言,如何恢复数据会是个难题。

不过咨询@abit后,他和我说“block_log只存irreversible block,这种意外分叉,block log应该不会长”,然后我验证了一下:

image.png

block log果然停留在意外分叉发生的那个时间点上,数据并没有增长(大神真的是大神,懂的好多)。

那么对于跑0.23.0的节点而言,我只需用v1.24.2的程序replay一下就好了。当然,还涉及一些修改目录名等额外的操作,但是正常升级也要那样操作,和意外分叉就没有关系啦。

还有就是建议把shared-file-size这个参数改小一些,比如20G,这样会节省内存或者硬盘空间哦(取决于放内存还是硬盘里执行)。

还有就是要删除shared_memory.bin,因为这个数据已经被破坏掉了。(原则上replay时应该自动去删除并重建,可是好像行不通)。

都准备好之后,就可以用如下指令愉快地replay啦:

hived_v1.24.2 --replay-blockchain

然后replay就被顺畅地执行啦,看来@abit 大神分析的果然是正确的:

image.png

至于有人问,不是已经有节点跑v1.24.2了嘛,为什么还要replay这个?只有两个节点才叫有主有备呀,不然万一那个当前再跑的节点坏掉,我往哪里切呀?

相关链接

Sort:  

辛苦了!

我們連大神懂好多都不懂😖