维护日志:cnode 启动后长时间 starting 状态问题处理
遭遇节点自动重启后长期处于 starting 状态(1个小时以上)
检查日志
cd $CNODE_HOME/logs
tail -f node0.json
发现正在验证区块
{"host":"cnoder86","pid":"3127081","loc":null,"at":"2022-04-04T03:43:18.66Z","ns":["cardano.node.ChainDB"],"sev":"Info","env":"1.34.1:73f9a","data":{"kind":"TraceImmutableDBEvent.ValidatedChunk","chunkNo":"2171"},"msg":"","thread":"5","app":[]}
在社区资讯过大佬们,答曰是一些 dirty data 造成的。或许是异常的重启或者来自分叉的节点的干扰数据。
无他,是节点的自纠和保护机制
如果赶时间又自信数据没有问题,可以用逃课的办法跳过这个自检:
cd $CNODE_HOME/db
touch clean
systemctl restart cnode
简单的说, 就是在 db 路径下新建一个名为clean
的空文件。节点启动的时候检查到有这个文件就会跳过自检。
但以上方法慎用,当你无法保证数据正确完整的时候跳过自检可能导致自己的chain db 进入错误的分叉,下文详述。
-待续-