节点同步停止的常见原因
如何判断节点数据同步到最新
根据节点运行日志中的 Catch-up mode
信息可以知道节点是否同步到最新,如果 Catch-up mode 为 true,则表示节点还在追赶同步数据,为 false 则表示节点已同步到最新数据。
如何判断节点是否在正常同步数据
可根据节点运行日志 Catch-up mode
后边的 latest epoch
数值判断节点是否在进行同步,正常情况该数字会不断增长。
如果该数值不增长,也可根据 Statistics: StatisticsInner
的数值判断节点是否在正常工作,如果 inserted_block_count
, inserted_header_count
, inserted_block_count
, activated_block_count
, processed_block_count
几个数值中任一数值在增长,都表示节点在正常工作。
2022-10-11T22:00:32.918557596+08:00 INFO IO Worker #1 cfxcore::sta - Statistics: StatisticsInner { sync_graph: SyncGraphStatistics { inserted_block_count: 198117, inserted_header_count: 371367 }, consensus_graph: ConsensusGraphStatistics { inserted_block_count: 136125, activated_block_count: 371361, processed_block_count: 371366 } }
另外节点在重启时,会需要花费大量时间重建状态,此操作过程中,上述数值不会变化,但此为正常现象。此过程最长可能持续数小时。可耐心等待。
停止数据同步的常见原因
硬盘空间不够
首先可查看机器是否还有空间可用,正常情况下 Conflux 节点空间使用情况为:
- 主网:fullnode 500G, archivenode 1T
- 测试网:fullnode 300G, archivenode 700G
网络问题
如果节点网络状况不好,导致无法连接到 peer 节点,则同步也会停止。如果是网络偶发,可尝试重启节点
系统最大文件打开数过低
系统该默认值为 1024, 节点运行需要调整为 65536
配置文件错误
如果启动节点时使用的配置文件错误(主网节点程序使用测试网配置文件;测试网节点程序使用主网配置文件)或未指定配置文件,此种情况会导致节点无法找到 bootnode,也就无法连接到其他网络节点。
节点数据文件损坏
如果节点数据文件损坏也会导致节点数据同步停止。此种情况在节点升级时出现可能性比较大:正确的升级方式是用最新的节点程序,替换原节点目录中的 conflux binary。一种错误的升级方式是,将原节点目录中的 blockchain 等数据目录拷贝到新下载的程序目录中,此种操作容易发生目录遗漏,拷贝不全的问题,大概率会导致节点无法继续同步
同步测试网 archivenode
如果是从头开始同步 archivenode,建议打开 additional_maintained_snapshot_count
并设置为 100
其他
使用官方下载的程序目录中的 start.sh 或 start.bat 启动节点,会在该目录下生成一个 stderr.txt 如果节点运行发生异常错误,会出现在该文件中,这些错误日志有助于排查节点同步失败原因。
No Comments