iotexproject / iotexproject/iotex-core
consensus should not kick-in whilst syncing to latest tip
- Dominant language
- Go
- Stars
- 1.6k
- Forks
- 382
- Avg merge
- 4d 22h
- Merged PRs (30d)
- 17
Description
### What would you like to be added
if the node is in active sync to latest tip, consensus module should not go into PBFT consensus logic, instead should keep syncing
### Why is this needed
as explained above, this is the correct way of operating for a node
### How important you think this is for IoTeX
- [] must have
- [x] should have
- [] nice to have
### Additional information
see the log below, the node goes into PBFT logic (on an existing/past block), in the middle while it is still syncing to latest tip
```
2023-06-05T17:04:27.803Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618657}
2023-06-05T17:04:27.835Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618658}
2023-06-05T17:04:27.867Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618659}
2023-06-05T17:04:27.898Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618660}
2023-06-05T17:04:27.928Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618661}
2023-06-05T17:04:27.960Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618662}
2023-06-05T17:04:32.000Z WARN consensusfsm/fsm.go:476 didn't receive the proposed block before timeout {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2565, "proposer": "io1343pwahz73s7vzd3l8jxxrjwcugxae2nx58zwf"}
2023-06-05T17:04:33.000Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2565, "proposer": "io1343pwahz73s7vzd3l8jxxrjwcugxae2nx58zwf"}
2023-06-05T17:04:34.000Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2565, "proposer": "io1343pwahz73s7vzd3l8jxxrjwcugxae2nx58zwf"}
2023-06-05T17:04:37.001Z WARN consensusfsm/fsm.go:476 didn't receive the proposed block before timeout {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2566, "proposer": "io1m8rge0h4xvmfzkc4yup766slcvn5cwymqeenpe"}
2023-06-05T17:04:38.001Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2566, "proposer": "io1m8rge0h4xvmfzkc4yup766slcvn5cwymqeenpe"}
2023-06-05T17:04:39.001Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2566, "proposer": "io1m8rge0h4xvmfzkc4yup766slcvn5cwymqeenpe"}
2023-06-05T17:04:42.000Z WARN consensusfsm/fsm.go:476 didn't receive the proposed block before timeout {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2567, "proposer": "io1pgth3m3e4klanwdrfrgk6yelw03ws64ml8c22y"}
2023-06-05T17:04:43.000Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2567, "proposer": "io1pgth3m3e4klanwdrfrgk6yelw03ws64ml8c22y"}
2023-06-05T17:04:44.001Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2567, "proposer": "io1pgth3m3e4klanwdrfrgk6yelw03ws64ml8c22y"}
2023-06-05T17:04:47.001Z WARN consensusfsm/fsm.go:476 didn't receive the proposed block before timeout {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2568, "proposer": "io1vdw0q7dv82g3jhmapvze99fdxeyztjrxdp7wse"}
2023-06-05T17:04:48.001Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2568, "proposer": "io1vdw0q7dv82g3jhmapvze99fdxeyztjrxdp7wse"}
2023-06-05T17:04:49.001Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2568, "proposer": "io1vdw0q7dv82g3jhmapvze99fdxeyztjrxdp7wse"}
2023-06-05T17:04:52.001Z WARN consensusfsm/fsm.go:476 didn't receive the proposed block before timeout {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2569, "proposer": "io1xj0u5n20tsqwxh5a3xdtmzuz9wasft0pqjrq8t"}
2023-06-05T17:04:53.001Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2569, "proposer": "io1xj0u5n20tsqwxh5a3xdtmzuz9wasft0pqjrq8t"}
2023-06-05T17:04:54.001Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2569, "proposer": "io1xj0u5n20tsqwxh5a3xdtmzuz9wasft0pqjrq8t"}
2023-06-05T17:04:57.001Z WARN consensusfsm/fsm.go:476 didn't receive the proposed block before timeout {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2570, "proposer": "io1dg65erd07hrvyme0493f2kqj2utuvpyf6jeuhd"}
2023-06-05T17:04:58.001Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2570, "proposer": "io1dg65erd07hrvyme0493f2kqj2utuvpyf6jeuhd"}
2023-06-05T17:04:59.001Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2570, "proposer": "io1dg65erd07hrvyme0493f2kqj2utuvpyf6jeuhd"}
2023-06-05T17:05:02.000Z WARN consensusfsm/fsm.go:476 didn't receive the proposed block before timeout {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2571, "proposer": "io1c5a8kv4nljt4dy2mnxk23rj0255a9x4uvn4x5m"}
2023-06-05T17:05:03.000Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2571, "proposer": "io1c5a8kv4nljt4dy2mnxk23rj0255a9x4uvn4x5m"}
2023-06-05T17:05:04.001Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2571, "proposer": "io1c5a8kv4nljt4dy2mnxk23rj0255a9x4uvn4x5m"}
2023-06-05T17:05:07.002Z WARN consensusfsm/fsm.go:476 didn't receive the proposed block before timeout {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2572, "proposer": "io1y4punwfvhxzee08a034922vwr48wz0p6ruy0ke"}
2023-06-05T17:05:08.001Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2572, "proposer": "io1y4punwfvhxzee08a034922vwr48wz0p6ruy0ke"}
2023-06-05T17:05:09.001Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2572, "proposer": "io1y4punwfvhxzee08a034922vwr48wz0p6ruy0ke"}
2023-06-05T17:05:12.001Z WARN consensusfsm/fsm.go:476 didn't receive the proposed block before timeout {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2573, "proposer": "io1gn450vcrjkh7r35gcjyt93tp3u2dadz3k07wzw"}
2023-06-05T17:05:13.002Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2573, "proposer": "io1gn450vcrjkh7r35gcjyt93tp3u2dadz3k07wzw"}
2023-06-05T17:05:14.002Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2573, "proposer": "io1gn450vcrjkh7r35gcjyt93tp3u2dadz3k07wzw"}
2023-06-05T17:05:18.003Z WARN consensusfsm/fsm.go:512 Not enough proposal endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2574, "proposer": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050"}
2023-06-05T17:05:19.004Z WARN consensusfsm/fsm.go:547 Not enough lock endorsements {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663, "epoch": 28777, "round": 2574, "proposer": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050"}
2023-06-05T17:05:21.214Z INFO blocksync/blocksync.go:189 block sync intervals. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "intervals": [{"Start":20618663,"End":20618682},{"Start":20618683,"End":20618702},{"Start":20618703,"End":20618722},{"Start":20618723,"End":20618742},{"Start":20618743,"End":20618762},{"Start":20618763,"End":20618782},{"Start":20618783,"End":20618802},{"Start":20618803,"End":20618822},{"Start":20618823,"End":20618842},{"Start":20618843,"End":20618862}], "targetHeight": 20618862}
2023-06-05T17:05:21.402Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618663}
2023-06-05T17:05:21.433Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618664}
2023-06-05T17:05:21.464Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618665}
2023-06-05T17:05:21.501Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618666}
2023-06-05T17:05:21.544Z INFO chainservice/builder.go:491 Successfully committed block. {"ioAddr": "io15ccuntztkkuu0xnfhqf2qt8y28kpu0mnr65050", "height": 20618667}
```
Contributor guide
Research direction
Start by tracing the consensusfsm/fsm.go timeout and endorsement paths alongside blocksync/blocksync.go, using the logged heights and targetHeight as the scenario. Check how chainservice/builder.go commits blocks during synchronization. Done means a node actively syncing to the latest tip continues syncing without entering PBFT consensus for an unsynchronized height.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- blockchain, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100