venus
venus copied to clipboard
[venus] venus sync stuck / venus 同步卡顿
链服务模块 / Chain Service Components
- [X] venus
- [ ] venus-auth
- [ ] venus-gateway
- [ ] venus-messager
- [ ] venus-miner
- [ ] 文档 / docs
订单服务模块 / Deal Service Components
- [ ] venus-market
- [ ] 文档 / docs
算力服务模块 / Storage Power Service Components
- [ ] venus-sector-manager
- [ ] venus-worker
- [ ] 文档 / docs
版本 / Version
v1.10.0-rc4
描述 / Describe the Bug
venus 在 calibration 网络同步出现卡住,但过一段时间能够恢复
日志 / Logging Information
无
重现步骤 / Repo Steps
No response
背景
calibration 网络有一个矿工一直提前20秒左右出块
问题
venus 存在跳高度的情况,也就是有的高度不会进行 SetHead
日志
2023-03-03T10:47:05.592+0800 INFO sync.module syncer/syncer_submodule.go:192 received new block bafy2bzacebqx3wimnl43fyjkdsf74rpztrxoggobz55h3k4bcb7t33nu3cp62 height 349509 from peer 12D3KooWRSQj7uzzvzag1GCB6rs6GQ2B26yx4A3CmS38sLASDvVk age -24.40786s
2023-03-03T10:47:05.813+0800 INFO chainsync.dispatcher dispatcher/dispatcher.go:221 failed sync of { bafy2bzacebqx3wimnl43fyjkdsf74rpztrxoggobz55h3k4bcb7t33nu3cp62 } at 349509 failed to sync tipset { bafy2bzacebqx3wimnl43fyjkdsf74rpztrxoggobz55h3k4bcb7t33nu3cp62 }, number 1 of 2 in chain: validate mining failed block was from the future (now=1677811625, blk=1677811650): temporal error
排查结果
venus 会先收到提前出的块,也就会对其先进行验证,但会验证会失败。提前出的块会把 lowWeight
的值给拔高,
当同高度其它块的 ParentWeight
小于提前出的块的 ParentWeight
(比较 ParentWeight 的逻辑)时,就只会验证提前出的块,也就不会进行 SetHead
。