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

More robust and efficient header sync during IBD #6959

Open
daira opened this issue Oct 3, 2024 · 2 comments
Open

More robust and efficient header sync during IBD #6959

daira opened this issue Oct 3, 2024 · 2 comments
Labels
A-chain-sync Area: Chain synchronization / Initial Block Download
Milestone

Comments

@daira
Copy link
Contributor

daira commented Oct 3, 2024

A recent zebrad bug (ZcashFoundation/zebra#8907), found when trying to repair the testnet after its NU6 activation, drew attention to the fact that zcashd is missing some improvements to the efficiency and robustness of header sync from Bitcoin Core. These were implemented in bitcoin/bitcoin#10345, bitcoin/bitcoin#25454, bitcoin/bitcoin#25720, and bitcoin/bitcoin#25717.

Backporting bitcoin/bitcoin#25720 would fix the issue that motivated the zebrad change that has been problematic on testnet (ZcashFoundation/zebra#1439).

@daira
Copy link
Contributor Author

daira commented Oct 3, 2024

Note that bitcoin/bitcoin#25454 apparently also prevents a fingerprinting attack described in bitcoin/bitcoin#24571. (I'm not sure I understand the threat model under which that is considered an attack, though, tbh. There are many ways to fingerprint nodes.)

@daira
Copy link
Contributor Author

daira commented Oct 3, 2024

We initially tried to backport bitcoin/bitcoin#10345 as part of #6231, but that was reverted in #6276 due to a memory usage regression (#6268). If we want the headers-sync timer then I think there are two options:

a) implement the improvement to batch write memory tracking I suggested here and then (effectively) reapply #6231;
b) extract the addition of the timer (last three commits of #6231), without changing sync to headers-first. We would have to consider whether the timer semantically depends on the headers-first behaviour.

@daira daira added this to the Release 6.1.0 milestone Oct 3, 2024
@daira daira added the A-chain-sync Area: Chain synchronization / Initial Block Download label Oct 3, 2024
@str4d str4d modified the milestones: Release 6.0.1, Release 6.1.0 Jan 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-chain-sync Area: Chain synchronization / Initial Block Download
Projects
None yet
Development

No branches or pull requests

2 participants