-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Syncing fails on certain blocks after new syncing algo merged #2309
Comments
At this point the chain was already close to block height 1000000 i.e. one of the above blocks should have been removed when the canonical one was finalized. |
The issue here is that the block This is fine, but our function fn get_highest_from_agg(&self, agg: &AggregateQc) -> Result<QuorumCertificate> {
agg.qcs
.iter()
.map(|qc| (qc, self.get_block(&qc.block_hash)))
.try_fold(None, |acc, (qc, block)| {
let block = block?.ok_or_else(|| anyhow!("missing block with hash {:?}", qc.block_hash))?;
... // find largest qc.view
} The fix then is to find the largest |
Discovered while testing out #2307 in
devnet
All syncing nodes - that sync from genesis - are stuck at block 505042.
Checking the DB on
devnet
reveals that there are two blocks at this height, a fork, one canonical:Since syncing follows the
parent_hash
, the one synced to the local node is:Which is also the expected parent for block 505043, as indicated by the QC:
Also, when executing block 505042, unlike other regular blocks, it seems to be the only block that was added for some reason:
The text was updated successfully, but these errors were encountered: