33cn / chain33

高度模块化, 遵循 KISS原则的区块链开发框架

Home Page:https://chain.33.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

blockchain 分叉无法自动回滚

bysomeone opened this issue · comments

当节点在分叉链时, 无法自动恢复, 长时间区块高度不增长 (偶发)

相关问题&调整方法

分叉处理下载后续区块, 依赖单一节点, 存在单点故障

  • 调整为, 通过次高节点寻找分叉点, 再获取分叉高度后, 所有当前高度大于之前次高高度的节点均认为活跃节点, 用于下载分叉后的正常区块

侧链区块执行后即保存于数据库中, 节点重启后没有加载到 blockchain index node缓存, 导致后续侧链区块无法衔接, 导致ErrParentBlockNotExist错误

  • 对于重启节点情况,侧链区块无法在启动时自动加载到 index node缓存, 调整为重新触发保存逻辑,修改blockExist判定函数,增加主链区块哈希是否一致判定,这样对于侧链区块,就能在启动后重新执行,保证侧链区块在index node缓存记录中连续可以连接。
commented

🎉 This issue has been resolved in version 1.67.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀