Skip to content
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

[PIBD] Fix to restart of PIBD download on corrupted data or mismatched roots #3775

Merged
merged 5 commits into from Oct 31, 2023

Conversation

yeastplume
Copy link
Member

In tandem with, #3774 this fixes a case where PIBD fails to restart properly if the downloads txhashset state does not match with expected roots.

The previous logic attempted to manually roll back the output PMMR states to genesis, which could not work given rollback relies on blocks data existing in the DB (which is not guaranteed beyond the horizon block). This adds a reset_chain_head_to_genesis function to chain.rs, which re-initializes the body PMMRs to the genesis block while leaving the header MMR intact, allowing PIBD to start again from the genesis block.

Once we've tested this, I'll merge #3774 first and then merge into this one to maintain @ardocrat's credit where credit is due.

@ardocrat
Copy link
Contributor

Thanks, its working, in the end of SyncStatus::TxHashsetPibd it restarts PIBD synchronization from 0 if root is missing.

@yeastplume yeastplume merged commit 05ec6fd into mimblewimble:master Oct 31, 2023
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants