手机:15966888888
电话:010-8888999
邮箱:imtoken@mail.com
地址:青岛润科翔电气有限公司
在进行以太坊节点运维工作的这些年时间里, \创世回源\这四个字几乎每个月都能够出现在社区的讨论群组里面的频率变得相当高。...
24小时咨询热线:4006666888
产品详情
在进行以太坊节点运维工作的这些年时间里, \"创世回源\"这四个字几乎每个月都能够出现在社区的讨论群组里面的频率变得相当高。
它的实际意思就是要求操作者把整条区块链的区块数据从最开始的地方重新获取一遍, 但是绝大多数人不清楚这个操作和通常情况下的数据同步方式之间存在着什么样的具体区别。因此, 当节点设备出现错误报告情况的时候。
创世回源这个事儿, 在本质上就是指丢弃本地已有的全部状态数据, 然后从创世区块起重新同步整条链这一种操作。普通增量同步是接着下这种意思, 就是你断网三天回来, 从断点继续往下做。
那创世回源是推倒重来这个意思, 是把本地数据库清干净, 然后从第0个区块一块块验过来, 最后所有state、receipt、header全部重建。
为什么要进行如此极端的操作呢? 当节点运行时间过长之时, 就会出现状态膨胀、分叉残留以及链头卡死等种种问题。而使用常规的手段来说, 是完全没有办法把这些情况给修理回来的。
在这个时候, 如果把本地状态给清理掉, 并且走一次从创世开始的回源流程, 这就相当于给节点做一次系统的重新安装一样, 能够把那些乱七八糟的脏数据都给彻底地清洗掉,不留任何痕迹。
最常见的触发场景是节点反复上报状态校验失败, 或者是同步过程卡死在某个区块上面死活不动弹, 又或者是在刚刚完成了一次硬分叉升级之后发现状态没有办法对得上号。
还有一种情况是非常致命的, 那就是磁盘空间被旧的状态数据给占满了, 导致新的数据根本就没法写进去, 如果不把那些旧的数据删掉就别想着能让程序继续运行下去。

在实际操作的过程中, 大多数的情况其实并不需要真正地回到创世的那个时候, 仅仅是回退到最近那个已知的正确的检查点就足够了。但是, 如果状态被彻底污染了, 或者数据库的索引也损坏了的话, 那就只能硬着头皮从头再来一遍, 而且这个过程最少也得消耗两三个天的时间。
如果在下一次节点运行过程中再次浮现出类似“state root mismatch”这样子的报错信息的时候, 大家务必要保持冷静的心态并做出判断。
你需要弄清楚这个问题是可以通过执行增量方式来进行修复的, 还是说确实必须得退回到原始数据源进行处理。只要你心里面有了明确的底数, 那么就不会去把原本好好的节点给搞崩溃掉了。
相关推荐
鲁公安备11017697号 Powered:Z-BlogPHP Thems:GebiLaoli